codeforces 14E Camels (计数类dp)
来源:互联网 发布:样加入淘宝客去推广 编辑:程序博客网 时间:2024/05/20 20:02
题意:
给出n,t,分别表示有n个数,t个波峰,t-1波谷。要求出满足n个数组成类似于波一样的结构,并且波峰t个,波谷t-1个,的种类数。
题解:
要什么状态就加什么状态呗,我们要确定递推关系,坑定要知道前一个状态是波分还是波谷,才能增加数字使这个状态称为波分或者波谷。要去定上个数是波分还是波谷,只要知道前两个数选的是什么,然后枚举这个数这样就可以构造波峰和波谷。dp[i][j][k][x][y] 表示第i个点为止,波峰有j个,波谷有k个,前一个数选x,这个数选y,所能得到的种类数。
#include<iostream>#include<math.h>#include<stdio.h>#include<algorithm>#include<string.h>#include<vector>#include<map>using namespace std;typedef long long lld;const int oo=0x3f3f3f3f;const lld OO=1LL<<61;const int MOD=2520;#define eps 1e-6const int maxn=105;lld dp[22][12][12][4][4];void DP(){ memset(dp,0,sizeof dp); for(int x=0;x<4;x++) for(int y=0;y<4;y++) if(x!=y) dp[2][0][0][x][y]=1; for(int i=2;i<=20;i++) { for(int j=0;j<=10;j++) { for(int k=0;k<=10;k++) { for(int x=0;x<4;x++) { for(int y=0;y<4;y++) { if(dp[i][j][k][x][y]==0)continue; for(int z=0;z<4;z++) { if(y>x) { ///z==y时没判断 if(z>y) dp[i+1][j][k][y][z]+=dp[i][j][k][x][y]; if(z<y) dp[i+1][j+1][k][y][z]+=dp[i][j][k][x][y]; } if(y<x) { ///z==y时没判断 if(z>y) dp[i+1][j][k+1][y][z]+=dp[i][j][k][x][y]; if(z<y) dp[i+1][j][k][y][z]+=dp[i][j][k][x][y]; } } } } } } }}int main(){ int n,t; DP(); scanf("%d %d",&n,&t); lld ans=0; for(int x=0;x<4;x++) for(int y=0;y<4;y++) ans+=dp[n][t][t-1][x][y]; cout<<ans<<endl; return 0;}/***/
0 0
- codeforces 14E Camels (计数类dp)
- Codeforces 14E Camels (DP)
- CodeForces 14 E.Camels(dp)
- CF-14E - Camels(DP)
- CodeForces 14 E - Camels && D - Two Paths
- Codeforces Beta Round #14 (Div. 2) E. Camels
- CodeForces 158E Phone Talks 树形dp+计数
- Codeforces 645E Intellectual Inquiry (dp不同子序列计数)
- Codeforces 15E Trangles (计数)
- Codeforces 870E:计数问题
- 【dp】codeforces 83E
- codeforces-731E-dp
- Codeforces 748E dp
- Codeforces 722E [DP]
- Codeforces 416E DP
- Codeforces 176B【计数DP】
- Codeforces 40E Number Table (计数)
- Codeforces 135E Weak Subsequence(组合计数)
- 小马哥--高仿红米note m8207主板 2015新版单卡4G 详细拆机主板图与开机识别图 主板摄像头出双排线
- ios-day05-02(ScrollView的常见属性:contentSize、contentInset、contentOffset 以及其他属性)
- git的学习
- 用Markdown写一本自己的开源电子书
- CSS3学习手册(续)
- codeforces 14E Camels (计数类dp)
- 雅虎定位查询天气
- Windbg调试命令详解
- POJ3080 Blue Jeans 【KMP 暴力水过】
- Git常用命令总结
- Apache + Tomcat采用AJP实现负载均衡与session同步
- Resin介绍及其使用配置
- C++ primer(第五版)8.2.1节练习答案
- [libevent] 简介和使用