牛客練習賽 70

2021-10-09 22:40:51 字數 3395 閱讀 2321

二分答案,然後迴圈一邊即可。

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

#pragma gcc optimize(2)

#include

#include

using

namespace std;

const

int n=

100010

;int cnt[30]

;char s[n]

;char p[11]

="puleyaknoi"

;int n;

bool

check

(int len)

if(now==10)

return1;

for(

int i=len+

1;i<=n;i++)if

(s[i]

=='p'

||s[i]

=='u'

||s[i]

=='l'

||s[i]

=='e'

||s[i]

=='y'

||s[i]

=='a'

||s[i]

=='k'

||s[i]

=='n'

||s[i]

=='o'

||s[i]

=='i')if

(now==10)

return1;

}return0;

}int

main()

if(r==n+

1) cout<<-1

<<

'\n'

;else cout<'\n';}

return0;

}

序列自動機

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

#pragma gcc optimize(2)

#include

#include

#include

using

namespace std;

const

int n=

100010

;char s[n]

;int ne[n][30

];char p[11]

="puleyaknoi"

;int n;

void

build()

}int

main()

if(now) res=

min(res,now-i+1)

;}}if

(res!=n) cout<'\n'

;else cout<<-1

<<

'\n';}

return0;

}

打表發現最後基本都是乙個值,只需要把非常大的k直接弄成乙個較小的數即可。

注意k的奇數或偶數不要發生改變。

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

#pragma gcc optimize(2)

#include

#include

using

namespace std;

typedef

long

long ll;

typedef pair<

int,

int> pii;

typedef

unsigned

long

long ull;

const

int n=

10000010

;int prime[n]

,cnt;

bool st[n]

;int mob[n]

;void

init

(int n)

mob[i*prime[j]]=

-mob[i];}

}}intmain()

for(

int i=

1;i<=k;i++

) n=n+mob[n]

;

cout<'\n';}

return0;

}

注意刪邊是刪除所有的邊,不是刪除其中一條邊。注釋**是刪除一條邊的**

連通塊的點數減去邊數即是答案。

因為樹有n-1條邊,n個點。如果有k棵樹,那麼點一定比邊多k個。

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

#pragma gcc optimize(2)

#include

#include

#include

using

namespace std;

typedef

long

long ll;

typedef pair<

int,

int> pii;

mapint> mp;

map<

int,

int> d;

intmain()

]) cnte++;

// mp++;

// if(!d[u]) cntv++;

// if(!d[v]) cntv++;

// d[u]++,d[v]++;

if(mp)

continue

; cnte++;if

(!d[u]

) cntv++;if

(!d[v]

) cntv++

; d[u]

++,d[v]

++,mp=

1;}else

if(op==2)

])continue

;// if(mp==1) cnte--;

// mp--;

// d[u]--,d[v]--;

// if(!d[u]) cntv--;

// if(!d[v]) cntv--;

cnte--;if

(d[u]==1

) cntv--;if

(d[v]==1

) cntv--

; d[u]

--,d[v]

--,mp=

0;}else

cout<'\n';}

}return0;

}

拼湊 牛客練習賽70

牛牛還是很喜歡字串 puleyaknoi 牛牛有t個超長超長的字串,不過這次他更懶了,他希望直接在字串中看見他喜歡的字串。如果乙個子串中含有乙個子串行是 puleyaknoi 那麼他就把這個子串稱作好的子串。牛牛是個懶人,他不喜歡看太長的子串,那樣他會覺著眼鏡很累。你能幫他求出對於每個字串,最短的好...

牛客練習賽9

時間限制 c c 1秒,其他語言2秒 空間限制 c c 32768k,其他語言65536k 64bit io format lld 珂朵莉想每天都給威廉送禮物,於是她準備了n個自己的本子 她想送最多的天數,使得每天至少送乙個本子,但是相鄰兩天送的本子個數不能相同 珂朵莉最多送幾天禮物呢 第一行乙個整...

牛客練習賽15

時間限制 c c 2秒,其他語言4秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld 第一次期中考終於結束啦!沃老師是個語文老師,他在評學生的作文成績時,給每位學生的分數都是乙個小於10的非負小數。amy 8.99999999999999999999...