[BZOJ1037]ZJOI2008生日聚会|DP
2015-04-17 10:12
316 查看
显然dp。。f[i][j][x][y]表示i个男孩,j个女孩,以i+j为序列结尾男孩最多比女孩多x,女孩最多比男孩多y时的方案数,用每一个状态更新后面的状态,转移很好YY,无非就是加一个男的或者加一个女的嘛。。
#include<iostream> #include<cstdio> #include<memory.h> #define p 12345678 using namespace std; int i,j,x,y,n,m,k,ans=0,f[155][155][25][25]; int main() { scanf("%d%d%d",&n,&m,&k); memset(f,0,sizeof(f)); f[0][0][0][0]=1; for (i=0;i<=n;i++) for (j=0;j<=m;j++) for (x=0;x<=k;x++) for (y=0;y<=k;y++) { f[i+1][j][x+1][max(y-1,0)]=(f[i+1][j][x+1][max(y-1,0)]+f[i][j][x][y])%p; f[i][j+1][max(x-1,0)][y+1]=(f[i][j+1][max(x-1,0)][y+1]+f[i][j][x][y])%p; } for (x=0;x<=k;x++) for (y=0;y<=k;y++) ans=(ans+f [m][x][y])%p; printf("%d",ans); }
相关文章推荐
- BZOJ 1037 [ZJOI2008]生日聚会Party(单调DP)
- 【BZOJ1037】[ZJOI2008]生日聚会Party【计数DP】【特殊的姿势】
- [BZOJ1037][ZJOI2008]生日聚会Party dp
- BZOJ 1037: [ZJOI2008]生日聚会Party(区间dp)
- bzoj1037: [ZJOI2008]生日聚会Party(dp)
- bzoj1037[ZJOI2008]生日聚会Party DP
- BZOJ 1037: [ZJOI2008]生日聚会Party DP
- bzoj 1037: [ZJOI2008]生日聚会Party (DP)
- [bzoj1037][ZJOI2008]生日聚会Party dp
- [BZOJ1037][ZJOI2008][DP]生日聚会Party
- BZOJ.1037.[ZJOI2008]生日聚会Party(DP)
- 【bzoj1037】【ZJOI2008】【生日聚会Party】【dp】
- bzoj1037: [ZJOI2008]生日聚会Party DP
- bzoj1037 [ZJOI2008]生日聚会Party(dp)
- bzoj 1037 [ZJOI2008]生日聚会Party(DP)
- BZOJ 1037: [ZJOI2008]生日聚会Party( dp )
- BZOJ 1037: [ZJOI2008]生日聚会Party [序列DP]
- bzoj 1037: [ZJOI2008]生日聚会Party dp
- HYSBZ/BZOJ 1037 [ZJOI2008] 生日聚会Party - dp
- BZOJ 1037: [ZJOI2008]生日聚会Party DP