10 16多校連測

2021-08-29 04:05:24 字數 1246 閱讀 8889

給出乙個集合,都有權值,求可以被分割成權值和相等的兩份的子集個數。

令f [i

][s]

f[i][s]

f[i][s

]表示搜尋到前i

ii個,s

ss是乙個3進製狀態,0表示沒有被選中,1表示被第乙個集合選中了,2表示被第二個集合選中了,f

ff是第乙個集合與第二個的差值,如果差值為0說明是兩個相等的子集。這樣做顯然是o(3

n)

o(3^n)

o(3n

),會tle。(這個我測的時候是想到了的)

考慮meet in the middle,o(3

n/2)

o(3^)

o(3n/2

)列舉左邊,o(3

n/2)

o(3^)

o(3n/2

)列舉右邊,和在一起是很好判斷的。

給出乙個排列p

pp,定義乙個排列a是好排列,當且僅當依次交換排列q=1

,2,3

,⋯,n

q=q=

1,2,

3,⋯,

n中ai,a

i+

1a_i,a_+1

ai​,ai

​+1兩位,能得到排列p

pp,求好排列的個數。

題目等價於:給出一些例如i

ii在i+1

i+1i+

1的前/後面的限制條件,問滿足限制的排列個數。(這個我還是想到了的)

這個用乙個dp就可以解決。

有一些物品,要裝到k

kk個行李中,現在有乙個操作,每個行李+km

od

p+k\bmod

+kmodp

,0 ≤k

<

p0\leq k0≤

k<

p,求最重的行李最輕的重量。

列舉k

kk,二分答案,時間複雜度o(n

2log⁡n

)o(n^2\log n)

o(n2

logn

)會tle(這個我還是想到了)

random_shuffle一下k

kk可能的取值,每次先判一下這個k

kk的取值可不可能使答案更優,時間複雜度是期望o(n

p+

nlog⁡n

log⁡p)

o(np+n\log n\log p)

o(np+n

logn

logp)。

多校連萌 簡單的求和

定義f i 代表i的所有因子和 包括1和i 給定乙個l,r。求f l f l 1 f r 第一行輸入乙個t t 1000 代表有t組測試資料,接下來每行輸入兩個數字l,r,1 l r 1000000 每行輸出乙個整數,代表和。2 1 23 4 4 11 include include include...

河南省多校連萌(七)H

問題 h 活動 時間限制 1 秒 記憶體限制 128 mb 提交 352 解決 28 題目描述 zc去參加 活動,在 箱裡有n個球,每個球上寫著乙個數字。一次抽取兩個球,得分為兩個球上的數的乘積。為了中大獎,zc想要知道他能得到的最大得分為多少。輸入第一行為t,代表樣例數。1 t 10 其中每組樣例...

多校4 櫥櫃

include include include include includeusing namespace std int s1 400100 int s2 400100 struct node struct cmp int main int i,j,m,n while scanf d d n,m...