2023年10月29日提高組 T1 A

2021-08-30 08:32:35 字數 1310 閱讀 9444

n

nn個球,m

mm個盤,盤子不能空,求本質上不相同的方案數

首先深搜

#include

using

namespace std;

int n,m,ans;

inline

void

dfs(

register

int dep,

register

int sy,

register

int last)

//分完了,統計

if(dep

for(

register

int i=last;i<=sy;i++

)dfs

(dep+

1,sy-i,i)

;//繼續分

else

if(sy>=last)

dfs(dep+1,

0,sy)

;//剩下的直接分完

}signed

main()

然後發現規律f[i

][j]

=f[i

−1][

j−1]

+f[i

−j][

j]f[i][j]=f[i-1][j-1]+f[i-j][j]

f[i][j

]=f[

i−1]

[j−1

]+f[

i−j]

[j]

當然,你也可以這樣想:

當前的方案數=少乙個球少乙個盒+少盒子個球盒子數不變的方案數(因為要保證滿足本質上不同,否則的話就是f[i

−1][

j]f[i-1][j]

f[i−1]

[j],就變成楊輝三角了就可以愉快的跑費小了

;//輸出

}

2023年10月30日提高組 T1 A

求樹上聯通快中最大值與最小值之差為k kk的方案數 設最大值與最小值之差為xxx x xx正好為k kk的方案數 x k x leq k x k 的方案數 x x k的方案數 於是我們就可以樹形dpdp dp啦fi fs on 1 f i prod f 1 fi fson 1 include def...

2023年10月31日提高組 T1 A

求n nn的排列了交換為公升序的最小交換次數的期望 兩種思路 暴力打表找規律 動態規劃 第一種只需要打乙個bfs bfsbf s hash hash hash include include define p 10000007 using namespace std int n,ans struct...

2023年10月30日提高組

jzoj 5194 盟主的憂慮 jzoj 5907 輕功 問乙個樹中有多少個連通塊最大最小點權之差等於kkk 也就是 k 的個數 k 1 的 個數 k 的個數 k 1 的個數 k 的個數 k 1 的 個數,那麼就可以列舉點,對於這個點求的是以它為最大點權符合要求的個數,那麼容易得到合法條件a m a...