HDU 6095 思维题
来源:互联网 发布:mac n卡 hdmi音频输出 编辑:程序博客网 时间:2024/05/29 23:23
Rikka with Competition
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 150 Accepted Submission(s): 123
Problem Description
As we know, Rikka is poor at math. Yuta is worrying about this situation, so he gives Rikka some math tasks to practice. There is one of them:
A wrestling match will be held tomorrow.n players will take part in it. The i th player’s strength point is ai .
If there is a match between thei th player plays and the j th player, the result will be related to |ai−aj| . If |ai−aj|>K , the player with the higher strength point will win. Otherwise each player will have a chance to win.
The competition rules is a little strange. Each time, the referee will choose two players from all remaining players randomly and hold a match between them. The loser will be be eliminated. Aftern−1 matches, the last player will be the winner.
Now, Yuta shows the numbersn,K and the array a and he wants to know how many players have a chance to win the competition.
It is too difficult for Rikka. Can you help her?
A wrestling match will be held tomorrow.
If there is a match between the
The competition rules is a little strange. Each time, the referee will choose two players from all remaining players randomly and hold a match between them. The loser will be be eliminated. After
Now, Yuta shows the numbers
It is too difficult for Rikka. Can you help her?
Input
The first line contains a number t(1≤t≤100) , the number of the testcases. And there are no more than 2 testcases with n>1000 .
For each testcase, the first line contains two numbersn,K(1≤n≤105,0≤K<109) .
The second line containsn numbers ai(1≤ai≤109) .
For each testcase, the first line contains two numbers
The second line contains
Output
For each testcase, print a single line with a single number -- the answer.
Sample Input
25 31 5 9 6 35 21 5 9 6 3
Sample Output
51
Source
2017 Multi-University Training Contest - Team 5
题意 : 输入两个值 n k,表示有n名选手要摔跤,当两名选手的战斗力差值大于 k 的时候,大的一方稳赢,否则两人都有可能赢。问你最多有多少人有机会赢得比赛
第一组数据 : 5 3 1 5 9 6 3
首先 9 最大,它一定是有可能赢得所有比赛得,6与9之间得差值不大于3,所以它也有可能赢得比赛,如果6赢了9,那么 5 也有机会赢了 6 ,那么5也有机会赢得比赛,同理 5 与 3差值小于3,3与1差值小于3,所以每个人都有机会赢得比赛
思路:先从大到小排序之后,让战斗力最大得两个人PK,如果差值不大于K,那么两个人都能赢,让战斗力小的去跟下个人PK,这样能使下个人赢的机会变大,如果差值小于k则继续,大于k的话,那么剩下的人也都不可能打赢他了,那么后面的人就都没机会赢了,这样统计就ok了。
#include<bits/stdc++.h>#define ll long longusing namespace std;ll a[100005];int main(){ll t,n,k,sum,maxx;scanf("%lld",&t);while(t--){scanf("%lld %lld",&n,&k);maxx = 0;for(int i = 1;i <= n;i++){scanf("%lld",&a[i]);}sort(a + 1,a + 1 + n);maxx = a[n];sum = n;for(int i = n - 1;i >= 1;i--){if(maxx - a[i] > k){sum--;}else {maxx = a[i];}}printf("%lld\n",sum);}return 0;}
阅读全文
1 0
- HDU 6095 思维题
- hdu 5101 思维题
- hdu 5744 思维题
- hdu 5873 思维题
- HDU 5963 思维题
- HDU 5969 思维题
- hdu-4451 思维题
- HDU 5596 思维题(逆向思维)*
- hdu 5014 思维题/推理
- hdu 4803 贪心/思维题
- hdu 4474 BFS+思维题
- hdu 5223 GCD 思维题
- HDU 5301 Buildings(思维题)
- Hdu-5301 Buildings(思维题)
- hdu 5805 简单思维题
- hdu 4811 Ball 思维题
- HDU 6095 Rikka with Competition(思维)
- hdu 4473 Exam (思维题 问题转化)
- Number Transformation
- spring boot集成JdbcTemplate
- HDU 【1087】Super Jumping! Jumping! Jumping
- Python 里边yield和全局变量global的用法
- Debug日志:C++读取任意磁盘、任意路径下的文件
- HDU 6095 思维题
- 利用USB RUBBER DUCKY(USB 橡皮鸭)在目标机器上启动Empire或Meterpreter会话
- QT
- 当子类继承父类,其子类和父类中静态代码块,构造代码块,无参构造之间的输出顺序
- 自定义Behavior
- Fragment的创建(二)
- POJ
- 常用的逻辑运算及其指令
- C++异常(二)