博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 4415 Assassin’s Creed(贪心)
阅读量:6039 次
发布时间:2019-06-20

本文共 1717 字,大约阅读时间需要 5 分钟。

题目链接:

题意:一个杀手,有m的攻击力,n个敌人。每个敌人有两个属性ai,bi,表示杀死这个敌人需要ai的攻击力,杀死该敌人后,可以再免费杀死bi个其他的敌人而不花费自己的攻击力。求最多可以杀死多少个敌人?在此基础上花费的最少的攻击力是多少?

思路:将所有的敌人分为两类A和B,A是bi值不为0的,B是bi值为0的:

(1)优先杀B类的:用攻击力杀掉尽可能多的B类的,剩余的攻击力若还能杀A类的某一个,则显然,必能将A类得全部干掉,并且还可能有一些可以免费的还可以再接着杀掉B的一些;

6 5

1 0

1 0

1 0

1 0

1 0

5 1

像这组数据,显然优先杀掉B类的是最划算的。。。。

(2)优先杀掉A类的:由于A类的你能干掉其中一个,就可以将A类全部干掉,而且还可以有剩余的免费的还能接着干掉B类的,若攻击力还有,还可以接着杀掉B类得一些,比如这组数据:

6 1

1 5

1 0

1 0

1 0

1 0

1 0

你发现干掉A中的一个后可以用免费的将B类全部干完。这样貌似问题就解决了,但是还有这种情况:

5 7

3 2
4 1
5 0
6 0
7 0

这组数据的答案是5 7.首先用7的攻击力将A类的干掉,用干掉A类得到的3的免费的将B类干掉,也就是说,A类的一些不一定用干掉A的第一个后得到的免费名额。这样的话,首先干掉A类ai值最小的,然后将A类剩余的和B类的一起考虑,每次用自己的攻击力干掉其中ai值最小的。

 

1 #include 
2 #include
3 #include
4 #include
5 #include
6 #define min(x,y) ((x)<(y)?(x):(y)) 7 #define max(x,y) ((x)>(y)?(x):(y)) 8 using namespace std; 9 10 struct node 11 { 12 int a,b; 13 14 node(){} 15 node(int _a,int _b) 16 { 17 a=_a; 18 b=_b; 19 } 20 }; 21 22 const int INF=1000000005; 23 const int MAX=100005; 24 vector
A,B; 25 int n,m,num=0; 26 int C; 27 28 int cmp(node a,node b) 29 { 30 return a.a
=B[i].a) 39 { 40 num1++; 41 cost1+=B[i].a; 42 } 43 44 if(A.size()&&A[0].a<=m) 45 { 46 cost2+=A[0].a; 47 num2=A.size(); 48 for(i=0;i
n) num1=n; 58 } 59 60 while(sum>0&&p>=0) sum--,p--,num2++; 61 62 if(p<0) 63 { 64 if(num2>num1||num2==num1&&cost2
=min(A[i].a,B[j].a);) 77 { 78 if(A[i].a<=B[j].a) 79 { 80 cost2+=A[i].a; 81 num2++; 82 p--; 83 i++; 84 } 85 else 86 { 87 cost2+=B[j].a; 88 num2++; 89 j++; 90 } 91 } 92 while(j<=p) 93 { 94 if(m-cost2>=B[j].a) 95 { 96 cost2+=B[j].a; 97 num2++; 98 j++; 99 }100 else break;101 j++;102 }103 if(num2>num1||num2==num1&&cost2

 

 

 

转载地址:http://vmrhx.baihongyu.com/

你可能感兴趣的文章
个人代码库の创建快捷方式
查看>>
由strcat函数引发的C语言中数组和指针问题的思考
查看>>
无锁编程
查看>>
如何在loadrunner中做关联
查看>>
二叉树的六种遍历方法汇总(转)
查看>>
用wxpython制作可以用于 特征筛选gui程序
查看>>
【转载】 [你必须知道的.NET]目录导航
查看>>
数据存储小例
查看>>
Spring Boot 配置优先级顺序
查看>>
php 信号量
查看>>
C++中构造函数详解
查看>>
数据库课程实习设计——酒店房间预订管理系统
查看>>
vue.js的模板渲染
查看>>
关于H5+css3的一些简单知识
查看>>
Google-Authenticator
查看>>
FOJ有奖月赛-2015年11月 Problem A
查看>>
电商网站中添加商品到购物车功能模块2017.12.8
查看>>
android 模拟器 hardWare 属性说明
查看>>
六款值得推荐的android(安卓)开源框架简介
查看>>
max_element( )
查看>>