遞推 Bzoj3612 Heoi2014 平衡

2022-08-05 11:57:14 字數 1538 閱讀 7966

下課了,露露、花花和萱萱在課桌上用正三稜柱教具和尺子擺起了乙個「蹺蹺板」。

這個「蹺蹺板」的結構是這樣的:底部是乙個側面平行於地平面的正三稜柱教具,

上面 擺著乙個尺子,尺子上擺著若干個相同的橡皮。尺子有 2n + 1 條等距的刻度線,

第 n + 1 條 刻度線恰好在尺子的中心,且與正三稜柱的不在課桌上的稜完全重合。

露露發現這個「蹺蹺板」是不平衡的(尺子不平行於地平面)。於是,她又在尺

子上放 了幾個橡皮,並移動了一些橡皮的位置,使得尺子的 2n + 1 條刻度線上都恰

有一塊相同質 量的橡皮。「蹺蹺板」平衡了,露露感到很高興。

花花覺得這樣太沒有意思,於是從尺子上隨意拿走了 k 個橡皮。令她驚訝的事

情發生了: 尺子依然保持著平衡!

萱萱是乙個善於思考的孩子,她當然不對尺子依然保持平衡感到吃驚,因為這

只是乙個 偶然的事件罷了。令她感興趣的是,花花有多少種拿走 k 個橡皮的方法

,使得尺子依然保 持平衡?

當然,為了簡化問題,她不得不做一些犧牲——假設所有橡皮都是擁有相同質量的

質點。但即使是這樣,她也沒能計算出這個數目。放學後,她把這個問題交給了她

的哥哥/ 姐姐——hibarigasaki 學園學生會會長,也就是你。當然,由於這個問題

的答案也許會過於 龐大,你只需要告訴她答案 mod p 的值。

第一行,乙個正整數,表示資料組數 t(萱萱向你詢問的次數)。   

接下來 t 行,每行 3 個正整數 n, k, p。 

共 t 行,每行乙個正整數,代表你得出的對應問題的答案。 

10 6 5 10000

4 1 10000

9 6 10000

4 6 10000

5 1 10000

8318 10 9973

9862 9 9973

8234 9 9973

9424 9 9973

9324 9 9973 731

9208

14421

2565

0446

2549

t <= 20,1 <= n <= 10000,1 <= k <= 10,2 <= p <= 10000,且 k <= 2n+1。 

設f[i][j]表示用j個數組成i,那麼可以由f[i-j][j]+f[i-j][j-1]得到。

轉移後最大元素可能》n,但只可能為n+1,於是直接去掉這個數,減去f[i-n-1][j-1]。

都減一的轉移思路還是蠻好的。

#includeconst

int maxn=1e5+5

;int f[maxn][15

];int

t,n,k,p;

intmain()

int ans=0

;

for(int i=0;i<=k;i++)

for(int j=0;j<=n*k;j++)

printf(

"%d\n

",ans);

}return0;

}

bzoj3930 選數 遞推

看了一下popoqqq爺的莫比烏斯反演,果斷棄療。還是寫遞推好,又短又快。令f i 表示當數不全相等時 為什麼如此,後面再說 最小公倍數為i k的方案,那麼 首先,當公倍數 注意不是最小 為i k時,總方案數x n x,其中x表示l r中i k的倍數,再減去重複的方案 u 2,i k u r l f...

BZOJ 3823 定情信物 遞推

題目大意 定義點為零維元素,線為一維元素,面為二維元素,空間為三維元素,以此類推,求n維立方體中各維元素都有多少 令f i j 為i維立方體內j維元素的個數 考慮n維立方體中的i維元素,將n維立方體拓展至n 1維空間時 覺得抽象的可以想象平面擴充套件成立方體 原先的i維元素增加了一倍,同時原先的i ...

bzoj1212 L語言 遞推 Tire

這道題目寫得好暴力可能都能過吧 亂說的別理他 大概用tire做到o n len 其中len表示乙個單詞的長度。實際上也非常好寫,如果用刷表法也就30行 一不小心把tire開大了mle了一下然後差點刷到第一頁 這也能拿出來說,就這點出息 ac 如下 include include include de...