Ural 1917 Titan Ruins: Better late than killed
来源:互联网 发布:php新视频教程 编辑:程序博客网 时间:2024/06/05 03:20
http://acm.timus.ru/problem.aspx?space=1&num=1917
时间限制:1秒
空间限制:64MB
你去一个洞窟内探险,洞窟内有许多宝石,但都有魔法守护,你需要用魔法将它们打下来。
每个宝石都有自己的防御等级,当你的魔法超过它的防御等级时它就会被你打下来。
但是,当它被你打下来的时候,它会反弹你的魔法。如果反弹的魔法过强,你就会被自己的魔法杀死。
很不幸的是,你的魔法是群体性的,你不能选择攻击谁,只要防御等级低于你魔法水平的宝石都会被你打下来。并且每个都会反弹你的魔法。
你可以假设你的魔法水平无限大,但你躲避反弹的魔法的能力却并不是很强。
输入:
第一行两个数,分别是:N,宝石总数。P:你躲避反弹魔法的能力。(只要达到这个数你就会死)
第二行N个数,每个宝石的防御等级。
输出:
一行,两个数,分别是你能打下多少宝石,以及需要释放几次魔法。
样例输入:
5 4
4 1 4 1 2
样例输出:
3 2
样例说明:
第一次用强度为1的魔法打下两个防御等级为1的宝石,反弹魔法为2,可以承受。
第二次用强度为2的魔法打下一个防御等级为2的宝石,反弹魔法为2,可以承受。
剩余2个防御等级为4的宝石,是无法打下来的。(反弹魔法会达到8)
所以答案为3 2.
#include<iostream>#include<stdio.h>#include<math.h>#include<algorithm>#include<string.h>using namespace std;struct node{ int num,t;//数字和出现的次数 }p[1005];bool cmp(node a,node b){ return a.num<b.num;}int n;int main(){ int i,j; long long pp; while(scanf("%d%lld",&n,&pp)!=EOF) { int ss=0; int sum=0; int tt=0; int top=0; int flag=0; node tmp; for(i=0;i<=n;i++) p[i] .t=0; scanf("%d",&p[top++].num); p[0].t=1; for(i=2;i<=n;i++) {//处理数字以及出现的次数 scanf("%d",&tmp.num); tmp.t=1; flag=0; for(j=0;j<top;j++) { if(tmp.num==p[j] .num) { p[j] .t++; flag=1; // printf("i=%d %d %d\n",i,j,p[j] .t); break; } } if(flag==0) { p[top++]=tmp; } } sort(p,p+top,cmp);//按数字从小到大排序 for(i=0;i<top;i++) { if(p[i] .num*p[i] .t<=pp) { ss=p[i] .t; sum+=ss;//如果说现在的能力值大于反击值 // printf("%d %d\n",i,p[i] .num*p[i] .t); for(j=i+1;j<top;j++)//那么继续往下找 { ss+=p[j] .t; if(ss*p[j] .num>pp) { // printf("j=%d\n",j); break; } sum+=p[j] .t; } // printf("%d\n",i); i=--j; tt++; } else //因为是从小到大排序,所以这个如果不行,那么以后的也不行 break; } /* for(i=0;i<top;i++) { printf("i=%d %d %d\n",i,p[i] .num,p[i] .t); }*/ printf("%d %d\n",sum,tt); }}
0 0
- Ural 1917 Titan Ruins: Better late than killed
- URAL1917_Titan Ruins: Better late than killed_二分搜索
- URAL:1917 Titan Ruins: Deadly Accuracy
- URAL - 1917 Titan Ruins: Deadly Accuracy(水题)
- ural 1917. Titan Ruins: Deadly Accuracy(Titan Ruins系列)
- Better Late Than Never
- Better Late Than Never!
- ural 1915. Titan Ruins: Reconstruction of Bygones
- Ural 1910. Titan Ruins: Hidden Entrance
- Ural 1910. Titan Ruins: Hidden Entrance
- URAL 1910. Titan Ruins: Hidden Entrance
- URAL 1910 Titan Ruins: Hidden Entrance
- URAL 1910. Titan Ruins: Hidden Entrance
- ural 1910. Titan Ruins: Hidden Entrance(Titan Ruins系列题目)
- URAL 1910 Titan Ruins: Hidden Entrance 题解与翻译
- URAL 1915 Titan Ruins: Reconstruction of Bygones(思路)
- URAL - 1920 Titan Ruins: the Infinite Power of Magic(乱搞)
- URAL 1915 Titan Ruins: Reconstruction of Bygones (栈)
- 出现( linker command failed with exit code 1)错误总结
- 第四天-8。13
- OCP-1Z0-051 补充题库 第36题 约束
- 面试题
- 星星评分定制
- Ural 1917 Titan Ruins: Better late than killed
- pcDuinoV3烧写指南!
- java对象和json数据转换实现方式1-使用json-lib实现
- HDU 2824 Euler函数的应用
- python 习作之 wallpaper 抓图器
- memcached源码分析一
- Unix动态库(.so)搜索路径
- HDU4521:小明系列问题——小明序列(推广LIS(带区间))
- iOS屏幕旋转学习笔记