hdu 4301Divide Chocolate(dp)
来源:互联网 发布:中国历代位面之子知乎 编辑:程序博客网 时间:2024/05/02 09:05
这题的题意是,给你一个2*n的巧克力,问你如果把他分成k块,有多少种分法
dp[i][j][k] 表示的就是 ,第i 层 分成k块, 最后一层是分开的还是合上的 ,有多少种分法。
AC代码:
#include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>#include<map>using namespace std;const int N=1000;const int mod=100000007;typedef long long ll;int dp[N+1][2*N+1][3];void init(){ memset(dp,0,sizeof(dp));//1表示分开 2表示合在一起 dp[1][1][0]=1;dp[1][1][2]=1; dp[1][2][0]=1;dp[1][2][1]=1; for(int i=2;i<=1000;i++){ for(int j=1;j<=2000;j++){ dp[i][j][1]+=dp[i-1][j][1]; dp[i][j][2]+=dp[i-1][j][2]+dp[i-1][j][1]*2; dp[i][j][1]+=dp[i-1][j-1][1]*2+dp[i-1][j-1][2]*2; dp[i][j][2]+=dp[i-1][j-1][1]+dp[i-1][j-1][2]; dp[i][j][1]+=dp[i-1][j-2][1]+dp[i-1][j-2][2]; dp[i][j][1]%=mod; dp[i][j][2]%=mod; dp[i][j][0]=(dp[i][j][1]+dp[i][j][2])%mod; } }}int main(){ init(); int n; scanf("%d",&n); while(n--){ int a,b; scanf("%d%d",&a,&b); printf("%d\n",dp[a][b][0]); }}
0 0
- 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(打表+dp)
- hdu 4301 Divide Chocolate
- hdu 4301 Divide Chocolate
- hdu 4301 Divide Chocolate(DP ,4级,多校)
- HDU 4301 Divide Chocolate (状态转移比较多的dp)
- HDU/HDOJ----4301 Divide Chocolate
- DP:Divide Chocolate
- HDU 4301 Divide Chocolate ( 动态规划 )
- hdu 4031 Divide Chocolate
- HDU4301 Divide Chocolate DP问题
- linux shell之sed
- 前后端交互过程中的编码
- pymongo方法
- Matlab中把txt文件转换成带结构体struct的mat文件
- Codeforces Round #302 (Div. 2) D bfs最短路
- hdu 4301Divide Chocolate(dp)
- 你是DDoS攻击的受害者吗?
- 安装WDK8.1
- Android中图片的三级缓存策略
- 退出时如何跳出frameset框架
- 简约而不简单的SnackBar
- 2016.7.25 随记
- ruby解析json、xml
- LeetCode:347. Top K Frequent Elements