HDU 6188 - Duizi and Shunzi ( 贪心 )

原创 2018年04月15日 18:58:30

题意

给出n张牌, 每张牌编号为ai, 有两种组成方式, 一种叫”对子”, 也就是两张牌牌面相同, 另一种叫”顺子”, 也就是三张牌牌面连续, 每张牌最多只能用一次, 求最多能组成多少组

思路

贪心
贪心方法 : 枚举每张牌面的数量, 先尽可能多的组成对子, 那么至多只能剩下一张, 若该牌面只剩一张, 就要想办法将其与后面的牌组成顺子, 首先要保证s[i+1] 和 s[i+2] 至少有牌, 其次要保证 s[i+1] 个数必须是奇数, 关于 s[i+2] 的奇偶性不予讨论, ( 因为要保证s[i+1]也要尽可能多组成对子, 可是 s[i+2] 拿与不拿是等效的 )

AC代码

#include <iostream>
#include <cstdio>
#include <cstring>

using namespace std;
typedef long long ll;
const int maxn = 1e6+5;
int s[maxn];

int main(){
    int n, a;
    while( ~scanf("%d",&n) ){
        memset(s, 0, sizeof(s));
        int mmax = -1;
        for( int i = 0; i < n; i++ ){
            scanf("%d",&a);
            mmax = max(mmax, a);
            s[a]++;
        }
        int ans = 0;
        for( int i = 1; i <= mmax; i++ ){
            if( s[i] >= 2 ){
                ans += s[i] / 2;
                s[i] %= 2;
            }
            if( s[i] == 1 && s[i+1] % 2 != 0 && s[i+2] ){
                ans++;
                s[i]--, s[i+1]--, s[i+2]--;
            }
        }
        printf("%d\n",ans);
    }
    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/JinxiSui/article/details/79951871

HDU-6188:Duizi and Shunzi

HDU-6188:Duizi and Shunzi Nike likes playing cards and makes a problem of it. Now give you n intege...
  • Mitsuha_
  • Mitsuha_
  • 2017-09-02 18:35:38
  • 315

【贪心】hdu - 6188 Duizi and Shunzi

Problem Description 输入一个n,接下来有n个数,让你求出能组成最多的对子或者顺子的和。 对子: (2,2),顺子: (1,2,3)。 题目链接:http://acm.hd...
  • bbbbswbq
  • bbbbswbq
  • 2017-09-01 09:03:51
  • 461

HDU 6188 Duizi and Shunzi 贪心

题目:http://acm.hdu.edu.cn/showproblem.php?pid=6188题意:给出n个数字,两个相同的数字可以组成对子,三个连续的数字可以组成顺子,问能组成对子和顺子的总数最...
  • discreeter
  • discreeter
  • 2017-08-31 20:03:23
  • 512

HDU 6188 Duizi and Shunzi(贪心)

Nike likes playing cards and makes a problem of it. Now give you n integers, ai(1≤i≤n)ai(1≤i≤n) ...
  • qq_37497322
  • qq_37497322
  • 2017-09-05 14:56:29
  • 267

hdu 6188 Duizi and Shunzi(贪心)

Duizi and Shunzi Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others...
  • Timeclimber
  • Timeclimber
  • 2018-01-28 19:42:03
  • 67

Duizi and Shunzi HDU - 6188

Nike likes playing cards and makes a problem of it.  Now give you n integers, ai(1≤i≤n)ai(1≤i≤n) ...
  • CS33sun
  • CS33sun
  • 2017-10-24 20:21:18
  • 76

HDU 6188 Duizi and Shunzi

Duizi and ShunziTime Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)T...
  • chenshibo17
  • chenshibo17
  • 2018-04-16 19:20:31
  • 7

2017广西邀请赛 G Duizi and Shunzi(贪心)

题目链接:Duizi and Shunzi 题意:问给出一组数,求max(对子数+顺子数)。约定,每个数只能用一次,对子长度为2,顺子长度为3。如22是一对对子,123是一对顺子。 思路:很容易想...
  • qq_33843429
  • qq_33843429
  • 2017-09-13 11:27:01
  • 87

HDU 6188 Duizi and Shunzi(贪心+细节)

题目地址 题意:给你一堆牌,有两种组合方式,问最多能组合成多少个对子和顺子(同牌面的2张可以组成一个对子,连续牌面数字的3张可以组成一个顺子) 思路:这题是贪心写的,我昨天虽然想到了这种方法,但是...
  • xjh_shin
  • xjh_shin
  • 2017-09-01 17:12:28
  • 405

2017广西邀请赛 Duizi and Shunzi(贪心+DP)

题意:给你n个数,问你最多能组成多少顺子和对子 题解:和bzoj上的一道题类似,不过bzoj上对子是3张牌,所以无脑先选对子即可,然而这道题对子是 两张牌,因此之前的贪心还是有些问题的,比如: 1...
  • haut_ykc
  • haut_ykc
  • 2017-08-31 17:16:09
  • 408
收藏助手
不良信息举报
您举报文章:HDU 6188 - Duizi and Shunzi ( 贪心 )
举报原因:
原因补充:

(最多只允许输入30个字)