2018青島區域賽訓練總結及cde題解

2022-04-28 19:21:08 字數 2938 閱讀 1735

這場一開始st卡在了io的上面t了兩發,我wa了兩發c,有一些情況沒有考慮到。50mins的時候我看st**,發現沒問題大膽換了io,ac,跟st講了2minsc的時候發現了wa點,改了ac。隨後cxy也ac了j題。大概過了快1小時,我們做不下去了,退場補題,發現de還是可以做的,對標區域賽銅尾,如果de開出來可能能進到銀尾。

總結:io必須開。

現場賽簽到還是和隊友討論後交。

e題沒有耐心想下去。

m j是隊友寫的,貌似也是簽到不寫了。

題解:c

題意:給你2個01串,你可以選擇兩個區間將區間內的所有數0變1,1變0。問有幾種方法把他變為一樣。卡o1

思路:如果有兩個聯通塊區間不一樣那麼方案數為6。

如果都一樣那麼方案數為(n+1)*n/2

如果只有1個,那麼方案數為不一樣的個數(cnt-1)2+一樣的個數cnt22

此外0**:

#include

using

namespace std;

#define ll long long

#define forn(i,n) for(int i=0;i#define for1(i,n) for(int i=1;i<=n;i++)

#define io ios::sync_with_stdio(false);cin.tie(0);cout.tie(0)

const

int inf =

0x3f3f3f3f

;const ll inf =

0x3f3f3f3f3f3f3f3f

;int

main()

int id =0;

forn

(i,n)

if(a[i])if

(id>2)

else

if(id==2)

else

if(id==1)

cout<<

2*cnt+

2*cnt2<<

'\n';}

else cout<<

1ll*n*(1

+n)/

2<<

'\n';}

return0;

}

e

題意:從1點出發每到乙個點這個點的權值增長ai,問走了m次後,讓所有點權值最小值最大。

思路:典型的二分題,只是被題意蒙蔽了雙眼,想了個其他的二分,不想寫了。

二分ans,主要judge比較坑難寫。

我們先算出每個點到達lim需要訪問至少幾次,然後那麼ai走了5次,ai+1要至少走5次。

所以每個點走的次數就是x(當前點至少訪問次數)+x-1(需要消耗來回拐彎)。加一些特判和修改就寫成了**的樣子。

**:

#include

using

namespace std;

#define ll long long

#define forn(i, n) for (int i = 0; i < n; i++)

#define for1(i, n) for (int i = 1; i <= n; i++)

#define io \

ios::sync_with_stdio(false); \

cin.tie(0); \

cout.tie(0)

const

int maxn =

1e5+5;

ll a[maxn]

, n, m;

bool

check

(ll lim)

else

y = x -1;

sum +

= x + y;

if(sum > m)

return0;

}return1;

}int

main()

cout << l -

1<<

'\n';}

return0;

}

d.

題意:給一串數字,他由下圖構成。這裡的+號代表放在後面。問構成這串數字最小字典序的ab是多少。

思路:想明白一點,如果x = ai*bi,那麼x肯定》ai||>bi。所以我們列舉a0的9種可能來爆搜判斷。

**:

#include

using

namespace std;

#define ll long long

#define forn(i,n) for(int i=0;i#define for1(i,n) for(int i=1;i<=n;i++)

#define io ios::sync_with_stdio(false);cin.tie(0);cout.tie(0)

const

int maxn =

2e5+5;

int n,m,pos,a[maxn]

,b[maxn]

,len;

char s[maxn]

;bool

getb()

return1;

}bool

geta()

}return1;

}bool

solve()

int two = one*

10+s[1]

-'0'

;for1

(i,9)if

(two%i==

0&&two/i<10)

return0;

}int

main()

else cout<<

"impossible"

<<

'\n';}

return0;

}

青島區域賽總結

青島區域賽總結 經歷了人生第一次acm正式比賽,雖然從結果看是以失敗告終,但是這也是已經預料到的一種可能性吧,若真的得獎了也只能說是碰上的吧。雖然辛辛苦苦的的準備了乙個多月,但是可惜水平還是有限,不能達到獲獎的水平吧。比完賽後開始有一點傷心,畢竟可以說是無功而返吧,但是不久就想通了。不管怎樣,只能怪...

2018acm區域賽青島

zoj4060 思維題目 找規律,比較難想!劃分不同塊,找不同塊。根據不同塊的數目又分為4種情況。劃分塊就夠難想了,這4種情況計算規律更是難找!1 include 2 include 3 include 4 using namespace std 5 typedef long long ll 6 l...

青島區域賽備戰 模板及複習 dp

for 列舉起點 for 列舉長度 處理區間 或 dfs寫法 dp方程隨緣看清維數,弄清楚轉移方向啊 typedef long long ll int a 20 ll dp 20 state ll dfs int pos,state變數 bool limit 數字上界變數 if limit dp p...