HDU 2616 Kill the monster (暴力搜索 || 终极全阵列暴力)
主题链接:HDU 2616 Kill the monster
意甲冠军:有N技能比赛HP有M怪物,技能(A,M),能伤害为A。当怪兽HP<=M时伤害为2*A。
求打死怪兽(HP<=0)用的最少技能
方法一:将技能全排列。计算伤害。得到答案。
方法二:搜索,详细看代码。
全排列AC代码:
#include<stdio.h>
#include<algorithm>
using namespace std;
struct node
{
int p,v;
};
struct node st[30]; int main()
{
int n,d,i;
int t[30];
int ans;
while(scanf("%d %d",&n,&d)!=EOF)
{
for(i=0;i<n;i++)
{
scanf("%d %d",&st[i].p,&st[i].v);//p掉血,V double
t[i]=i;
}
int sum;
ans=100;
do
{
sum=d;
int count=0;
for(i=0;i<n;i++)
{
if(sum<=st[t[i]].v)
sum-=st[t[i]].p*2;
else
sum-=st[t[i]].p;
count++;
if(sum<=0)
break;
}
if(sum<=0)
ans=min(ans,count);
}while(next_permutation(t,t+n));
if(ans==100)
printf("-1\n");
else
printf("%d\n",ans);
}
return 0;
}
搜索AC代码:
#include<stdio.h>
#include<algorithm>
using namespace std;
struct spell
{
int a,m;
};
struct spell sp[20];
int n,ans,flag;
bool vis[30];
void dfs(int p,int sum)
{
int i;
if(sum<=0)
{
flag=1;
ans=min(ans,p);
return ;
}
for(i=0;i<n;i++)
{
if(!vis[i])
{
vis[i]=true;
if(sum<=sp[i].m)
dfs(p+1,sum-sp[i].a*2);
else
dfs(p+1,sum-sp[i].a);
vis[i]=false;
}
}
}
int main()
{
int i;
int m;
while(scanf("%d %d",&n,&m)!=EOF)
{
flag=0;
memset(vis,false,sizeof vis);
for(i=0;i<n;i++)
scanf("%d %d",&sp[i].a,&sp[i].m);
ans=n;
dfs(0,m);
if(flag)
printf("%d\n",ans);
else
printf("-1\n");
}
return 0;
}
版权声明:本文博客原创文章,博客,未经同意,不得转载。
HDU 2616 Kill the monster (暴力搜索 || 终极全阵列暴力)的更多相关文章
- hdu 2616 Kill the monster (DFS)
Kill the monster Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- 随手练——洛谷-P1151(枚举与暴力搜索)
枚举 #include <iostream> using namespace std; int main() { ; cin >> k; ; i < ; i++) { ) ...
- hdu 4740 The Donkey of Gui Zhou(暴力搜索)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4740 [题意]: 森林里有一只驴和一只老虎,驴和老虎互相从来都没有见过,各自自己走过的地方不能走第二次 ...
- HDU 3131 One…Two…Five! (暴力搜索)
题目链接:pid=3131">HDU 3131 One-Two-Five! (暴力搜索) 题意:给出一串数字,要求用加,减,乘,除(5/2=2)连接(计算无优先级:5+3*6=8*6= ...
- hdu 1427 速算24点 dfs暴力搜索
速算24点 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Problem De ...
- hdu 2616 暴力使用 dfs求最短路径(剪枝有点依稀)
Kill the monster Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- ACM 暴力搜索题 题目整理
UVa 129 Krypton Factor 注意输出格式,比较坑爹. 每次要进行处理去掉容易的串,统计困难串的个数. #include<iostream> #include<vec ...
- HDU 1312 Red and Black --- 入门搜索 BFS解法
HDU 1312 题目大意: 一个地图里面有三种元素,分别为"@",".","#",其中@为人的起始位置,"#"可以想象 ...
- HDU 1312 Red and Black --- 入门搜索 DFS解法
HDU 1312 题目大意: 一个地图里面有三种元素,分别为"@",".","#",其中@为人的起始位置,"#"可以想象 ...
随机推荐
- linux挂载U盘,及乱码问题解决
1. 首先使用切换到root用户. 2. 使用fdisk -l命令查看磁盘信息,找到u盘(能够依据显示的大小确定) 3. 在/mnt下创建挂载点,比如创建usb目录:mkdir /mnt/usb 4. ...
- WPF技术触屏上的应用系列(二): 嵌入百度地图、API调用及结合本地数据库在地图上进行自定义标点的实现
原文:WPF技术触屏上的应用系列(二): 嵌入百度地图.API调用及结合本地数据库在地图上进行自定义标点的实现 去年某客户单位要做个大屏触屏应用,要对档案资源进行展示之用.客户端是Window7操作系 ...
- 乐在其中设计模式(C#) - 策略模式(Strategy Pattern)
原文:乐在其中设计模式(C#) - 策略模式(Strategy Pattern) [索引页][源码下载] 乐在其中设计模式(C#) - 策略模式(Strategy Pattern) 作者:webabc ...
- hibernate的通配符比拼接sql到底好在哪?
Hibernate对于刚接触的人来说,通配符只是提供了另一种组合sql的方式.接触的久了,熟悉之后,才能够真正理解通配符在Hibernate中起到的作用 主要作用有两点: 1,避免sql注入 hibe ...
- chrome(转)
阅读目录 Chrome的隐身模式 Chrome下各种组合键 Chrome的about指令 chrome://accessibility 查看浏览器当前访问的标签 chrome://appcac ...
- 【iOS发展-61】更换plist经过资源,执行iOS一旦数据仍显示在模拟器的外观,如何解决?
(1)案例介绍 --我们首先导入plist文件做项目,模拟的观看效果. --删除plist,更换一个新的plist,CMD+R模拟执行,或者找到该程序界面上显示最后一个数据. (2)原因 是由于第一次 ...
- Oracle游标(光标)
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGFuZ2xpdXFpbmc=/font/5a6L5L2T/fontsize/400/fill/I0J ...
- Git使用汇总
1.下载代码,代码被下载到本地 git clone https://github.com/nuptboyzhb 2.提交代码 git commit -a -m "期间提交的信息叙述性说明&q ...
- sqlite 中文排序
看 http://www.cnblogs.com/08shiyan/archive/2012/05/11/2496491.html 这个方法 不太好用 最好的办法是 表添加pinyin字段. 插入数据 ...
- AutoMapper在ABP框架
AutoMapper在ABP框架中的使用说明 为了说明AutoMapper如何使用,我专门开设了一个专题来讲,如果您还没有查看该专题,请点击这里.既然系统地学习了AutoMapper,那么接下来就是该 ...