题目

小b有n张牌。

现在她想把牌分组,使得每组都是长度为W的顺子,即由连续W个数组成。

请问小b能做到吗?

输入

第一行输入一个数n,表示手牌张数;
第二行输入n个非负整数,表示每张牌的数字,以空格隔开;
第三行输入一个数,表示每组大小W;
其中1≤W≤n≤10000,任意牌的数字hand[i]满足0≤hand[i]≤10^9

输出

可以分组,输出“true”;
不能分组,输出“false”。

输入样例

9
1 2 3 6 2 3 4 7 8
3

输出样例

true

思路:桶排的基本应用,需要注意的是,由于 a[i] 最大可能到 1E9,数组开不了那么大,因此需要使用 map 来进行桶排

源程序

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<string>
#include<cstring>
#include<cmath>
#include<ctime>
#include<algorithm>
#include<utility>
#include<stack>
#include<queue>
#include<vector>
#include<set>
#include<map>
#define EPS 1e-9
#define PI acos(-1.0)
#define INF 0x3f3f3f3f
#define LL long long
const int MOD = 1E9+7;
const int N = 4000000+5;
const int dx[] = {0,0,-1,1,-1,-1,1,1};
const int dy[] = {-1,1,0,0,-1,1,-1,1};
using namespace std;LL a[N];
//int bucket[N];
map<LL,int> bucket;
int main() {int n,w;scanf("%d",&n);for(int i=1; i<=n; i++) {scanf("%lld",&a[i]);bucket[a[i]]++;}scanf("%d",&w);if(w==1)printf("true\n");else if(n%w!=0)printf("false\n");else{sort(a+1,a+n+1);int num=w;bool flag=false;for(int i=1; i<=n; i++) {if(bucket[a[i]]==0)continue;for(int j=0; j<w; j++) {if(bucket[a[i]+j]!=0)bucket[a[i]+j]--;else {flag=true;break;}}if(flag)break;}if(flag)printf("false\n");elseprintf("true\n");}return 0;
}

顺子(51Nod-2510)相关推荐

  1. 51nod 1617 奇偶数组

    传送门 回来看一眼51nod,发现自己掉到rank4了,赶紧切道题回rank3. 一眼不会做,这种东西应该慢慢找规律吧--然后看到数据范围其实比较小,应该是单次log的,那是不是可以分治啊. #inc ...

  2. 51NOD 1773:A国的贸易——题解

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1773 参考1:FWT讲解 https://www.cnblogs.com ...

  3. 中山大学 计算机院博士录取名学,中山大学2021年博士研究生招生拟录取名单公示,2510人!...

    原标题:中山大学2021年博士研究生招生拟录取名单公示,2510人! 根据教育部与广东省教育考试院的统一工作部署,经校内各招生单位研究生招生工作领导小组审核,研究生院审定,现将我校2021年博士研究生 ...

  4. 剑指offer:扑克牌顺子

    题目描述 LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张_)-他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体 ...

  5. 51nod 1040:最大公约数之和(数论)

    题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1040 给出一个n,求1-n这n个数,同n的最大公约数的和. ...

  6. 记录计算顺子(12,3,4或者9,0,1,2)的方法

    顺子号:1,2,3,4,5或者9,0,1,2,3,4或者7,8,9,0,1之类的 工作中写的那个还有bug,晚上研究了下终于写出个没有bug的方法,分享下,如果看到这篇文章还有更好办法的欢迎交流,共同 ...

  7. 性能测试的“2-5-10原则”

    在做性能测试的时候,我们经常会参照很多指标和标准,今天分享一个业内比较流行的"2-5-10原则". 具体表述可以归结为如下4条: 1.当用户能够在2秒以内得到响应时,会感觉系统的响 ...

  8. (DP)51NOD 1183 编辑距离

    编辑距离,又称Levenshtein距离(也叫做Edit Distance),是指两个字串之间,由一个转成另一个所需的最少编辑操作次数.许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除 ...

  9. 【剑指offer-Java版】44扑克牌的顺子

    扑克牌中的顺子:从一副扑克牌中抽取5张,判断是不是一个顺子. 2- 10 为自身,A 为1 JQK为11 12 13,大小王为任意数 先按从小到大对5张牌进行排序 首先判断大小王个数K(只能为0 1 ...

  10. 斜率小于0的连线数量 51Nod - 1107 (树状数组+离散化)

    二维平面上N个点之间共有C(n,2)条连线.求这C(n,2)条线中斜率小于0的线的数量. 二维平面上的一个点,根据对应的X Y坐标可以表示为(X,Y).例如:(2,3) (3,4) (1,5) (4, ...

最新文章

  1. 变体类的使用 package record case【转载】
  2. 在Visual Studio中启用对jquery等javascript框架的智能感知
  3. Nagios 监控系统架设全攻略_转自IBM Developer
  4. 浅谈域名发散与域名收敛
  5. linux对2k屏幕,(转)Linux中的screen命令使用
  6. python中面向对象空间时间_python基础学习Day15 面向对象、类名称空间、对象名称空间 (2)...
  7. JDK8那些惊为天人的新特性
  8. Idea的debug断点调试
  9. qdu-凑数题(01背包)
  10. ES和Kibana在docker中的安装
  11. 市场调研策划书_市场调查计划书模板
  12. 阿里云国际版ECS云服务器ping不通的原因分析
  13. 生鲜配送系统源码功能介绍
  14. 德国Vue.js2终极开发教程(含Vue路由和Vuex)-Max-专题视频课程
  15. 十年技术支持工作的几点感悟
  16. 全国计算机等级考试shi,全国计算机等级考试等级设置
  17. docker bind source path does not exist: /etc/timezone“
  18. 知识图谱学习笔记八(知识问答)
  19. 【VMware环境下Linux磁盘空间(LVM)扩容方法】
  20. Java 获取 n个 工作日【前】或【后】的日期

热门文章

  1. RhinoMock入门(4)——次序和委托
  2. Excellent Service
  3. AI读懂两千年前文字,登上Nature封面,惊艳历史学家
  4. Python代码实操:详解数据清洗
  5. 北航数值分析大作业_北航非全日制研究生学习全纪实(2020.9.27)——一周上课感受...
  6. 阿里修冶:微服务拆分之道
  7. CSS中的margin、border、padding区别 CSS padding margin border属性详解
  8. JEECG 页面多个用户选择器只显示最后一个
  9. UI标签库专题四:JEECG智能开发平台 Upload(上传标签)
  10. Keras实现LeNet-5网络,与可视化网络