链接: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] 和它右边的数做差值比较即可 ,或者用双指针扫一遍也可以。

细节见代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <queue>
#include <stack>
#include <map>
#include <set>
#include <vector>
#include <iomanip>
#define ALL(x) (x).begin(), (x).end()
#define rt return
#define sz(a) int(a.size())
#define all(a) a.begin(), a.end()
#define rep(i,x,n) for(int i=x;i<n;i++)
#define repd(i,x,n) for(int i=x;i<=n;i++)
#define pii pair<int,int>
#define pll pair<long long ,long long>
#define gbtb ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
#define MS0(X) memset((X), 0, sizeof((X)))
#define MSC0(X) memset((X), '\0', sizeof((X)))
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define eps 1e-6
#define gg(x) getInt(&x)
#define db(x) cout<<"== [ "<<x<<" ] =="<<endl;
using namespace std;
typedef long long ll;
ll gcd(ll a,ll b){return b?gcd(b,a%b):a;}
ll lcm(ll a,ll b){return a/gcd(a,b)*b;}
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;}
inline void getInt(int* p);
const int maxn=100010;
const int inf=0x3f3f3f3f;
/*** TEMPLATE CODE * * STARTS HERE ***/
int n,m;
int a[maxn];
int vis[maxn];
int main()
{// freopen("D:\\code\\text\\input.txt","r",stdin);//freopen("D:\\code\\text\\output.txt","w",stdout);while(~scanf("%d %d",&n,&m)){repd(i,1,n){gg(a[i]);}sort(a+1,a+n+1);repd(i,1,n){vis[i]=0;}int ans=0;if(n>1){int l=n-1;int r=n;while(l>=1){while(vis[r]){r--;}while(vis[l]){l--;}while(l>=r){l--;}if(l<1){break;}if(a[r]-a[l]<m){ans++;vis[r]=vis[l]=1;r--;l--;}else{r--;l--;}}}printf("%d\n",ans );// cout<<ans<<endl;}// 1 2 4 6return 0;
}inline void getInt(int* p) {char ch;do {ch = getchar();} while (ch == ' ' || ch == '\n');if (ch == '-') {*p = -(getchar() - '0');while ((ch = getchar()) >= '0' && ch <= '9') {*p = *p * 10 - ch + '0';}}else {*p = ch - '0';while ((ch = getchar()) >= '0' && ch <= '9') {*p = *p * 10 + ch - '0';}}
}
#include<bits/stdc++.h>
using namespace std;int a[100005];int main(){int n,m;while(~scanf("%d%d",&n,&m)){for(int i=1;i<=n;i++)scanf("%d",&a[i]);sort(a+1,a+1+n);int sum=0;for(int i=2;i<=n;i++){if(a[i]-a[i-1]<m) sum++,i++;}printf("%d\n",sum);}
}

转载于:https://www.cnblogs.com/qieqiemin/p/10996363.html

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

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

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

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

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

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

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

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

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

  5. 长沙理工大学第十二届ACM大赛 D 小M和天平

    题目描述 小M想知道某件物品的重量,但是摆在他面前的只有一个天平(没有游标)和一堆石子,石子可以放左边也可以放右边.他现在知道每个石子的重量.问能不能根据上述条件,能不能测出所问的重量. 输入描述: ...

  6. 长沙理工大学第十二届ACM大赛 I.主持人的烦恼【贪心】

    题目描述 一天zzq主持一项游戏,共n位同学,需要两两同学为一组来上台来玩一项游戏. 但是,众所周知,玩游戏的时候,如果两个人的颜值差距>=m,就会互相嫌弃. 所以,为了游戏能够好玩.在游戏开始 ...

  7. 山东理工大学第十二届ACM程序设计竞赛 - Cut the tree(树上启发式合并+线段树)

    题目链接:点击查看 题目大意:给一个具有 N 个节点的有根树,以 1 号节点为根,节点编号从 1 开始,点有点权.树的第 H 层权值为深度为 H 的所有点的点权之和.树的总权值为所有层权值的最大值.问 ...

  8. 2021年第十二届蓝桥杯省赛 Java B组 第一场 全部题解

    暴力杯?dp杯! 重铸国二荣光,省三义不容辞 感谢评论区的大佬给出的思路还有指正的一些错误地方,现都已更正,当然如果还有其他更优解法的也欢迎评论区指出 c/c++和Java的B组题目都已更新,正在备考 ...

  9. 郑州大学计算机系王院长,我院成功承办河南省第十二届ACM大学生程序设计竞赛...

    5月6日至7日,由河南省计算机学会主办.我校承办的河南省第十二届ACM大学生程序设计竞赛在体育中心隆重举行.来自全省45所高校的231支参赛队近700名学生及200名带队教练参加了竞赛,参赛院校.参赛 ...

最新文章

  1. java c 流_java对象传输流C/S传输对象
  2. java数组随机排序_JAVA 生成随机数数组,并排序输出
  3. jquery 二级导航
  4. WINCE6.0显示驱动模型介绍
  5. emacs org-mode文件转html文件
  6. Listener--------监听器
  7. 如何扩展以太坊:分片
  8. MySQL批量更改数据库表结构字符集
  9. hive与spark的匹配版本汇总
  10. 文献记录(part84)--A nearest neighbor-based active learning method and its application to time ...
  11. 67-Flutter中高德地图插件的使用
  12. 崛企问卷调查小程序模块V1.3.2
  13. 百度SEO Typecho仿Win95怀旧主题
  14. 洛谷P5661 公交换乘(CSP-J 2019 T2)
  15. 用jQuery实现返回页面顶部的功能
  16. 【体系结构】共享SQL的理解
  17. CCF201912-2 回收站选址(100分)【序列处理】
  18. @echo off 与@echo on
  19. python灰色预测模型_GM(1,n)(灰色模型代码)
  20. 水星路由器设置显示服务器,新款水星无线路由器设置_新版水星(MERCURY)路由器设置教程-192路由网...

热门文章

  1. 整合ElasticSearch,出现IllegalStateException: availableProcessors is already set to [12], rejecting [12]
  2. svm算法 matlab,SVM算法matlab程序
  3. oracle trunc函数 q,oracle中trunc函数的用法
  4. 分布式事务解决方案之TCC
  5. oracle导入报错39002,impdp导入报错39002
  6. 为什么要用impl继承service层_JavaWeb service层 dao层 采用接口+impl 的原因
  7. 【游戏】光棍节程序员闯关秀过关攻略
  8. JVM 动态年龄判断规则
  9. 女人最渴望男人这么对她们
  10. mysql workbench修改密码_在MySQL Workbench8.0中,忘记MySQL root密码的情况下修改密码...