hdu2616 kill the monster 4.3.8
来源:互联网 发布:数据交换接口规范 编辑:程序博客网 时间:2024/05/17 13:08
据说是道dfs水题……
Kill the monster
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 41 Accepted Submission(s): 34Problem Description
There is a mountain near yifenfei’s hometown. On the mountain lived a big monster. As a hero in hometown, yifenfei wants to kill it.
Now we know yifenfei have n spells, and the monster have m HP, when HP <= 0 meaning monster be killed. Yifenfei’s spells have different effect if used in different time. now tell you each spells’s effects , expressed (A ,M). A show the spell can cost A HP to monster in the common time. M show that when the monster’s HP <= M, using this spell can get double effect.
Now we know yifenfei have n spells, and the monster have m HP, when HP <= 0 meaning monster be killed. Yifenfei’s spells have different effect if used in different time. now tell you each spells’s effects , expressed (A ,M). A show the spell can cost A HP to monster in the common time. M show that when the monster’s HP <= M, using this spell can get double effect.
Input
The input contains multiple test cases.
Each test case include, first two integers n, m (2<n<10, 1<m<10^7), express how many spells yifenfei has.
Next n line , each line express one spell. (Ai, Mi).(0<Ai,Mi<=m).
Each test case include, first two integers n, m (2<n<10, 1<m<10^7), express how many spells yifenfei has.
Next n line , each line express one spell. (Ai, Mi).(0<Ai,Mi<=m).
Output
For each test case output one integer that how many spells yifenfei should use at least. If yifenfei can not kill the monster output -1.
Sample Input
3 10010 2045 895 403 10010 2045 905 403 10010 2045 845 40
Sample Output
32-1
#include <iostream>using namespace std;int n,m;int a[12],b[12];int hash[12];int maxx;void dfs(int s,int m)//number of used spell, remained hp{ int i; if(s>n)//the number of spell is over return; if(m<=0)//hp<0 { if(maxx>s)//find a smaller method maxx=s; return; } for(i=0;i<n;i++) { if(hash[i])//didn't use this spell { hash[i]=0;//now use it if(m<=b[i])//if left hp is less than double-effect hp { dfs(s+1,m-2*a[i]); } else dfs(s+1,m-a[i]); hash[i]=1;//recovery } } return ;} int main(){ int i; while(cin>>n>>m) { for(i=0;i<n;i++) { cin>>a[i]>>b[i]; } memset(hash,1,sizeof(hash)); maxx=15; dfs(0,m); if(maxx==15) cout<<"-1"<<endl; else cout<<maxx<<endl;//Presentation Error....shame } return 0;}
大家都是怎么看出来什么时候用dfs的呢……
- hdu2616 kill the monster 4.3.8
- HDU2616 Kill the monster
- - Kill the monster HDU2616
- HDU2616 Kill the monster(深搜DFS)
- ACM-DFS之Kill The Monster——hdu2616
- 4.3.7 Kill the monster
- hdu_2616 Kill the monster
- hd2616 Kill the monster
- Kill the monster
- hdu 2616 Kill the monster
- HDU 2616 Kill the monster
- HDU 2616 Kill the monster
- hdu(2616)Kill the monster
- HDU 2616 Kill the monster
- hdu 2616 Kill the monster
- ACdream P1072 Kill the monster
- HDU-2616-Kill the monster
- Kill the monster(深搜)
- Immutable class
- hdu1058
- oracle11g- expdp/impdp
- 杭电 2544 最短路 Dijkstra算法
- Godaddy上ASP.net导出excel的方法
- hdu2616 kill the monster 4.3.8
- 探秘PHP 5的对象重载技术
- Android实战技巧:组件间通信---Intent和IntentFilter
- android使用pull的方式解析xml
- Linux数据安装出现的问题
- 想学习C++的童鞋们,不得不看看‘标准库头文件’有哪些
- C#之咿呀学语(2)
- Android SQLiter cursor的使用
- JSTL fmt:formatNumber日期、 数字、货币格式化