共有\(n\)個男孩與\(m\)個女孩打算坐成一排。對於任意連續的一段,男孩與女孩的數目之差不超過 \(k\)。求方案數。
\(n,m \leq 150, k \leq 20\)
設 \(f[i][j][k][l]\) 表示放了 \(i,j\) 個男女,所有字尾中,男生減女生最大為 \(k\),女生減男生最大為 \(l\) 的方案數
採用「主動轉移」
f[i+1][j][k+1][max(l-1,0)]+=f[i][j][k][l]
f[i][j+1][max(k-1,0)][l+1]+=f[i][j][k][l]
#include using namespace std;
int f[155][155][22][22],n,m,lim;
const int mod = 12345678;
signed main() }}
}int ans=0;
for(int i=0;i<=lim;i++)
}cout<}
ZJOI2008 生日聚會
zjoi2008 生日聚會 今天是hidadz小朋友的生日,她邀請了許多朋友來參加她的生日party。hidadz帶著朋友們來到花園中,打算 坐成一排玩遊戲。為了遊戲不至於無聊,就座的方案應滿足如下條件 對於任意連續的一段,男孩與女孩的數目之 差不超過k。很快,小朋友便找到了一種方案坐了下來開始遊戲...
bzoj1037 ZJOI2008 生日聚會
bzoj1037 zjoi2008 生日聚會 題意 一排小孩坐著玩遊戲。就座的方案滿足如下條件 對於任意連續的一段,男孩與女孩的數目之差不超過k。給出男孩數,女孩數和k,求就座方案數除以12345678的餘數。題解 dp方程見程式,i1i2表示當前選了幾男幾女,i3i4分別表示當前男比女多幾個和女比...
bzoj1037 ZJOI2008 生日聚會
今天是hidadz小朋友的生日,她邀請了許多朋友來參加她的生日party。hidadz帶著朋友們來到花園中,打算坐成一排玩遊戲。為了遊戲不至於無聊,就座的方案應滿足如下條件 對於任意連續的一段,男孩與女孩的數目之差不超過k。很快,小朋友便找到了一種方案坐了下來開始遊戲。hidadz的好朋友susie...