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 ...
随机推荐
- ajax 请求二进制流 图片
<html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> ...
- jQuery获取的dom对象和原生的dom对象有何区别
js原生获取的dom是一个对象,jQuery对象就是一个数组对象,其实就是选择出来的元素的数组集合,所以说他们两者是不同的对象类型不等价 原生DOM对象转jQuery对象 var box = docu ...
- ubuntu安装交叉编译器
# sudo apt-get install gcc-arm-linux-gnueabi # sudo apt-get install g++-arm-linux-gnueabi 官方下载 https ...
- 6.AOP配置与应用(xml的方式)
xml 配置 AOP 1.将 拦截其器对象 初始化到容器中 2.<aop:config> <aop:aspect.... <aop:pointcut <aop:befor ...
- 【坑】在使用EL表达式时表达式无法获取数值
错误描述: 使用EL表达式 前台原样输出表达式而不输出值 错误环境: idea 2017.1.2 错误原因: jsp页面默认会忽略el表达式,需要设置为不忽略 解决方案 设置<%@ page i ...
- Oralce问题之Oracle ORA-28001:某用户密码过期
解决办法: (1).通过CMD打开命令行窗口,以sysdba连接数据库 SqlPlus / as sysdba (2).通过查询dba_user检查哪些用户过期 Sql>Select UserN ...
- [USACO14OPEN]GPS的决斗Dueling GPS's
题目概况 题目描述 给你一个\(N\)个点的有向图,可能有重边. 有两个\(GPS\)定位系统,分别认为经过边\(i\)的时间为\(P_i\),和\(Q_i\). 每走一条边的时候,如果一个系统认为走 ...
- GDB调试器教程
启动和退出GDBGDB(GNU Project Debugger)几乎适用于所有类Unix系统,小巧方便且不失功能强大,Linux/Unix程序员经常用它来调试程序. 总的来说有几下几种方法启动GDB ...
- wkhtmltopdf 自定义字体未生效或中文乱码
使用wkhtmltopdf控件将网页保存成pdf的过程中出现网页中有些字体,在PDF中未生效.通过网上查询结果有一种处理方式: 在网页头部的style标签中,手工指定宋体字体的本地存放位置,wkhtm ...
- 【转】认证 (authentication) 和授权 (authorization) 的区别
以前一直分不清 authentication 和 authorization,其实很简单,举个例子来说: 你要登机,你需要出示你的身份证和机票,身份证是为了证明你张三确实是你张三,这就是 authen ...