hdu 4301 Divide Chocolate
来源:互联网 发布:sx2150k基本数据 编辑:程序博客网 时间:2024/04/30 12:51
Divide Chocolate
DP状态:dp[i][j][1]表示前i个分成j部分并且最后一行被分在不同的部分中的个数,dp[i][j][0]表示前i个分成j部分并且最后一行被分在相同的部分中的个数
可以先预处理出1000内所有的,然后只需要查询即可。
/* author : csuchenan prog : hdu4301 algorithm : DP dp[i][j][0],表示前i个分成j分并且最好一行在同一块中的个数, dp[i][j][1].表示前i个分成j分并且最后一行分在不同的块具体看程序 2012-10-19 23:02:18Accepted430131MS16024K801 BC++csu_chenan*/#include <cstdio>#include <cstring>const int mod = 100000007;const int maxn = 1005;int dp[maxn][maxn*2][2];int n, k;int main(){ int T; memset(dp, 0, sizeof(dp)); dp[1][1][0] = 1; dp[1][2][1] = 1; for(int i = 2; i <= 1000; i ++){ dp[i][1][0] = 1; for(int j = 2; j <= i * 2; j ++){ dp[i][j][0] = (dp[i][j][0] + dp[i-1][j-1][0] + dp[i-1][j-1][1] + dp[i-1][j][0] + 2*dp[i-1][j][1])%mod; dp[i][j][1] = (dp[i-1][j-2][0] + dp[i-1][j][1] + dp[i][j][1]+ dp[i-1][j-1][0]*2 + dp[i-1][j-1][1]*2 + dp[i-1][j-2][1])%mod; } } scanf("%d", &T); while(T--){ scanf("%d%d", &n , &k); printf("%d\n", (dp[n][k][1] + dp[n][k][0])%mod); } return 0 ;}
- hdu 4301 Divide Chocolate
- hdu 4301 Divide Chocolate
- HDU/HDOJ----4301 Divide Chocolate
- hdu - 4301 - Divide Chocolate- dp
- hdu 4301 Divide Chocolate(DP)
- HDU 4301 Divide Chocolate(DP)
- hdu 4301Divide Chocolate(dp)
- hdu 4301 Divide Chocolate (dp )
- hdu 4301 Divide Chocolate(DP)
- HDU 4301 Divide Chocolate 巧克力分割dp
- hdu 4301 - Divide Chocolate(简单dp)
- HDU 4301 Divide Chocolate ( 动态规划 )
- HDU 4301 Divide Chocolate(打表+dp)
- hdu 4031 Divide Chocolate
- hdu 4301 Divide Chocolate (多校联合1)
- hdu 4301 Divide Chocolate(DP ,4级,多校)
- HDU 4301 Divide Chocolate (状态转移比较多的dp)
- hdu 4301 Divide Chocolate 动态规划 递推 多校联合赛第二题
- wzplayer 成功支持IOS
- perl哈希要点,哈希与数组的关系以及相互转化,哈希结构的转化(键值转换),测试关键字,
- Struts2之ajax初析
- 贝儿的伤感爱情空间日志发布:宝贝,快回头吧,我等你
- c语言学习笔记十八
- hdu 4301 Divide Chocolate
- Java---Socket编程基础理论
- 含对象成员类的构造顺序
- Mac BCCollectionView的使用(三)
- 范特西的伤感空间日志推荐:我在风中颤抖,你却再难回头
- 微软等数据结构+算法面试100题全部答案集锦
- 简单通俗的由入侵反应如何加强网站及服务器部署
- 按文件字符集类型读取配置文件
- 大数乘法