Codeforces 1110D Jongmah dp
文章目录
- 题意
- 题解
链接
题意
一种麻将的牌从1→m1 \to m1→m,给你一手牌,nnn张,求这手牌最多能组成面子的数量.
题解
标准dp,所以写一下博客.
可以发现同样三个数字组成的顺子不会超过三组(可以当作三个刻子处理),因此可以定义dp[i][j][k]dp[i][j][k]dp[i][j][k]表示前iii种牌,i−1,i,i+1i-1,i,i+1i−1,i,i+1组成的顺子数量为jjj,i,i+1,i+2i,i+1,i+2i,i+1,i+2组成的顺子数量为kkk的最多面子数量.
转移的时候枚举l,j,kl,j,kl,j,k分别表示最小数为i−2,i−1,ii-2,i-1,ii−2,i−1,i的顺子数量.
此时转移方程为dp[i][j][k]=max(dp[i][j][k],dp[i-1][l][j]+k+(cnt[i]-j-k-l)/3);
const int yuzu=1e6;
typedef int fuko[yuzu|10];
fuko cnt,dp[3][3];
int main() {int i,n,m,j,k,l;read(n),read(m);for (i=1;i<=n;++i) ++cnt[read()];for (i=1;i<=m;++i) {for (j=0;j<3;++j) {for (k=0;k<3;++k) {for (l=0;l<3;++l) {if (cnt[i]>=j+k+l&&cnt[i+1]>=j+k&&cnt[i+2]>=k) dp[j][k][i]=max(dp[j][k][i],dp[l][j][i-1]+k+(cnt[i]-j-k-l)/3); // 借助i,i+1,i+2能够形成k个顺子,此时j+k+l个i已经被顺子用掉,剩下的i三个组成刻子}}}}printf("%d\n",dp[0][0][m]);//由于cnt[m+1]肯定为0,不需要考虑m的顺子数.
}
Thank you.
Codeforces 1110D Jongmah dp相关推荐
- Codeforces Global Round 1 D - Jongmah(dp)
题目 n张牌,m种牌,每个牌上一个号 可以连续打三个(3 3 3),也可以连续打顺子(1 2 3) 问最多能打多少组 思路来源 马老师&&航神 题解 首先如果连续3个都有三个,打三个顺 ...
- Codeforces 833B 题解(DP+线段树)
题面 传送门:http://codeforces.com/problemset/problem/833/B B. The Bakery time limit per test2.5 seconds m ...
- CodeForces 864E Fire dp递推
CodeForces 864E 题意:有 n 个物品着火,每个物品要花 ti 时间扑灭,且在 >= di 时间后就会坏掉,物品价值为 pi . 问最多可以救回多少价值,物品个数,及救哪些物品(要 ...
- Codeforces 864E - Fire(dp)
原题连接:http://codeforces.com/problemset/problem/864/E 题意:一个人想从大火中带走一些东西.每次他只能带一个,耗时ti ,价值为pi, 当总时间超过di ...
- CodeForces - 1497D Genius(dp)
题目链接:点击查看 题目大意:给出 nnn 个问题,每个问题有如下属性: tagtagtag:标签 ccc:困难度 sss:奖励值 初始时 ci=2ic_i=2^ici=2i,初始时 IQ=0IQ= ...
- D - Yet Another Problem On a Subsequence CodeForces - 1000D (DP,组合数学)
D - Yet Another Problem On a Subsequence CodeForces - 1000D The sequence of integers a1,a2,-,aka1,a2 ...
- Codeforces 480D Parcels(dp)
题目链接:Codeforces 480D Parcels 题目大意:就是有一个用来堆放货物的板,承重力为S.现在有N件货物,每件货物有到达的时间,运走的时间,以及 重量,承重,存放盈利.如果这件货物能 ...
- Codeforces 711c 简单dp
题目:http://codeforces.com/problemset/problem/711/C 题意: 有n棵树,m(1-m)种颜色,要求划分成k组,每组是连续的同一种颜色的树. 刚开始树有的已经 ...
- 【CodeForces】【DP】14E Camels
CodeForces 14E Camels 题目 ◇题目传送门◆ 题目大意 给定N,TN,TN,T要求求出满足下列条件的填数方案数. 1. 对于第j(2≤j≤N−1)j(2≤j≤N−1)j(2\le ...
最新文章
- wattosR6中文化步骤
- 如何翻译英文PDF?如何翻译英文word文档?
- 【linux基础】关于ARM板子使用O3编译选项优化
- 自入行C++程序设计以来
- python查看数据类型type_python——获取数据类型:type()、isinstance()的使用方法:...
- gc:C语言的垃圾回收库-中文
- 利用filebeat推送mysql慢查询日志
- ThinkPHP5.0之控制器中常用操作
- SAP Client Copy
- Java菜鸟学习笔记--面向对象篇(十八):对象转型多态
- Delphi D10.X中实现安卓中文语音合成(中文朗读)就这么简单
- 实习日记——Day16
- 用python编译linux内核,戴子轩/RK3399上编译linux-kernel
- ios应用不通过应用商店下载
- 出现顺丰丢件很好办,做好这几点就可无忧
- 纷享销客产品副总裁李杰:连接型CRM如何支撑快消品牌企业新增长
- ansys怎么合并体_ANSYS梁体组合连接计算方法的讨论
- java监听微信_一种基于java后台应用监控微信小程序的用户访问量的方法与流程...
- web利用html2canvas实现截图上传图片
- u盘里的文件损坏了怎么修复?
热门文章
- 显示器竖屏显示会字体发虚的解决方法
- Cathy学习Java——线程
- mysql游标遍历修改,mysql 遍历游标 处理
- Google APAC 2016 University Graduates Test Practice Round APAC test
- 用Vue写的一个简易的待办事项清单系统
- html页面设计参考文献英文,网页设计网站参考文献(国外英文资料).doc
- Qt报错:XXX does not name a type
- (2020版) 墙裂推荐这十款精选 IntelliJ Idea 插件
- 机器视觉、halcon visionpro 的使用感受
- 如何解决因涉及不良信息导致QQ互联审核不通过?