游戏过关
来源:互联网 发布:apmserv php升级5.6 编辑:程序博客网 时间:2024/04/28 12:34
package xj;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class Game {
static int T,N,mincost;
static int []dataA;
static int []dataM;
public static void main(String[] args) throws FileNotFoundException {
/*Scanner sc=new Scanner(System.in);*/
Scanner sc=new Scanner(new File("src/game"));
T=sc.nextInt();
for (int t = 0; t < T; t++) {
N=sc.nextInt();
dataA=new int [N];
dataM=new int[N];
for (int i = 0; i < N; i++) {
dataA[i]=sc.nextInt();
dataM[i]=sc.nextInt();
}
mincost=0xfffffff;
dfs(0,0,0,0,0);
System.out.println("#"+(t+1)+" "+mincost);
}
}
private static void dfs(int step, int money, int s1, int s2, int s3) {
if(step==N){
if(money<mincost){mincost=money;}
return;
}
if(money>=mincost){return;}
//买关过关
dfs(step+1,money+dataM[step],s1,s2,s3);
//买兵过关
dfs(step+1,money+2*dataM[step],s1,s2,s3+dataA[step]);
//攻打过关
if(s1+s2+s3>=dataA[step]){
if(s1>=dataA[step]){
s1=s2;
s2=s3;
s3=0;
}
else if(s1+s2>=dataA[step]){
s1=s1+s2-dataA[step];
s2=s3;
s3=0;
}
else{
s1=0;
s2=s1+s2+s3-dataA[step];
s3=0;
}
dfs(step+1,money,s1,s2,s3);
}
}
}
//input
5
7
10 100
70 5
80 15
20 60
50 90
30 80
10 10
9
600 800
300 400
300 400
1000 400
300 600
100 300
600 300
600 500
1000 300
11
1000 10
700 900
400 500
300 10
900 900
300 10
50 900
50 900
700 900
500 900
50 10
20
896 546
543 216
454 310
408 367
40 602
252 582
954 627
850 234
763 479
232 278
301 538
528 508
936 154
629 443
758 336
432 700
882 256
278 738
517 882
317 136
20
410 610
831 909
675 629
421 774
386 869
544 219
492 414
996 557
499 482
231 285
804 978
304 881
489 911
75 315
927 648
252 914
330 396
937 133
495 882
813 717
//output
#1 150
#2 3000
#3 2370
#4 4721
#5 8231
- 游戏过关
- 游戏过关
- IT404过关游戏WP
- 电脑报的黑客过关游戏过关记录
- 横版过关游戏源码
- 横版过关游戏开发-游戏流程
- 横版过关游戏开发1
- 横版过关游戏开发-人物控制
- 横版过关游戏开发-碰撞检测
- 横版过关游戏开发-图像处理
- 局域网联机一起过关的游戏
- 黑客X小组第一期黑客过关游戏
- (黑客游戏)HackTheGame1.21 过关攻略
- 2d横版过关游戏
- ios版益智过关游戏源码
- 《我的故事》游戏过关技巧
- 2D 横幅过关游戏 Frogatto
- 2D 横幅过关游戏 Frogatto
- Android SlidingMenu 使用详解
- Android二维码的生成与扫码-zxing
- 如何将编译好的QNX文件上传到虚拟机上
- 基于Appium+Pythom的Android自动化测试
- 历届试题 错误票据
- 游戏过关
- 剑指offer: 反转链表
- TCP/IP协议 <一>
- 根据一个树的中序遍历和前序遍历数据,还原一个二叉树的思考
- C 语言--运算符优先级
- 加减乘除与赋值 算术运算符
- 基础练习 字符串的对比
- 怎样让登陆框盖在网页主体,点击按钮弹出登陆框
- linux mount过程