Codeforces 268D
来源:互联网 发布:淘宝新店能做什么活动 编辑:程序博客网 时间:2024/06/05 23:56
有一根柱子,每个点上可以插有且仅有一根棍子,棍子的方向有四种。
初始,可以选择任意方向往上爬,然后就只能按照原来的方向不停的往上爬。。。
dp[i][a1][a2][a3][a4]表示当前已经插前i跟棍子,第i跟棍子能否到达a1,其他三个方向的棍子与第i跟棍子的距离分别为a2,a3,a4
#include<cstdio>#include<iostream>#include<cstring>using namespace std;const int mod=1e9+9;typedef __int64 LL;LL dp[1010][2][31][31][31];void fm(LL &x){ if(x>mod)x-=mod;}int main(){ #ifdef DouBi freopen("in.cpp","r",stdin); #endif // DouBi int n,h;while(scanf("%d%d",&n,&h)!=EOF){ memset(dp,0,sizeof(dp)); dp[0][0][0][0][0]=1; LL val; for(int i=0;i<n;i++){ for(int a=0;a<=1;a++){ for(int b=0;b<=h;b++){ for(int c=0;c<=h;c++){ for(int d=0;d<=h;d++)if(val=dp[i][a][b][c][d]){ dp[i+1][a][b+1<h?b+1:h][c+1<h?c+1:h][d+1<h?d+1:h]+=dp[i][a][b][c][d]; fm(dp[i+1][a][b+1<h?b+1:h][c+1<h?c+1:h][d+1<h?d+1:h]); dp[i+1][b+1<=h?0:1][c+1<h?c+1:h][d+1<h?d+1:h][a?h:1]+=dp[i][a][b][c][d];fm(dp[i+1][b+1<=h?0:1][c+1<h?c+1:h][d+1<h?d+1:h][a?h:1]); dp[i+1][c+1<=h?0:1][d+1<h?d+1:h][a?h:1][b+1<h?b+1:h]+=dp[i][a][b][c][d];fm(dp[i+1][c+1<=h?0:1][d+1<h?d+1:h][a?h:1][b+1<h?b+1:h]); dp[i+1][d+1<=h?0:1][a?h:1][b+1<h?b+1:h][c+1<h?c+1:h]+=dp[i][a][b][c][d];fm(dp[i+1][d+1<=h?0:1][a?h:1][b+1<h?b+1:h][c+1<h?c+1:h]); } } } } } //printf("%I64d\n",dp[1][0][1][1][1]); LL ans=0; for(int a=0;a<=1;a++){ for(int b=0;b<=h;b++){ for(int c=0;c<=h;c++){ for(int d=0;d<=h;d++){ if(!a||b<h||c<h||d<h){ //if(n==2&&dp[n][a][b][c][d])printf("%d %d %d %d %I64d\n",a,b,c,d,dp[n][a][b][c][d]); ans+=dp[n][a][b][c][d];fm(ans); } } } } } printf("%I64d\n",ans); } return 0;}
0 0
- codeforces 268D
- Codeforces 268D
- codeforces 268D Wall Bars
- Codeforces Round #268 (Div. 2) D
- codeforces 268D Wall Bars (dp)
- CodeForces 268D Wall Bars [基础DP]
- CodeForces 617D CodeForces 617D
- CodeForces 101D
- CodeForces 103D
- CodeForces 222D Olympiad
- codeforces 242d
- CodeForces 111D
- 【codeforces】3D
- CodeForces 127D Password
- codeforces 257D. Sum
- Codeforces 292D
- Codeforces 275D
- Codeforces 126D
- XML解析笔记
- Java发送邮件实例
- 手写数字识别的全栈尝试
- java 集合学习笔记1-Collection 集合遍历 List子类特点
- Android6.0【运行时申请权限】的分析
- Codeforces 268D
- 从零开始做远控 第十二篇 命令行控制
- 3 对象的共享
- 深入SpringMVC
- linux的nohup命令的用法
- Java并发编程:volatile关键字解析
- pat-a1033. To Fill or Not to Fill (25)
- 【Spring】Spring AOP实现原理
- 最短路-佛罗伊德