链接:https://ac.nowcoder.com/acm/contest/1/I

来源:牛客网

主持人的烦恼

时间限制:C/C++ 1秒,其他语言2秒

空间限制:C/C++ 131072K,其他语言262144K

64bit IO Format: %lld

题目描述

一天zzq主持一项游戏,共n位同学,需要两两同学为一组来上台来玩一项游戏。

但是,众所周知,玩游戏的时候,如果两个人的颜值差距>=m,就会互相嫌弃。

所以,为了游戏能够好玩。在游戏开始前,zzq已经调查了所有n个同学的颜值。

但是现在问题又来了,zzq想知道,最多能凑出多少组同学一起上台?

需注意一人只能出现在一个组中。

输入描述:

多组输入

第一行两个正整数n m(n<=1e5,m<=1e9),意义见描述

第二行有n个由空格分开的正整数xi(xi<=1e9),第i个同学的颜值

输出描述:

每一行输出一个数,表示最多能凑出多少组。

示例1

输入

复制

4 3

1 3 3 2

4 2

1 4 6 2

输出

复制

2

1

说明

第二组样例中,编号为1的同学(颜值是1)与编号为4的同学(颜值是2),颜值差距为1,可以组成一组

题意:



思路:

直接排个序然后对于每一个数a[i] 和它右边的数做差值比较即可 ,或者用双指针扫一遍也可以。

细节见代码:

  1. #include <iostream>
  2. #include <cstdio>
  3. #include <cstring>
  4. #include <algorithm>
  5. #include <cmath>
  6. #include <queue>
  7. #include <stack>
  8. #include <map>
  9. #include <set>
  10. #include <vector>
  11. #include <iomanip>
  12. #define ALL(x) (x).begin(), (x).end()
  13. #define rt return
  14. #define sz(a) int(a.size())
  15. #define all(a) a.begin(), a.end()
  16. #define rep(i,x,n) for(int i=x;i<n;i++)
  17. #define repd(i,x,n) for(int i=x;i<=n;i++)
  18. #define pii pair<int,int>
  19. #define pll pair<long long ,long long>
  20. #define gbtb ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
  21. #define MS0(X) memset((X), 0, sizeof((X)))
  22. #define MSC0(X) memset((X), '\0', sizeof((X)))
  23. #define pb push_back
  24. #define mp make_pair
  25. #define fi first
  26. #define se second
  27. #define eps 1e-6
  28. #define gg(x) getInt(&x)
  29. #define db(x) cout<<"== [ "<<x<<" ] =="<<endl;
  30. using namespace std;
  31. typedef long long ll;
  32. ll gcd(ll a,ll b){return b?gcd(b,a%b):a;}
  33. ll lcm(ll a,ll b){return a/gcd(a,b)*b;}
  34. ll powmod(ll a,ll b,ll MOD){ll ans=1;while(b){if(b%2)ans=ans*a%MOD;a=a*a%MOD;b/=2;}return ans;}
  35. inline void getInt(int* p);
  36. const int maxn=100010;
  37. const int inf=0x3f3f3f3f;
  38. /*** TEMPLATE CODE * * STARTS HERE ***/
  39. int n,m;
  40. int a[maxn];
  41. int vis[maxn];
  42. int main()
  43. {
  44. // freopen("D:\\code\\text\\input.txt","r",stdin);
  45. //freopen("D:\\code\\text\\output.txt","w",stdout);
  46. while(~scanf("%d %d",&n,&m))
  47. {
  48. repd(i,1,n)
  49. {
  50. gg(a[i]);
  51. }
  52. sort(a+1,a+n+1);
  53. repd(i,1,n)
  54. {
  55. vis[i]=0;
  56. }
  57. int ans=0;
  58. if(n>1)
  59. {
  60. int l=n-1;
  61. int r=n;
  62. while(l>=1)
  63. {
  64. while(vis[r])
  65. {
  66. r--;
  67. }
  68. while(vis[l])
  69. {
  70. l--;
  71. }
  72. while(l>=r)
  73. {
  74. l--;
  75. }
  76. if(l<1)
  77. {
  78. break;
  79. }
  80. if(a[r]-a[l]<m)
  81. {
  82. ans++;
  83. vis[r]=vis[l]=1;
  84. r--;
  85. l--;
  86. }else
  87. {
  88. r--;
  89. l--;
  90. }
  91. }
  92. }
  93. printf("%d\n",ans );
  94. // cout<<ans<<endl;
  95. }
  96. // 1 2 4 6
  97. return 0;
  98. }
  99. inline void getInt(int* p) {
  100. char ch;
  101. do {
  102. ch = getchar();
  103. } while (ch == ' ' || ch == '\n');
  104. if (ch == '-') {
  105. *p = -(getchar() - '0');
  106. while ((ch = getchar()) >= '0' && ch <= '9') {
  107. *p = *p * 10 - ch + '0';
  108. }
  109. }
  110. else {
  111. *p = ch - '0';
  112. while ((ch = getchar()) >= '0' && ch <= '9') {
  113. *p = *p * 10 + ch - '0';
  114. }
  115. }
  116. }
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int a[100005];
  4. int main(){
  5. int n,m;
  6. while(~scanf("%d%d",&n,&m)){
  7. for(int i=1;i<=n;i++)
  8. scanf("%d",&a[i]);
  9. sort(a+1,a+1+n);
  10. int sum=0;
  11. for(int i=2;i<=n;i++){
  12. if(a[i]-a[i-1]<m) sum++,i++;
  13. }
  14. printf("%d\n",sum);
  15. }
  16. }

长沙理工大学第十二届ACM大赛-重现赛I 主持人的烦恼 (sort)的更多相关文章

  1. 长沙理工大学第十二届ACM大赛-重现赛 J 武藏牌牛奶促销

    链接:https://ac.nowcoder.com/acm/contest/1/J 来源:牛客网 武藏牌牛奶促销 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他 ...

  2. 长沙理工大学第十二届ACM大赛-重现赛 D 小M和天平 (01背包)

    链接:https://ac.nowcoder.com/acm/contest/1/D 来源:牛客网 小M和天平 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 131072K,其他语言 ...

  3. 长沙理工大学第十二届ACM大赛-重现赛C 安卓图案解锁 (模拟)

    链接:https://ac.nowcoder.com/acm/contest/1/C来源:牛客网 安卓图案解锁 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语言 ...

  4. 长沙理工大学第十二届ACM大赛-重现赛 B 日历中的数字 (实现)

    链接:https://ac.nowcoder.com/acm/contest/1/B来源:牛客网 全屏查看题目   时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他 ...

  5. 长沙理工大学第十二届ACM大赛-重现赛 G - 跑路ing

    题目描述 vigoss18 辞职成功终于逃出了公司,但是没过太久,公司就发现vigoss18 的所作所为,于是派人来把他抓 回去. vigoss18 必须一直跑路,躲避公司的围捕.可以抽象的看成一个有 ...

  6. 长沙理工大学第十二届ACM大赛-重现赛 L - 选择困难症

    题目描述 小L有严重的选择困难症. 早上起床后,需要花很长时间决定今天穿什么出门. 假设一共有k类物品需要搭配选择,每类物品的个数为Ai,每个物品有一个喜欢值Vj,代表小L对这件物品的喜欢程度. 小L ...

  7. 长沙理工大学第十二届ACM大赛-重现赛 K - 大家一起来数二叉树吧

    题目描述 某一天,Zzq正在上数据结构课.老师在讲台上面讲着二叉树,zzq在下面发着呆. 突然zzq想到一个问题:对于一个n个节点,m个叶子的二叉树,有多少种形态呐?你能告诉他吗? 对于第一组样例的解 ...

  8. 长沙理工大学第十二届ACM大赛-重现赛

    年轮广场 时间限制:1秒 空间限制:131072K 题目描述 在云塘校区,有一个很适合晒太阳的地方————年轮广场 年轮广场可以看成n个位置顺时针围成一个环. 这天,天气非常好,Mathon带着他的小 ...

  9. 长沙理工大学第十二届ACM大赛-重现赛 大家一起来数二叉树吧 (组合计数)

    大意: 求n结点m叶子二叉树个数. 直接暴力, $dp[i][j][k][l]$表示第$i$层共$j$节点, 共$k$叶子, 第$i$层有$l$个叶子的方案数, 然后暴力枚举第$i$层出度为1和出度为 ...

随机推荐

  1. 利用pymysql同时修改两张表的数据

    使用pymysql操作数据库中相关联的两张表需求:两张表中分别有一个字段是json格式,需要往json中再插入一个属性值’container_cloud’=’fasle’. import pymysq ...

  2. 【Win32 API】远程工具调用

    前言 有时候,影城报障需要远程过去重现和处理,如果电脑没有安装远程工具的话,还需要营业员下载和安装,然后将账号密码发送过来,这样一来一回操作繁琐也浪费时间,所以我们可以设想一下这种场景,售票员点击在p ...

  3. 搭建ORACLE11g_RAC_单实例_ADG 注意事项

    搭建ORACLE11g_RAC_单实例_ADG 建库时候的注意事项:实例名为orcl1SYS@orcl1>select instance_name from v$instance; INSTAN ...

  4. p3863 序列

    分析 按照时间为下标分块 块内按照大小排序 每次整块整体修改半块暴力重构即可 代码 #include<bits/stdc++.h> using namespace std; #define ...

  5. 阶段3 1.Mybatis_12.Mybatis注解开发_1 mybatis注解开发的环境搭建

    注解开发是省了IUserDao.xml这个映射文件里面的配置 环境搭建 首先是packaging标签.输入jar 需要准备一个实体类.生成getter和setter还有toString方法 创建dao ...

  6. 阶段3 1.Mybatis_01.Mybatis课程介绍及环境搭建_05.mybatis环境搭建-前期准备

    视频中右侧没有勾选 直接finish 用下面的sql里面的一些表来实现今天的功能 只需要用到里面的user表. 这是之前已经建好的数据库 把表都删除掉,用sql语句去创建表和表内的记录,最终的结果: ...

  7. PC、APP、H5三端测试的相同与不同

    随着手机应用的不断状态,同一款产品的移动端应用市场占相较PC端也越来越大,那么app与PC端针对这些产品的测试有什么相同与不同之处呢?笔者总结如下: 首先谈一谈相同之处... 一,针对同一个系统功能的 ...

  8. Java使用JDBC连接Hive

    最近一段时间,处理过一个问题,那就是hive jdbc的连接问题,其实也不是大问题,就是url写的不对,导致无法连接.问题在于HiveServer2增加了别的安全验证,导致正常的情况下,传递的参数无法 ...

  9. C 语言中的预处理

    C 语言中以 # 开头的就是预处理指令,例如 #include . 预处理指令的用途 所有的预处理指令都会在 GCC 编译过程的预处理步骤解析执行,替换为对应的内容.在下一步编译过程中,看不到任何预处 ...

  10. TCP/IP笔记——UDP

    OSI模型中最下面的两层用来解决两个硬件设备在物理上的通信问题(如规定怎么将电平信号转换为数字信号),相对应的TCP/IP模型中,这部分代表将会将机器封装为一个MAC地址来实现通讯.网络层是关于,具体 ...