ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

HDU1011 Rikka with Competition 题解报告

2019-08-21 17:06:55  阅读:283  来源: 互联网

标签:实力 题解 获胜 Competition include 选手 ch Rikka define


题目传送门

【题目大意】

有$n$个选手,每个选手有一个实力值$a_i$,如果两个选手$i,j$满足$|a_i-a_j|>k$,那么实力值大的选手获胜,否则两个选手都有可能获胜。每次从当前剩下的选手中任意选取两个比赛,求最多有多少个选手有机会获胜。

【思路分析】

对于实里第$i$大的选手,如果他有可能获胜,那么当且仅当实力第1大的选手输给实力第2大的,实力第2大的输给实力第3大的,依次类推,直到第$i$大,即要满足按照实力从大到小排序后,对于每一个$j\in[1,i-1]$,都要满足$a_j-a_{j+1}\le k$。所以我们只需要把每个选手的实力排序后从大到小扫描,如果当前条件不满足则退出循环,即后面实力更小的选手没有机会获胜了,细节见代码。

【代码实现】

 1 #include<cstdio>
 2 #include<iostream>
 3 #include<cstring>
 4 #include<algorithm>
 5 #include<cmath>
 6 #define g() getchar()
 7 #define rg register
 8 #define go(i,a,b) for(rg int i=a;i<=b;i++)
 9 #define back(i,a,b) for(rg int i=a;i>=b;i--)
10 #define db double
11 #define ll long long
12 #define il inline
13 #define pf printf
14 using namespace std;
15 int fr(){
16     int w=0,q=1;
17     char ch=g();
18     while(ch<'0'||ch>'9'){
19         if(ch=='-') q=-1;
20         ch=g();
21     }
22     while(ch>='0'&&ch<='9') w=(w<<1)+(w<<3)+ch-'0',ch=g();
23     return w*q;
24 }
25 const int N=1e5+2;
26 int T,n,k,a[N];
27 int main(){
28     //freopen("","r",stdin);
29     //freopen("","w",stdout);
30     T=fr();
31     while(T--){
32         n=fr();k=fr();
33         go(i,1,n) a[i]=fr();
34         sort(a+1,a+1+n);
35         rg int ans=1;//初始值为1是因为实力最大的选手一定有可能获胜
36         back(i,n,2){
37             if(a[i]-a[i-1]>k) break;
38             ans++;//这是实力第i-1大的选手可能获胜
39         }
40         pf("%d\n",ans);
41     }
42     return 0;
43 }
代码戳这里

标签:实力,题解,获胜,Competition,include,选手,ch,Rikka,define
来源: https://www.cnblogs.com/THWZF/p/11389763.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有