文章目录

  • 题意
  • 题解

链接

题意

一种麻将的牌从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相关推荐

  1. Codeforces Global Round 1 D - Jongmah(dp)

    题目 n张牌,m种牌,每个牌上一个号 可以连续打三个(3 3 3),也可以连续打顺子(1 2 3) 问最多能打多少组 思路来源 马老师&&航神 题解 首先如果连续3个都有三个,打三个顺 ...

  2. Codeforces 833B 题解(DP+线段树)

    题面 传送门:http://codeforces.com/problemset/problem/833/B B. The Bakery time limit per test2.5 seconds m ...

  3. CodeForces 864E Fire dp递推

    CodeForces 864E 题意:有 n 个物品着火,每个物品要花 ti 时间扑灭,且在 >= di 时间后就会坏掉,物品价值为 pi . 问最多可以救回多少价值,物品个数,及救哪些物品(要 ...

  4. Codeforces 864E - Fire(dp)

    原题连接:http://codeforces.com/problemset/problem/864/E 题意:一个人想从大火中带走一些东西.每次他只能带一个,耗时ti ,价值为pi, 当总时间超过di ...

  5. CodeForces - 1497D Genius(dp)

    题目链接:点击查看 题目大意:给出 nnn 个问题,每个问题有如下属性: tagtagtag:标签 ccc:困难度 sss:奖励值 初始时 ci=2ic_i=2^ici​=2i,初始时 IQ=0IQ= ...

  6. 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 ...

  7. Codeforces 480D Parcels(dp)

    题目链接:Codeforces 480D Parcels 题目大意:就是有一个用来堆放货物的板,承重力为S.现在有N件货物,每件货物有到达的时间,运走的时间,以及 重量,承重,存放盈利.如果这件货物能 ...

  8. Codeforces 711c 简单dp

    题目:http://codeforces.com/problemset/problem/711/C 题意: 有n棵树,m(1-m)种颜色,要求划分成k组,每组是连续的同一种颜色的树. 刚开始树有的已经 ...

  9. 【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 ...

最新文章

  1. wattosR6中文化步骤
  2. 如何翻译英文PDF?如何翻译英文word文档?
  3. 【linux基础】关于ARM板子使用O3编译选项优化
  4. 自入行C++程序设计以来
  5. python查看数据类型type_python——获取数据类型:type()、isinstance()的使用方法:...
  6. gc:C语言的垃圾回收库-中文
  7. 利用filebeat推送mysql慢查询日志
  8. ThinkPHP5.0之控制器中常用操作
  9. SAP Client Copy
  10. Java菜鸟学习笔记--面向对象篇(十八):对象转型多态
  11. Delphi D10.X中实现安卓中文语音合成(中文朗读)就这么简单
  12. 实习日记——Day16
  13. 用python编译linux内核,戴子轩/RK3399上编译linux-kernel
  14. ios应用不通过应用商店下载
  15. 出现顺丰丢件很好办,做好这几点就可无忧
  16. 纷享销客产品副总裁李杰:连接型CRM如何支撑快消品牌企业新增长
  17. ansys怎么合并体_ANSYS梁体组合连接计算方法的讨论
  18. java监听微信_一种基于java后台应用监控微信小程序的用户访问量的方法与流程...
  19. web利用html2canvas实现截图上传图片
  20. u盘里的文件损坏了怎么修复?

热门文章

  1. 显示器竖屏显示会字体发虚的解决方法
  2. Cathy学习Java——线程
  3. mysql游标遍历修改,mysql 遍历游标 处理
  4. Google APAC 2016 University Graduates Test Practice Round APAC test
  5. 用Vue写的一个简易的待办事项清单系统
  6. html页面设计参考文献英文,网页设计网站参考文献(国外英文资料).doc
  7. Qt报错:XXX does not name a type
  8. (2020版) 墙裂推荐这十款精选 IntelliJ Idea 插件
  9. 机器视觉、halcon visionpro 的使用感受
  10. 如何解决因涉及不良信息导致QQ互联审核不通过?