HDU 6188 Duizi and Shunzi
栈。
将数字排序后,一个一个压入栈。如果栈顶两个元素形成了对子,那么$ans+1$,弹出栈顶两个元素;如果栈顶三个元素形成了顺子,那么$ans+1$,弹出栈顶三个元素。
#include<bits/stdc++.h>
using namespace std; const int maxn = 1000000 + 10;
int n;
int a[maxn];
int b[maxn];
int c[maxn]; int main() {
while(~scanf("%d", &n)) {
memset(a, 0, sizeof a);
for(int i = 1; i <= n; i ++) {
int x;
scanf("%d", &x);
a[x] ++;
}
int ans = 0;
int num = 0;
int top = -1;
for(int i = 1; i <= n; i ++) {
while(a[i] --) {
c[++ num] = i;
}
}
for(int i = 1; i <= n; i ++) {
if(top == -1) {
top ++;
b[top] = c[i];
} else {
if(c[i] == b[top]) {
top --;
ans ++;
} else {
if(top < 1) {
top ++;
b[top] = c[i];
} else {
if(b[top - 1] + 1 == b[top] && b[top] + 1 == c[i]) {
top --;
top --;
ans ++;
} else {
top ++;
b[top] = c[i];
}
}
}
}
}
printf("%d\n", ans);
}
return 0;
}
HDU 6188 Duizi and Shunzi的更多相关文章
- HDU 6188 Duizi and Shunzi 贪心
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6188 题意:给了n个数,然后现在问我们最多构成多少个对子和顺子,其中对子是2个相同的牌,顺子是3个连续 ...
- Duizi and Shunzi HDU - 6188 (贪心)2017 广西ACM/ICPC
Duizi and Shunzi Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- Duizi and Shunzi HDU
Duizi and Shunzi Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- 【hdu6188】Duizi and Shunzi(贪心)
2017ACM/ICPC广西邀请赛 重现赛1007 Duizi and Shunzi 题意 有n张牌,问你最多能组成多少对子+顺子?一个牌只能用在一个顺子或者对子中. 题解 本来想写dp的,不会..小 ...
- 2017ACM/ICPC广西邀请赛 1007 Duizi and Shunzi
Duizi and Shunzi Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- HDU 6188:Duizi and Shunzi(贪心)(广西邀请赛)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6188 题意 有n个数字,每个数字小于等于n,两个相同的数字价值为1,三个连续的数字价值为1 .问这n个 ...
- 2017ACM/ICPC广西邀请赛-重现赛 1007.Duizi and Shunzi
Problem Description Nike likes playing cards and makes a problem of it. Now give you n integers, ai( ...
- HDU 6188最小费用流
题目链接:http://hdu.hustoj.com/showproblem.php?pid=6118 掉坑里了,图很好建,Wa了一发,看了Disscuss里面有人提供了一组样例,画图发现:最小流模板 ...
- hdu6188 Duizi and Shunzi (贪心或者dp)
题意 有n张牌,第i张牌上的数字是a[i].我们定义 两张数字是一样的牌 为对子.我们定义 三张数字连续的牌 为顺子.我们想把这n张牌组成尽可能多的顺子和对子.请计算并输出能组成的最多的顺子和对子的数 ...
随机推荐
- OpenCV---图像二值化
一:什么是二值图像 彩色图像:三个通道0-,-,-,所以可以有2^24位空间 灰度图像:一个通道0-,所以有256种颜色 二值图像:只有两种颜色,黑和白,1白色,0黑色 二:图像二值化 (一)先获取阈 ...
- 重构改善既有代码设计--重构手法02:Inline Method (内联函数)& 03: Inline Temp(内联临时变量)
Inline Method (内联函数) 一个函数调用的本体与名称同样清楚易懂.在函数调用点插入函数体,然后移除该函数. int GetRating() { return MoreThanfiveLa ...
- [译]Quartz.Net 框架 教程(中文版)2.2.x 之第三课 更多关于Jobs和JobDetails
第三课 更多关于Jobs和JobDetails 在这二课我们已经学习到,Jobs接口非常容易实现,只有一个execute方法.我们需要再学习一些知识去理解jobs的本质,Job接口的execute方法 ...
- 【BZOJ】4033: [HAOI2015]树上染色 树上背包
[题目]#2124. 「HAOI2015」树上染色 [题意]给定n个点的带边权树,要求将k个点染成黑色,使得 [ 黑点的两两距离和+白点的两两距离和 ] 最大.n<=2000. [算法]树上背包 ...
- Http Header信息&状态码
Header信息 (Status-Line):状态项,包括协议类型,http返回码和状态: Cache-control:是否可以被缓存(public可以:private和no-cache不可以: ...
- c语言学习笔记.数组.
数组: 可以存储一个固定大小的相同类型元素的顺序集合,比如int类型的数组.float类型的数组,里面存放的数据称为“元素”. 所有的数组都是由连续的内存位置组成.最低的地址对应第一个元素,最高的地址 ...
- Skipping 'Android SDK Tools, revision 24.0.2'; it depends on 'Android SDK Platform-tools, revision 20' which was not installed.
前几天,同事问我eclipse android sdk怎么不能更新. 更新界面是显示(mirrors.neusoft.edu.cn:80),但是不能更新. 问题描述如下: URL not found: ...
- NASA: Seeing Jupiter(注视木星)
This image of Jupiter’s southern hemisphere was captured by NASA’s Juno spacecraft on the outbound l ...
- 转:字符集和字符编码(Charset & Encoding)
转自:http://www.cnblogs.com/skynet/archive/2011/05/03/2035105.html ——每个软件开发人员应该无条件掌握的知识! ——Unicode伟大的创 ...
- 1-编程基础及Python环境部署
目录 1 编程基础 1.1 基本概念 1.2 语言分类 1.3 高级语言的发展 2 程序 3 python的语言介绍 4 Python的解释器 5 Python版本区别 6 Python安装 6.1 ...