2018雅禮省選集訓3 31 Max 期望DP

2021-08-18 19:53:18 字數 1257 閱讀 7914

注意到

m m

比較小,不妨狀壓

m' role="presentation" style="position: relative;">mm。

我們設fi,

j,s fi,

j,

s表示ai

a

i用掉集合

s s

中的操作後值為

j' role="presentation" style="position: relative;">j

j的概率。 再設g

i,j,

s gi,

j,s表示

a1..

i a

1..i

用掉集合

s s

中的操作後最大值為

j' role="presentation" style="position: relative;">j

j的概率,列舉ai

a

i使用的操作集合轉移即可。

複雜度o(n

c2m2

3m) o(n

c2m2

3m)。

**:

#include

#include

#include

#include

#define up(x,y) (x=(x+(y))%mod)

#define in(x,s) ((s>>(x-1))&1)

#define ll long long

using namespace std;

const int mod=1000000007;

int n,m,c,pc[1030];

ll p[41][11][4],f[41][31][1030],g[41][31][1030],ans;

int main()

g[0][0][0]=1;

for(int i=1;i<=n;i++)

for(int

s=0;s

<(1

if(g[i-1][j][s])

for(int u=((1

up(ans,g[n][i][(1

<%mod);

printf("%lld",ans);

return

0;}

2018雅禮省選集訓3 25 bsh 分治最短路

因為是三角剖分,所以每一條對角線都把多邊形分成兩部分,於是考慮分治。先找到一條把多邊形分得比較均勻的對角線,對兩個端點做一下bfs,處理掉起點和終點分別在這條對角線兩側的詢問 分經過某個點或者經過這條邊三種情況更新 然後繼續分治直到三角形為止。選對角線的時候直接選最遠的即可。include incl...

省選專練 2018雅禮集訓 立方體Cube

困難雖然當你知道 答案是c n,m 2 n m 時甚易 如何推出 觀察計算式 我們知道當你有四個點時,乙個點旁邊有有兩個點,他們分別連線然後為4 2個但是乙個點作為起點終點使用兩次故除二 include include include include includeusing namespace s...

雅禮集訓 2018 Day4 Magic

傳送門本部分 於 這位大佬 題中要求本質不同的序列數量,不太好搞。我們考慮給相同顏色的牌加上編號,這樣所有牌都不相同。那麼如果我們求出了答案,只需要將答案除以 prod a i 就好了。恰好有 k 對 不能直接求,考慮容斥,如果我們求出了 g x 表示至少有 x 對的方案數,那麼答案即為 sum l...