题意:

解法:

令d[i][t1][t2][x][y]表示前i个数,情况1出现t1次,情况2出现t2次, 末尾两个数为x和y的方案数.
枚举下一个数nt进行转移即可.最后答案为d[n][t][t-1][][].

code:

#include <bits/stdc++.h>
using namespace std;
const int maxm=2e6+5;
int d[22][11][11][5][5];
int n,t;
inline void solve(){cin>>n>>t;for(int i=1;i<=4;i++){for(int j=1;j<=4;j++){if(i==j)continue;d[2][0][0][i][j]++;}}for(int i=2;i<n;i++){for(int t1=0;t1<=t;t1++){for(int t2=0;t2<=t-1;t2++){for(int x=1;x<=4;x++){for(int y=1;y<=4;y++){if(x==y)continue;for(int nt=1;nt<=4;nt++){if(y==nt)continue;int t11=t1;int t22=t2;if(y>x&&y>nt)t11++;if(y<x&&y<nt)t22++;if(t11>t||t22>t-1)continue;d[i+1][t11][t22][y][nt]+=d[i][t1][t2][x][y];}}}}}}int ans=0;for(int i=1;i<=4;i++){for(int j=1;j<=4;j++){ans+=d[n][t][t-1][i][j];}}cout<<ans<<endl;
}
signed main(){ios::sync_with_stdio(0);cin.tie(0);solve();return 0;
}

Codeforces14 E. Camels(dp)相关推荐

  1. CodeForces 14 E.Camels(dp)

    Description 构造序列y1,...,ny_{1,...,n}满足: 1.有tt个j(2≤j≤n−1)j(2\leq j\leq n-1)满足yj−1<yj>yj+1y_{j-1} ...

  2. 求三角形最大面积(DP)

    求三角形最大面积(DP) 在OJ上奇迹般WA了:WA:70. Why? #include <iostream> #include <string.h> using namesp ...

  3. LeetCode 编辑距离 II(DP)

    1. 题目 给你两个单词 s 和 t,请你计算出将 s 转换成 t 所使用的最少操作数. 你可以对一个单词进行如下两种操作: 删除一个字符 替换一个字符 注意: 不允许插入操作 题目保证有解 示例: ...

  4. LeetCode 1220. 统计元音字母序列的数目(DP)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个整数 n,请你帮忙统计一下我们可以按下述规则形成多少个长度为 n 的字符串: - 字符串中的每个字符都应当是小写元音字母('a', 'e', 'i ...

  5. LeetCode 265. 粉刷房子 II(DP)

    文章目录 1. 题目 2. 解题 1. 题目 假如有一排房子,共 n 个,每个房子可以被粉刷成 k 种颜色中的一种,你需要粉刷所有的房子并且使其相邻的两个房子颜色不能相同. 当然,因为市场上不同颜色油 ...

  6. LeetCode 256. 粉刷房子(DP)

    文章目录 1. 题目 2. 解题 1. 题目 假如有一排房子,共 n 个,每个房子可以被粉刷成红色.蓝色或者绿色这三种颜色中的一种,你需要粉刷所有的房子并且使其与相邻的两个房子颜色不能相同. 当然,因 ...

  7. LeetCode 1223. 掷骰子模拟(DP)

    1. 题目 有一个骰子模拟器会每次投掷的时候生成一个 1 到 6 的随机数. 不过我们在使用它时有个约束,就是使得投掷骰子时,连续 掷出数字 i 的次数不能超过 rollMax[i](i 从 1 开始 ...

  8. LeetCode 1155. 掷骰子的N种方法(DP)

    1. 题目 这里有 d 个一样的骰子,每个骰子上都有 f 个面,分别标号为 1, 2, -, f. 我们约定:掷骰子的得到总点数为各骰子面朝上的数字的总和. 如果需要掷出的总点数为 target,请你 ...

  9. LeetCode 1139. 最大的以 1 为边界的正方形(DP)

    1. 题目 给你一个由若干 0 和 1 组成的二维网格 grid,请你找出边界全部由 1 组成的最大 正方形 子网格,并返回该子网格中的元素数量.如果不存在,则返回 0. 示例 1: 输入:grid ...

最新文章

  1. 在linux环境下,使用find查找某个文件的指定路径
  2. C语言位操作--不用中间变量交换两数值
  3. 如何根据用户IP得到用户所在位置。
  4. popup a new windows
  5. java ftp取远程服务器时间_在 Java 中如何获取 FTP 服务器上的文件修改时间
  6. LastPass 的开源替代品
  7. JSP听课笔记(一)
  8. BZOJ4318: OSU!
  9. java运用jsp_JSP:JAVA Bean在JSP中的运用
  10. c语言 宏定义 去除宏定义_如何在C中重新定义宏?
  11. 内存溢出(OutOfMemoryError)与栈溢出(StackOverflowError)
  12. java随机生成三位数
  13. 新个税来了!一图看清你能省多少钱,转需! ​​​​
  14. 前端加密 后端Java解密
  15. 「基因组学」使用CAFE进行基因家族扩张收缩分析
  16. 用python实现银行金额大小写转换
  17. Android 卡顿优化之 Skipped * frames 掉帧的计算
  18. 不只是包子铺!巴比食品:重回高增长赛道,做中式面点第一品牌
  19. Vue项目中ico问题
  20. word图文混排复制到CKEditor图片不显示

热门文章

  1. 你还在抱怨职场的不公吗?
  2. vue组件孙子调用爷爷的方法
  3. 制作坦克大战,坦克移动代码
  4. CAPL基础篇-----CAPL中的定时器操作
  5. Localization of Classified Objects in SLAM using NonparametricStatistics and Clustering(2018,IROS)
  6. python目标跟踪精度曲线图_目标跟踪配置(三)-评价指标-benchmark(更新中,关注请收藏。。。)...
  7. LightTrack: Finding Lightweight Neural Networks for Object Tracking via One-Shot Architecture Search
  8. 各版本最新的Visual C++可再发行组件包(Redistributable Package)下载和合集
  9. matlab快速生成双峰函数
  10. math_@多元函数求导@全微分@偏导数@复合偏导