牛客練習賽78小結

2021-10-22 04:42:20 字數 2390 閱讀 8691

前言

質量還可以

d.容斥(二項式反演)

題目大意:

給你n

nn個小球,每個小球有乙個顏色a

ia_i

ai​.保證一種顏色最多出現兩次。問你多少種排列方式使得相鄰兩項之間顏色不同.

n ≤1

e5

n \leq 1e5

n≤1e5

題目思路:

發現顏色最多出現兩次.我們可以容斥。將恰好轉至少.

令f (i

)f(i)

f(i)

為恰好有i

ii項相鄰的排列,g(i

)g(i)

g(i)

為至少有i

ii項相鄰的排列.cnt

cntcn

t為有兩個的顏色個數.

f (0

)=∑i

=0cn

t(−1

)i∗g

(i

)f(0)=\sum_^(-1)^i*g(i)

f(0)=∑

i=0c

nt​(

−1)i

∗g(i

).g (i

)g(i)

g(i)

就比較好求了:g(i

)=(i

cnt)

∗(n−

i)!∗

12cn

t−

ig(i)=(^_)*(n-i)!*\frac}

g(i)=(

icnt

​)∗(

n−i)

!∗2c

nt−i

1​解釋:1.至少i

ii個相鄰,那麼就得先確定哪i

ii個顏色相鄰.所以(ic

nt

)(^_)

(icnt​

).2.然後問題轉化為:總共n

nn個小球。有i

ii對個顏色不同的物品兩兩**在一起,其他位置都是不同顏色的物品,求他們的全排列.根據一一對映的原理,方案數為(n−

i)

!(n-i)!

(n−i)!

.3.但是剩下的這n−i

n-in−

i個物品中實際上還是有cnt

−i

cnt - i

cnt−

i對小球是顏色相同的,根據可重複排列的原理,我們還需要把重複的部分除掉。即12c

nt−i

\frac}

2cnt−i

1​.最後,這題還卡常。我們需要對階乘o(n

)o(n)

o(n)

的求解逆元.

e.思維+sosdp

題目大意:

給你只含2

x2^x

2x的序列.你可以反轉任意子區間。問你最大子段和,使得裡面沒有重複的數,

題目思路:

重點:將任意乙個子區間反轉意味著能夠將兩個子區間拼在一起

2.由於要求了乙個區間不能有重複的數,那麼合法的區間數不超過nlo

gn

nlogn

nlog

n.直接預處理出來。

那麼接下來,我們就是列舉每乙個區間,每個區間可以被表示成乙個二進位制數,

那麼將每乙個合法區間寫下來生成乙個新的序列b

ib_i

bi​.問題轉化為:

列舉b

ib_i

bi​,快速找b

jb_j

bj​滿足bi&

bj=0

b_i\&b_j=0

bi​&bj

​=0,並且bi∣

bj

b_i|b_j

bi​∣bj

​最大.一眼sos

dp

sosdp

sosdp,

b i&

bj=0

b_i\&b_j=0

bi​&bj

​=0代表它們沒有交集。代表b

jb_j

bj​是(s−

bi

)(s-b_i)

(s−bi​

)的子集。所以dp(

mask

)dp(mask)

dp(mas

k)代表的是子集的最大值.乙個字首最大值轉移完事.

為什麼直接找最大值可行。因為當bi&

bj=0

b_i\&b_j=0

bi​&bj

​=0時,bi∣

bj

b_i|b_j

bi​∣bj

​等價於bi+

bj

b_i+b_j

bi​+bj

​。所以直接找b

ib_i

bi​最大就好.

牛客練習賽78 補題

b cca的搬運 注意陣列的頭和尾在實際模擬時的情形 include using namespace std const int maxn 1e5 5 int a maxn dp maxn n,m,x1,up maxn ans,sum,vis maxn d,b maxn k,t intmain fo...

牛客練習賽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...