2017 山東一輪集訓 Day7 逆序對

2022-05-31 06:54:09 字數 854 閱讀 8829

題解:

滿滿的套路題。。

首先顯然從大到小列舉

然後每次生成的逆序對是1----(i-1)的

這樣做dp是nk的 複雜度太高了

那我們轉化一下問題

變成sigma(ai   (ai

據說是個經典問題。。感覺非常奇妙

先容斥一下,也就是說 總的-至少1個條件不滿足+至少2個條件不滿足

那考慮一下如何算有x個條件不滿足

不滿足這個條件就可以等價成ai>=i

那麼可以先將ai-i 那麼就變成所有數的定義域都變成了自然數 那麼方案數就是組合數了

顯然我們可以把x個條件-i的和相等的算在一起

令f[i][j]表示在(0,1,2...n)中選i個數和為j的方案數

其實在這裡也就是 i個條件和為j

那麼這樣答案就是先列舉i

ans1=列舉j,f[i][j]*c();gi=

∑fi,

j×(n

+k−j

−1n−

1)'>

總ans=ans1*(-1)^i

最後的問題就是如何計算f[i][j]

第一次看見這種思路好像是上次zjoi講課(這是生成不重複集合的經典做法)

由於要保證這些自然數是不同的

所以決策有兩種

1。將n-1個數先加1(保證不同)再插入乙個1

2。將這n個數都加1

另外由於加的數有可能大於n,所以要減掉f[i-1][j-n-1] (因為這一次填入的一定是n+1,並且所有方案都有)gi

=∑fi

,j×(

n+k−

j−1n

−1)'>gi=∑fi,j×(n+k−j−

2017 山東二輪集訓 Day7 國王

給定一棵樹,每個點有黑白兩種顏色,定義一條簡單路徑合法當且僅當路徑上所有點黑色與白色數量相等,求有多少非空區間 l,r 使得所有編號 in l,r 的點形成的本質不同的合法簡單路徑數多於所有編號 notin l,r 的點形成的本質不同的合法路徑樹。考慮所有以 x 為乙個端點的合法簡單路徑數量為 f ...

2017 山東一輪集訓 Day4 基因

設定 sqrt 個關鍵點,維護出關鍵點到每個右端點之間的答案以及pam的左指標,每次暴力向左插入元素即可,為了去重,還需要記錄一下pam上每個節點在每個關鍵點為左端點插入到時候到最左邊出現位置,總複雜度 o n sqrt program by mangoyang pragma gcc optimiz...

2017 山東一輪集訓 Day6 重建

考試的時候以為兩者最短路差值的絕對值為 階梯拋物線 像這樣 可以二分,然而並沒有單峰性。不過騙了70分,混了個rank1,血賺 include.h define gt p1 p2 p2 p1 buf fread buf,1,1000000 stdin p1 p2 eof p1 define pt c...