JZOJ4924 向再見說再見

2021-07-25 13:14:14 字數 1545 閱讀 4945

首先把a、b排序。設f

i,j 表示做到a隊第

i 個人,有

j個人贏的方案數。

如果第i

個人贏了,那麼fi

−1,j

−1×(

can−

(j−1

))⟶f

i,j(

can 為第

i 個人能贏的人數)。

如果第i

個人輸了,那麼需要往後考慮輸給誰,這就很麻煩。

那麼我們先不管,也就是fi

−1,j

⟶fi,

j 然後

fi,j

求的就是至少有

j 個人贏的方案數。設g

i=fn

,i,h

i 為恰好贏

i 個人的方案數。

那麼有gi=

∑j≥i

hj⋅c

ij移項:hi=

gi−∑

j>ih

j⋅ci

j 然後倒著做去重。

至於這個

c ,可以發現如果用狀態表示每個人的匹配,會發現有多種狀態能轉移到一種狀態,於是去掉即可。

注意n與k同奇偶的時候才有解,k=0只要統計一邊。

#include

#include

#include

#include

#define fo(i,j,k) for(int i=j;i<=k;i++)

#define fd(i,j,k) for(int i=j;i>=k;i--)

#define n 2010

#define mo 1000000007

#define ll long long

using namespace std;

int a[n],b[n];

ll f[n][n];

ll c[n][n];

ll jc[n];

ll h[n],g[n];

int main()

jc[0]=1;

fo(i,1,n) jc[i]=jc[i-1]*i

%mo;

fo(i,1,n) scanf("%d",&a[i]);

fo(i,1,n) scanf("%d",&b[i]);

sort(a+1,a+n+1);

sort(b+1,b+n+1);

int p=0;

f[0][0]=1;

fo(i,1,n)

}fo(i,0,n) g[i]=f[n][i]*jc[n-i]%mo;

fd(i,n,0)

if(!k) printf("%lld",h[n/2]);

else

if((n+k)%2==1) printf("0");

else

printf("%lld",(h[(n+k)/2]+h[(n-k)/2])%mo);

}

對盜鏈說再見

第一頁內隨機的產生乙個數 0 15 dechex 儲存在session內 然後將url使用此標記進行運算,隨便你運算了,不過要能逆過來才行 第二頁則檢測是否有此標記,有則進行逆運算,然後將變數取出 優點 必須訪問站點url才有效 缺點 儲存到本地的頁面鏈結全部失效,盜鏈失效 php ob start...

跟死聯接說再見

隨著網際網路技術的迅猛發展,各種資訊呈現 式的增長,有關統計顯示,搜尋引擎在網民中的使用率僅次於email,高達79 它就像電信黃頁一樣成為社會的資訊嚮導,成為網際網路電子商務的核心服務,成為使用者查詢資訊的必備工具。想必大家一定也和我一樣的感覺,雖然搜尋引擎使用方便,資訊量大,但在眾多的搜尋鏈結中...

擁抱cmder,和cmd說再見

blog blog.csdn.net fbysss 作為乙個程式設計師,即使是在windows工作環境,cmd也是我們必不可少的使用工具。然而,windows發展了這麼多年,cmd還是一如既往 毫無改進。下面先列舉cmd幾大不能忍的 特性 1.視窗size不能便捷縮放 2.複製文字,不能直接用滑鼠拷...