OUC_Summer Training_ DIV2_#7 718
Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u
Description
Kirito is stuck on a level of the MMORPG he is playing now. To move on in the game, he's got to defeat all n dragons that live on this level. Kirito and the dragons have strength, which is represented by an integer. In the duel between two opponents the duel's outcome is determined by their strength. Initially, Kirito's strength equals s.
If Kirito starts duelling with the i-th (1 ≤ i ≤ n) dragon and Kirito's strength is not greater than the dragon's strength xi, then Kirito loses the duel and dies. But if Kirito's strength is greater than the dragon's strength, then he defeats the dragon and gets a bonus strength increase by yi.
Kirito can fight the dragons in any order. Determine whether he can move on to the next level of the game, that is, defeat all dragons without a single loss.
Input
The first line contains two space-separated integers s and n (1 ≤ s ≤ 104, 1 ≤ n ≤ 103). Then n lines follow: the i-th line contains space-separated integers xi and yi (1 ≤ xi ≤ 104, 0 ≤ yi ≤ 104) — the i-th dragon's strength and the bonus for defeating it.
Output
On a single line print "YES" (without the quotes), if Kirito can move on to the next level and print "NO" (without the quotes), if he can't.
Sample Input
2 2
1 99
100 0
YES
10 1
100 100
NO
Hint
In the first sample Kirito's strength initially equals 2. As the first dragon's strength is less than 2, Kirito can fight it and defeat it. After that he gets the bonus and his strength increases to 2 + 99 = 101. Now he can defeat the second dragon and move on to the next level.
In the second sample Kirito's strength is too small to defeat the only dragon and win.
奥特曼要来打小怪兽啦~不过他需要把所有的小怪兽都打败才能通关。每个恐龙的属性有恐龙自己的能量,和打败恐龙后奥特曼能获得的能量,能通关就输出YES,否则输出NO。在这里奥特曼能获得的能量都是正的,所以这个题就简单啦,打败比自己能量少的的恐龙后获得能量再去打败其他恐龙。这题唯独值得收获的是sort函数的新用法用在结构体中超级爽啊!先把代码贴上紧接着再总结一下sort函数。
#include<iostream>
#include<algorithm>
using namespace std; struct D
{
int x;
int y;
};
bool cmp (D a,D b)
{
return a.x < b.x;
}
int main()
{
int s,n,i = ,j = ,k,e,f;
struct D a[],b[];
cin >> s>> n;
while(n--)
{
cin >> e>> f;
if(e < s)
{
a[i].x = e;
a[i].y = f;
i++;
}
if(e >= s)
{
b[j].x = e;
b[j].y = f;
j++;
}
}
sort(b,b+j,cmp);
for(k = ;k < i;k++)
s += a[k].y;
for(k = ;k < j;k++)
{
if(s > b[k].x)
s += b[k].y;
else
break;
}
if(k == j)cout <<"YES"<<endl;
else cout<< "NO"<<endl;
return ;
}
上面是我的代码不过大神的代码中cmp函数比我想的周全,先贴上来。
bool cmp(data a,data b)
{
if (a.x < b.x)
return true;
if (a.x == b.x && a.y > b.y)
return true;
return false;
}
sort函数在做题的时候经常能够用上,也很方便有用。sort函数共有3个参数,起始位置,终止位置,比较函数。起始和结束的区间是左闭右开的(这个我还真是今天才注意到)。比较函数是bool型的。字符串也能作为参数。默认的排序是升序的。下面给出几个个cmp函数以供参考。
bool cmp(int a,int b)
{
return a > b; //如果a > b 就返回true 这样就是按照降序排列
}
bool cmp(node x, node y) //参数类型为结构体
{
if(x.a != y.a) return x.a < y.a; //先按a的升序排;
if(x.b != y.b) return x.b > y.b; //如果a相等,就再按照b的降序排列
if(x.c != y.c) return x.c > y.c; //如果b也相等,就按照c的降序排列
}
Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u
Description
We know that prime numbers are positive integers that have exactly two distinct positive divisors. Similarly, we'll call a positive integertТ-prime, if t has exactly three distinct positive divisors.
You are given an array of n positive integers. For each of them determine whether it is Т-prime or not.
Input
The first line contains a single positive integer, n (1 ≤ n ≤ 105), showing how many numbers are in the array. The next line contains nspace-separated integers xi (1 ≤ xi ≤ 1012).
Please, do not use the %lld specifier to read or write 64-bit integers in С++. It is advised to use the cin, cout streams or the %I64dspecifier.
Output
Print n lines: the i-th line should contain "YES" (without the quotes), if number xi is Т-prime, and "NO" (without the quotes), if it isn't.
Sample Input
3
4 5 6
YES
NO
NO
输入一个数,检验他是不是因子有且只有3个(包括1和他本身)。想法是:检验这个数能否开根号(不能被开根号的话一定不符合要求)且开根号得到的数必须是素数。(注意判断素数的循环,容易超时)
#include<stdio.h>
#include<math.h>
int main()
{
__int64 s,m;
int prime(__int64 x);
int n;
scanf("%d",&n);
while(n--)
{
scanf("%I64d",&s);
if(s==)
{
printf("NO\n");
continue;
}
m=sqrt(s);
if((m*m)!=s)
{
printf("NO\n");
continue;
}
else
{
if(prime(m) == )
{
printf("YES\n");
}
else
{
printf("NO\n");
}
}
}
return ;
}
int prime(__int64 x)
{
int i;
for(i=;i<=sqrt(x);i++)
{
if(x%i==)
return ;
}
return ;
}
OUC_Summer Training_ DIV2_#7 718的更多相关文章
- OUC_Summer Training_ DIV2_#16 725
今天做了这两道题真的好高兴啊!!我一直知道自己很渣,又贪玩不像别人那样用功,又没有别人有天赋.所以感觉在ACM也没有学到什么东西,没有多少进步.但是今天的B题告诉我,进步虽然不明显,但是只要坚持努力的 ...
- OUC_Summer Training_ DIV2_#13 723afternoon
A - Shaass and Oskols Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I ...
- OUC_Summer Training_ DIV2_#12(DP1) 723
这一次是做练习,主要了解了两个算法,最大子矩阵和,最长上升子序列. 先看题好啦. A - To The Max Time Limit:1000MS Memory Limit:32768KB ...
- OUC_Summer Training_ DIV2_#14 724
又落下好多题解啊...先把今天的写上好了. A - Snow Footprints Time Limit:1000MS Memory Limit:262144KB 64bit IO F ...
- OUC_Summer Training_ DIV2_#2之解题策略 715
这是第一天的CF,是的,我拖到了现在.恩忽视掉这个细节,其实这一篇只有一道题,因为这次一共做了3道题,只对了一道就是这一道,还有一道理解了的就是第一篇博客丑数那道,还有一道因为英语实在太拙计理解错了题 ...
- OUC_Summer Training_ DIV2_#11 722
企鹅很忙系列~(可惜只会做3道题T_T) A - A Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d &am ...
- OUC_Summer Training_ DIV2_#9 719
其实自己只会做很简单的题,有时都不想写解题报告,觉得不值得一写,但是又想到今后也许就不会做ACM了,能留下来的东西只有解题报告了,所以要好好写,很渣的题也要写,是今后的纪念. B - B Time L ...
- OUC_Summer Training_ DIV2_#5
这是做的最好的一次了一共做了4道题 嘻嘻~ A - Game Outcome Time Limit:2000MS Memory Limit:262144KB 64bit IO For ...
- OUC_Summer Training_ DIV2_#4之数据结构
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=26100#problem/A A - A Time Limit:1000MS Me ...
随机推荐
- ELinq学习一
ELinq安装:在Nuget控制台中输入:install-package ELinq一.ELinq与DLinq和EF的功能差异 二.数据库对照表 三.CRUD操作1.插入(Insert)(1)简单形式 ...
- Makefile中 -I -L -l区别
我们用gcc编译程序时,可能会用到"-I"(大写i),"-L"(大写l),"-l"(小写l)等参数,下面做个记录: 例: gcc -o he ...
- 1 bootstrapValidator使用
1 如何使用 引入 <link href="bootstrapValidator.min.css" rel="stylesheet"> css文件 ...
- 处理器拦截器(HandlerInterceptor)详解(转)
简介 SpringWebMVC的处理器拦截器,类似于Servlet开发中的过滤器Filter,用于处理器进行预处理和后处理. 应用场景 1.日志记录,可以记录请求信息的日志,以便进行信息监控.信息统计 ...
- 工作总结 页面 ActionResult / JsonResult 将对象以 Json() 返回
其实都不用在页面上序列化 打印 都不需要在页面上 像这样 var ajaxResult = eval("(" + data + ")"); 序列化为对象 ...
- OpenCV入门学习资料汇总
OpenCV学习文档资料 OpenCV学习:1)OpenCV中文网站——http://wiki.opencv.org.cn/index.php/%E9%A6%96%E9%A1%B5 2)python实 ...
- wlan相关查询命令
1.查看当前连接的设备 hostapd_cli all_sta
- ICPC2019徐州站游记
day0 出师不利 差两分钟没赶上高铁回去我一定每天都到下边玩跑步 改签成卧铺,原来3点发7点到现在11点发9点到 本来计划火车上3个人练习一场,晚上宾馆还可以cf 结果全泡汤了,在火车站浪了一晚上 ...
- Angular Multiple HTTP Requests with RxJS
原文:https://coryrylan.com/blog/angular-multiple-http-requests-with-rxjs ----------------------------- ...
- idea如何打开右侧工具栏