給出乙個集合,都有權值,求可以被分割成權值和相等的兩份的子集個數。
令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
2logn
)o(n^2\log n)
o(n2
logn
)會tle(這個我還是想到了)
random_shuffle一下k
kk可能的取值,每次先判一下這個k
kk的取值可不可能使答案更優,時間複雜度是期望o(n
p+
nlogn
logp)
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...