hrbust 1957 干掉坏人【Dfs+暴力枚举】
来源:互联网 发布:简单的特效软件 编辑:程序博客网 时间:2024/04/30 18:08
干掉坏人
Time Limit: 2000 MS
Memory Limit: 32768 K
Total Submit: 38(11 users)
Total Accepted: 12(10 users)
Rating:
Special Judge: No
Description
TwIstOy需要创造一位战士去消灭Rabbit,这位战士必须要穿过Rabbit的同伙城才能与Rabbit决斗。Rabbit的同伙城内有M条连接N个路口(从1到N编号)的街道
,每一条街道都是单向的(也就是说你不能逆着该街道指定的方向走),并且在城内无论怎么走都不可能走回原来走过的地方。开始的时候,战士的生命力(HP)为INITHP、站在1号路口,而Rabbit在第N号路口等待着他。每一条街道上都有许多魔鬼,但是也有一些街道已经被TwIstOy派去的医生占领了。当战士经过连接i号向j号路口的街道时,如果占领该街道的是Rabbit的同伙,那么他的HP先加倍然后减少L[i,j],我们记为A[i,j]=-L[i,j];如果占领该街道的是医生,那么他的HP就会先加倍然后增加L[i,j],我们记为A[i,j]=+L[i,j];如果该街道不存在,那么A[i,j]=0。如果某一时刻战士的HP<=0,那么他会死亡。因为这个战士将非常无敌,当他见到Rabbit的时候只要还活着,就能一口气把Rabbit消灭,所以TwIstOy不希望让他的INITHP过高。
任务:
给定N,L[1..N,1..N],求最小的INITHP,使这个战士能够活着见到Rabbit。
Input
每组数据的第一行有一个正整数N(3 ≤ N ≤ 4),下面跟着的第i行第j个数为L[i,j](绝对值不超过10000的整数)。
Output
输出所求最小的INITHP。
Sample Input
4
0 -4 0 –10
0 0 +3 0
0 0 0 –14
0 0 0 0
Sample Output
4
Hint
一共有两条路从1到4:
1-2-3-4 这时候血量的变化为:((x*2-4)*2+3)*2-14>0
1-4 这时候血量的变化为:x*2-10>0
所以两组分别得到x>3 x>5所以最后的答案应该是4为最小初始血量
Source
新生练习赛(2013.11.24)
思路:暴力枚举战士的血量值,从1开始枚举,枚举到最大范围,每一次都进行一次Dfs,判断能否活着走到终点。
1、不要一路走下去直到终点再进行判断,因为在路上的时候可能已经死了,但是再往下走的时候又回到了复活状态。
2、while循环结束之后还要再有一个换行符。
3、样例输入可以忽略,直接用cin/scanf输入即可。
AC代码:
#include<stdio.h>#include<string.h>#include<iostream>#include<math.h>using namespace std;int map[250][250];int n,ok;void dfs(int hp,int now){ if(now==n-1) { ok=1;return ; } for(int i=now+1;i<n;i++) { if(map[now][i]!=0) { if(hp*2+map[now][i]>0) dfs(hp*2+map[now][i],i); if(ok==1)return ; } }}int main(){ while(cin>>n) { for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { cin>>map[i][j]; } } ok=0; for(int i=1;i<=10000;i++) { dfs(i,0); if(ok==1) { cout<<i<<endl; break; } } } cout<<endl;}
- hrbust 1957 干掉坏人【Dfs+暴力枚举】
- poj1753(dfs暴力枚举)
- poj2965(dfs暴力枚举)
- poj2965 DFS暴力枚举
- hrbust 1241 Blocks【暴力枚举+简单优化】
- Hrbust 1789 通信道路【思维+暴力枚举】
- Hrbust 1201 Zombie’s Treasure Chest【贪心+暴力枚举】
- poj3187 Backward Digit Sums---dfs暴力枚举
- zoj 1008 暴力枚举求解dfs+优化
- hdu4277USACO ORZ dfs暴力枚举+map
- HDU/HDOJ 1015(dfs或暴力枚举)
- poj3279 Fliptile dfs暴力枚举状态
- Hrbust 2232 股票【暴力枚举+最大连续子序列和】水题= =
- ZOJ 3816 Generalized Palindromic Number dfs+暴力枚举
- [ACM] ZOJ 3816 Generalized Palindromic Number (DFS,暴力枚举)
- CodeForces 550B Preparing Olympiad(DFS回溯+暴力枚举)
- HDU 4462 Scaring the Birds (暴力枚举DFS)
- [ACM] ZOJ 3816 Generalized Palindromic Number (DFS,暴力枚举)
- 什么是RESTfull?理解RESTfull架构
- ACM新手水题解答
- 关于数据结构的内存分配问题
- Spark中组件Mllib的学习3之用户相似度计算
- Linux Redis 远程访问
- hrbust 1957 干掉坏人【Dfs+暴力枚举】
- 打包Python程序为exe文件
- Zookeeper
- C++:类的成员函数存储方式(是否属于类的对象)
- 下一代安全管理平台NextSOC
- 接口部分笔记
- 【Java】接口与抽象类
- 使用Msql统计函数GROUP_CONCAT解决电影票订单表里一条记录多张座位号的问题
- Deep Learning学习 之 CNN代码解析(MATLAB)