多項式 DP 省選模擬51nod抽卡大賽

2021-09-13 14:24:58 字數 2608 閱讀 5318

)的dp很容易能想到

定義d p[

i][j

][k]

dp[i][j][k]

dp[i][

j][k

]表示第i個人選j時,有k個人比它小的概率

然後就能直接算期望了。

不過這玩意顯然要t

發現,對於乙個已經固定的i,j,那麼剩下的所有人的所有情況本質上只有2種:比ai,

ja_ai,j

​小,比ai,

ja_ai,j​大。

那麼可以把每個人比它小的概率算出來,比它大的概率算出來,那麼就可以看作乙個多項式p0+

p1xp_0+p_1x

p0​+p1

​x顯然,其他所有人的多項式之積就是它的dp值。

(此時就有同學會去想分治fft了,還好這題模數不是ntt模數,不然估計我也得掉坑里去寫ntt…)

考慮是否能有更好的方式維護這個多項式。

顯然,我們可以按照ai,

ja_ai,j

​排序,這樣每做乙個,就只有乙個多項式會改變。那麼我們就能通過多項式除法去消除該多項式的影響。

由於該多項式一定只有2項,所以可以(o(

n))(o(n))

(o(n))

暴力除總複雜度o(n

3)o(n^3)

o(n3

)

#include

#include

#include

#include

#define sf scanf

#define pf printf

#define maxn 210

#define mod 1000000007

using

namespace std;

typedef

long

long ll;

struct node

}ch[maxn*maxn]

;int tot;

int m[maxn]

;ll inv100;

pair now[maxn]

;ll f[maxn]

,v[maxn]

,ans[maxn]

;ll fsp

(ll x,

int y)

return res;

}int n;

void

dev(

int x)

void

mul(

int x)

intmain()

int inq=

fsp(q,mod-2)

;for

(int j=

1;j<=m[i]

;j++

)(ch[tot-m[i]

+j].p*

=inq)

%=mod;

}for

(int i=

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

("%lld"

,&v[i]);

reverse

(v+1

,v+1

+n);

sort

(ch+

1,ch+

1+tot)

; f[0]

=1;for

(int i=

1;i<=n;i++

) now[i]

=make_pair(1

,0);

for(

int id=

1;id<=tot;id++

)\n",i,j);

// for(int i=0;i// pf("%lld ",f[i]);

// pf("\n");

for(

int k=

0;k) ans[i]

=(ans[i]

+p*f[k]

%mod*v[k+1]

%mod*ch[id]

.g%mod*inv100%mod)

%mod;

// pf("\n",ans[i]);

now[i]

.first=

(now[i]

.first-ch[id]

.p+mod)

%mod;

now[i]

.second=

(now[i]

.second+ch[id]

.p)%mod;

// pf("\n",now[i].first,now[i].second);

mul(i)

;// for(int i=0;i// pf("%lld ",f[i]);

// pf("\n");

}for

(int i=

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

("%lld\n"

,ans[i]);

}

省選模擬51

利用本題的特殊性質,可以得到如果 n 為奇數,那麼答案為 ab 對這個玩意平方一下即可發現是對的。對於 n 為偶數,可以把 2 全都提取出來,然後對剩餘的部分取得乙個解。然後不斷縮小 2 的次數以迭代,當縮小為 2 0 的時候可以直接得到解。很妙的一步是當 y 0 1 因為 y 0 1 有 y 0 ...

再次模擬 多項式輸出

題目描述 一元 n 次多項式可用如下的表示式表示 f x an x n an 1 x n 1 a1 x a0,an 0 其中,ai a x 稱為i次項,ai稱為i次項的係數。給出乙個一元多項式各項的次數和係數,請按照如下規定的格式要求輸出該多項式 多項式中自變數為x,從左到右按照次數遞減順序給出多項...

P1067 多項式輸出(模擬)

題目鏈結 p1067 多項式輸出 luogu 應用題庫 訓練比賽 記錄討論 21.2k 通過74.5k 提交題目提供者 ccf noi 評測方式 雲端評測 標籤 noip普及組2009 難度 普及 時空限制 1000ms 128mb 其中,a ix ia i x i稱為ii次項,a ia i 稱為i...