主题链接: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 (暴力搜索 || 终极全阵列暴力)的更多相关文章

  1. hdu 2616 Kill the monster (DFS)

    Kill the monster Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  2. 随手练——洛谷-P1151(枚举与暴力搜索)

    枚举 #include <iostream> using namespace std; int main() { ; cin >> k; ; i < ; i++) { ) ...

  3. hdu 4740 The Donkey of Gui Zhou(暴力搜索)

    题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4740 [题意]: 森林里有一只驴和一只老虎,驴和老虎互相从来都没有见过,各自自己走过的地方不能走第二次 ...

  4. HDU 3131 One…Two…Five! (暴力搜索)

    题目链接:pid=3131">HDU 3131 One-Two-Five! (暴力搜索) 题意:给出一串数字,要求用加,减,乘,除(5/2=2)连接(计算无优先级:5+3*6=8*6= ...

  5. hdu 1427 速算24点 dfs暴力搜索

    速算24点 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Problem De ...

  6. hdu 2616 暴力使用 dfs求最短路径(剪枝有点依稀)

    Kill the monster Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  7. ACM 暴力搜索题 题目整理

    UVa 129 Krypton Factor 注意输出格式,比较坑爹. 每次要进行处理去掉容易的串,统计困难串的个数. #include<iostream> #include<vec ...

  8. HDU 1312 Red and Black --- 入门搜索 BFS解法

    HDU 1312 题目大意: 一个地图里面有三种元素,分别为"@",".","#",其中@为人的起始位置,"#"可以想象 ...

  9. HDU 1312 Red and Black --- 入门搜索 DFS解法

    HDU 1312 题目大意: 一个地图里面有三种元素,分别为"@",".","#",其中@为人的起始位置,"#"可以想象 ...

随机推荐

  1. 乐在其中设计模式(C#) - 外观模式(Facade Pattern)

    原文:乐在其中设计模式(C#) - 外观模式(Facade Pattern) [索引页][源码下载] 乐在其中设计模式(C#) - 外观模式(Facade Pattern) 作者:webabcd 介绍 ...

  2. 华为编程大赛汇总----java

           以下华为编程比赛题目都是网上整理得到的,代码都是自己调试过的,由于网上java答案较少,欢迎大家批评指正,也希望对准备华为上机的童鞋们有一点点帮助.在练习的过程中成长,加油!~~  1. ...

  3. 进程和线程之间的关系和区别 和 CPU牒

    流程具有一定独立功能的程序关于某个数据集合上的一次执行活动,进程是系统进行资源分配和调度的一个独立单位. 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立执行的基本单位. 进 ...

  4. Codeforces Helpful Maths

    Xenia the beginner mathematician is a third year student at elementary school. She is now learning t ...

  5. (五岁以下儿童)NS3样本演示:桥模块演示样品csma-bridge.cc凝视程序

    (五岁以下儿童)NS3:桥模块演示样品csma-bridge.cc凝视程序 1.Ns3 bridge模csma-bridge.cc演示示例程序的目光 // Network topology // // ...

  6. CacheManager

    .Net缓存管理框架CacheManager Cache缓存在计算机领域是一个被普遍使用的概念.硬件中CPU有一级缓存,二级缓存, 浏览器中有缓存,软件开发中也有分布式缓存memcache, redi ...

  7. SQLSERVER手动增长日志文件和数据文件

    原文:SQLSERVER手动增长日志文件和数据文件 SQLSERVER手动增长日志文件和数据文件 手动增长日志文件,实际上就是修改日志文件的大小  size 的单位是MB 下面设置日志文件大小是204 ...

  8. 设计Kafka的High Level Consumer

    原文:https://cwiki.apache.org/confluence/display/KAFKA/Consumer+Group+Example 为什么使用High Level Consumer ...

  9. KVO 其原理探究

    什么是KVO ? KVO这是Key-Value Observing,它提供了一种机制,指定的对象的属性被改动后,则对象就会接受到通知. 简单的说就是每次指定的被观察的对象的属性被改动后.KVO就会自己 ...

  10. HDU 4819 Mosaic D区段树

    连接:pid=4819">http://acm.hdu.edu.cn/showproblem.php?pid=4819 意:给出一个800×800下面的矩阵.每次更新一个点的值为以这个 ...