bzoj1037 ZJOI2008 生日聚會

2022-05-02 04:54:05 字數 1257 閱讀 9075

今天是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...