hdu 4301 Divide Chocolate
来源:互联网 发布:win2008搭建域名服务器 编辑:程序博客网 时间:2024/05/02 19:32
题目:hdu 4301 Divide Chocolate
题意:2*n的巧克力分成k份的方案数
思路:跟铺砖的是一样的
用dp[i][j][k]表示前i-1列已经处理好了,i列切成j块,k=0表示第i列两块属于同一部分,k=1表示第i列两块不属于同一部分。
这里列出第i+1列和第i列的状态,用数字区别不同
#include <cstring>#include <iostream>#include <cmath>#include <algorithm>#include <cstdio>using namespace std;#define mod 100000007#define maxn 1010int dp[maxn][2030][2];int main(){ memset(dp,0,sizeof(dp)); dp[1][1][0]=1; dp[1][1][1]=0; dp[1][2][1]=1; dp[1][2][0]=0; for(int i=2;i<maxn;i++) { for(int j=1;j<2*maxn;j++) { dp[i][j][0]=(dp[i-1][j][0]+2*dp[i-1][j][1]+dp[i-1][j-1][0]+dp[i-1][j-1][1])%mod; if(j>=2) dp[i][j][1]=(2*dp[i-1][j-1][0]+dp[i-1][j][1]+2*dp[i-1][j-1][1]+dp[i-1][j-2][0]+dp[i-1][j-2][1])%mod; else dp[i][j][1]=(2*dp[i-1][j-1][0]+dp[i-1][j][1]+2*dp[i-1][j-1][1])%mod; } } int t; scanf("%d",&t); while(t--) { int n,k; scanf("%d%d",&n,&k); printf("%d\n",(dp[n][k][0]+dp[n][k][1])%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 动态规划 递推 多校联合赛第二题
- 我的web.xml配置。
- 北理工FTP地址
- 一个static引发的血案
- 张近东:苏宁就是一家互联网企业
- 经典书目
- hdu 4301 Divide Chocolate
- 百度地图API之MyLocationOverlay的使用(Android) (9)
- Getting a Packet Trace
- You probably tried to upload too large file. Please refer to documentation for ways to workaround th
- list容器实例-多项式相加
- YUV420_to_RGB24 算法
- 四谈iOS抓包:Mac下好用的HTTP/HTTPS抓包工具Charles
- Android 获取ROOT权限原理解析
- 百度地图API之根据经纬度查询地址信息(Android) .(10)