博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
51NOD 1371填数字
阅读量:6209 次
发布时间:2019-06-21

本文共 1028 字,大约阅读时间需要 3 分钟。

分析

此题关键在于想出dp[i][j][k]代表考虑到第i行,还能放1的的共有j列,还能放2的共有k行。之后就枚举每一行是没有还是1个1还是2个1还是1个2,然后转移即可。

代码

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;const long long mod = 1e8+7;#define add(x,y) x=(x+y)%modlong long dp[2][210][210];int main(){ long long n,now=0,i,j,k; scanf("%lld",&n); dp[0][0][0]=1; for(i=1;i<=n;i++){ now^=1; memset(dp[now],0,sizeof(dp[now])); for(j=0;j
0) add(dp[now][j-1][k+1],j*dp[now^1][j][k]%mod); add(dp[now][j+1][k],(k+1)*dp[now^1][j][k]%mod); if(j>=2) add(dp[now][j-2][k+1],j*(j-1)/2%mod*dp[now^1][j][k]%mod); add(dp[now][j][k],j*(k+1)%mod*dp[now^1][j][k]%mod); if(k>0) add(dp[now][j+2][k-1],(k+1)*k/2%mod*dp[now^1][j][k]); } } long long Ans=0; for(j=0;j<=n;j++) for(k=0;k+j<=n;k++) add(Ans,dp[now][j][k]); printf("%lld\n",Ans); return 0;}

转载于:https://www.cnblogs.com/yzxverygood/p/9693352.html

你可能感兴趣的文章
WinForm 界面异步更新数据(方式三)
查看>>
Sql日期时间格式转换
查看>>
jquery Jsonp 跨域访问
查看>>
Ubuntu安装Docker
查看>>
并行计算之Memory barrier(内存
查看>>
CentOS更换源和软件更新操作
查看>>
生成 验证验证码
查看>>
Pessimistic and optimistic locking
查看>>
iframe 样式控制
查看>>
读《The Mythical Man-Month》有感
查看>>
hadoop2 作业执行过程之yarn调度执行
查看>>
POJ3281 Dining
查看>>
ios开发教程之申请更多后台时间
查看>>
BZOJ 1087 互不侵犯King 状态压缩DP
查看>>
Linux特殊符号及基础正则表达式
查看>>
页面广告飘窗
查看>>
MySQL性能优化的最佳20+条经验 【转】
查看>>
自适应滤波:矩阵求逆
查看>>
SVN--从本地检出项目至服务器报错--禁止访问
查看>>
[LeetCode] Remove Invalid Parentheses
查看>>