今天是hidadz小朋友的生日,她邀請了許多朋友來參加她的生日party。 hidadz帶著朋友們來到花園中,打算坐成一排玩遊戲。為了遊戲不至於無聊,就座的方案應滿足如下條件:對於任意連續的一段,男孩與女孩的數目之差不超過k。很快,小朋友便找到了一種方案坐了下來開始遊戲。hidadz的好朋友susie發現,這樣的就座方案其實是很多的,所以大家很快就找到了一種,那麼到底有多少種呢?熱愛數學的hidadz和她的朋友們開始思考這個問題…… 假設參加party的人中共有n個男孩與m個女孩,你是否能解答susie和hidadz的疑問呢?由於這個數目可能很多,他們只想知道這個數目除以12345678的餘數。
僅包含一行共3個整數,分別為男孩數目n,女孩數目m,常數k。
應包含一行,為題中要求的答案。
1 2 1
1n , m ≤ 150,k ≤ 20。
正解:$dp$。
設$f[i][j][k1][k2]$表示$i$個男孩,$j$個女孩,男孩與女孩差為$k1$,女孩與男孩差為$k2$,暴力轉移即可。
1//it is made by wfj_2048~
2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include
13#define rhl (12345678)
14#define inf (1<<30)
15#define il inline
16#define rg register
17#define ll long long
18#define file(s) freopen(s".in","r",stdin),freopen(s".out","w",stdout)
1920
using
namespace
std;
2122
int f[160][160][30][30
],n,m,k,ans;
2324 il int
gi()
3132 il void
work()
41for (rg int k1=0;k1<=k;++k1)
42for (rg int k2=0;k2<=k;++k2)
43 printf("
%d\n
",ans); return;44
}4546int
main()
bzoj1037 ZJOI2008 生日聚會
bzoj1037 zjoi2008 生日聚會 題意 一排小孩坐著玩遊戲。就座的方案滿足如下條件 對於任意連續的一段,男孩與女孩的數目之差不超過k。給出男孩數,女孩數和k,求就座方案數除以12345678的餘數。題解 dp方程見程式,i1i2表示當前選了幾男幾女,i3i4分別表示當前男比女多幾個和女比...
BZOJ1037動態規劃
資料範圍很小,可以用4維儲存下前i個男孩j個女孩,從這一位往前的所有點中男 女的差最大為x,女 男為y的方案數 主動遞推 f i 1 j x 1 max y 1 0 f i j x y f i j 1 max x 1 0 y 1 f i j x y 最後答案為 sigma x sigma y f n...
生日聚會 BZOJ 1037
生日聚會 問題描述 今天是hidadz小朋友的生日,她邀請了許多朋友來參加她的生日party。hidadz帶著朋友們來到花園中,打算坐成一排玩遊戲。為了遊戲不至於無聊,就座的方案應滿足如下條件 對於任意連續的一段,男孩與女孩的數目之差不超過k。很快,小朋友便找到了一種方案坐了下來開始遊戲。hidad...