HDU2015校赛 The Magic Tower

题意:两行分别是W和B的生命值,攻击值,防御值。

如果W先,W的攻击值-B的防御值大于零则B生命值减去这么多,然后该B攻击。直到谁的生命值先小与等于零则攻击的人赢。

输出写错了。。。。。

错误代码

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstdlib>
 4 #include<stack>
 5 #include<queue>
 6 #include<vector>
 7 #include<map>
 8 #include<string.h>
 9 #include<algorithm>
10 using namespace std;
11 char c;
12 int w[3],b[3];
13
14 int main()
15 {
16     while(~scanf("%c",&c))
17     {
18         for(int i=0; i<3; i++)
19             scanf("%d",&w[i]);
20         for(int i=0; i<3; i++)
21             scanf("%d",&b[i]);
22         if(c==‘W‘)
23         {
24             int ans=w[1]-b[2];
25             if(ans<=0)
26             {
27                 printf("Warrior loses\n");
28                 continue;
29             }
30             while(b[0]>0&&w[0]>0)
31             {
32                 ans=w[1]-b[2];
33                 if(ans>0)
34                     b[0]-=ans;
35                 if(b[0]<=0)
36                 {
37                     printf("Warrior wins\n");
38                     break;
39                 }
40                 else
41                 {
42                     ans=b[1]-w[2];
43                     if(ans<=0)
44                     {
45                         printf("Warrior wins\n");
46                         break;
47                     }
48                     w[0]-=ans;
49                     if(w[0]<=0)
50                     {
51                         printf("Warrior loses\n");
52                         break;
53                     }
54                 }
55             }
56         }
57         else
58         {
59             int ans=b[1]-w[2];
60             if(ans<=0)
61             {
62                 printf("Warrior wins\n");
63                 continue;
64             }
65             while(b[0]>0&&w[0]>0)
66             {
67                 ans=b[1]-w[2];
68                 if(ans>0)
69                     w[0]-=ans;
70                 if(w[0]<=0)
71                 {
72                     printf("Warrior loses\n");
73                     break;
74                 }
75                 else
76                 {
77                     ans=w[1]-b[2];
78                     if(ans<=0)
79                     {
80                         printf("Warrior loses\n");
81                         break;
82                     }
83                     b[0]-=ans;
84                     if(b[0]<=0)
85                     {
86                         printf("Warrior wins\n");
87                         break;
88                     }
89                 }
90             }
91         }
92     }
93     return 0;
94 }

AC代码

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstdlib>
 4 #include<stack>
 5 #include<queue>
 6 #include<vector>
 7 #include<map>
 8 #include<string.h>
 9 #include<algorithm>
10 using namespace std;
11 char c;
12 int w[3],b[3];
13
14 const int maxn=1e5+7;
15 int main(){
16     char str[3];
17     while(~scanf("%s",str)){
18         int a1,a2,a3,b1,b2,b3;
19         scanf("%d%d%d%d%d%d",&a1,&a2,&a3,&b1,&b2,&b3);
20         if(a2-b3<=0&&b2-a3<=0){
21             printf("Warrior loses\n");
22             continue;
23         }
24         if(str[0]==‘W‘){
25             int flag=0;
26             while(a1>0&&b1>0){
27                 if(flag==0){
28                     b1-=(a2-b3);
29                     flag=1;
30                 }else{
31                     a1-=(b2-a3);
32                     flag=0;
33                 }
34             }
35             if(a1<=0)printf("Warrior loses\n");
36             else printf("Warrior wins\n");
37         }else{
38             int flag=0;
39             while(a1>0&&b1>0){
40                 if(flag==0){
41                     a1-=(b2-a3);
42                     flag=1;
43                 }else{
44                     b1-=(a2-b3);
45                     flag=0;
46                 }
47             }
48             if(a1<=0)printf("Warrior loses\n");
49             else printf("Warrior wins\n");
50         }
51     }
52     return 0;
53 }

时间: 2024-08-05 18:02:43

HDU2015校赛 The Magic Tower的相关文章

HDU2015校赛 The Country List

今天手感真差..各种读错题意.水题... 就是说,给你几个串.如果长度一样并且相同位置字符相同(不分大小写)的个数大于两个就是不同串. 1 #include<iostream> 2 #include<cstdio> 3 #include<cstdlib> 4 #include<stack> 5 #include<queue> 6 #include<vector> 7 #include<map> 8 #include<

2016 年宁波工程学院第七届ACM校赛题解报告

2016 年宁波工程学院第七届ACM校赛题解报告 本题解代码直接为比赛代码,仅供参考. A,B,C,D,G,H,J,K,L,M 来自 Ticsmtc 同学. F 来自 Gealo 同学. E,I 来自Alex 学长. Promblem A :    Two Sum 时间限制: 1 Sec  内存限制: 64 MB 题目描述: 给出n个数,另外给出?个整数S,判断是否可以从中取出2个数,使得这两个数的和是S. 输入: 第?行有个整数T(1 <= T <= 10),代表数据组数. 对于每组数据,第

CSU 1425 NUDT校赛 I题 Prime Summation

这个题本来有希望在比赛里面出了的 当时也想着用递推 因为后面的数明显是由前面的推过来的 但是在计算的时候 因为判重的问题 ...很无语.我打算用一个tot[i]来存i的总种树,tot[i]+=tot[j]//j为可以由j推到i的一系列数,但这样是不对的,会产生大量重复计算... 看了下标程才发现要用二维来计算出种类总数,f[i][j]+=sum(f[i-j][k]) 表示在推i数的时候,第一个素数为j的种类数,注意j一定为素数,而且k不能大于j...标程里面处理的比较简练,就学了下他的写法. 至

校赛总结

写写校赛总结....... 这两次校赛是我们组队以后第一次的比赛...第一场打得很拙,第二场还可以吧,第一场校赛--毕竟是期待了很久的校赛,所以感觉还是很紧张,吃饭的时候打了二两,剩了一大半==, 这次我们队名叫 I_Love_High_Math......没走到现场,就快下雨了,真的有点郁闷==.到了以后下雨了,和一个队友被困雨中,,出来以后衣服湿了,一开始就悲剧了...     然后一开场就感觉不好.比赛开始的时候,我去写头文件,然后W说A是水题,然后叫我写,平时都是我写第一题的这次我不想开

NYOJ-682 小媛在努力 (郑大第六届校赛 模拟)

链接:click here 题意: 描述 在多媒体数据处理中,数据压缩算法尤为重要.小媛上完课后就想自己发明一个数据压缩算法.她想呀想,终于想到一个方法.在多媒体数据中有很多数据都是重复的,所以她想把连续相同的数据用数据出现的次数和数据本身表示.例如:1 1 1 2 3 3 3 3 3  压缩后及为3 1 1 2 5 3(表示3个1,1个2和5个3).有想法后小媛就希望把它用代码实现了.但是大家都知道小媛现在整天都忙着苦B的复习考研,连电脑都摸不到.所以她希望作为ACMer的你帮她写一下. 输入

HDU多校赛第9场 HDU 4965Fast Matrix Calculation【矩阵运算+数学小知识】

难度上,,,确实,,,不算难 问题是有个矩阵运算的优化 题目是说给个N*K的矩阵A给个K*N的矩阵B(1<=N<=1000 && 1=<K<=6),先把他们乘起来乘为C矩阵,然后算C^(N*N) 相当于 ABABABABABABAB...=(AB)^(N*N) 不如 A(BA)^(N*N-1)B 因为BA乘得K*K的矩阵,K是比较小的 #include <cstdio> #include <cstdlib> #include <cstr

ZJU校赛 一道计数题

题意是这样的 给定一个n*m的整数矩阵 n和m均小于1000 对这个矩阵删去任意行和列后剩余一个矩阵为M{x1,x2,,,,xm;y1,y2,,,,,yn}表示删除任意的M行N列 对于这个剩下的矩阵,我们考虑其中是否存在特殊的元素,保证这些元素是所在行最大,所在列最小的元素 且非之一. 求对于所有删法,上述元素个数之和 对10^9+7取余. 显然所有删法 有2^(n+m)种 暴力是搞不定的. 于是反过来看,矩阵的元素最多有10^6个 是不是可以考虑每一个元素对最终答案的贡献? 所谓贡献,就是它在

树形DP CCPC网络赛 HDU5834 Magic boy Bi Luo with his excited tree

1 // 树形DP CCPC网络赛 HDU5834 Magic boy Bi Luo with his excited tree 2 // 题意:n个点的树,每个节点有权值为正,只能用一次,每条边有负权,可以走多次,问从每个点出发的最大获益 3 // 思路: 4 // dp[i]: 从i点出发回到i点的最大值 5 // d[i][0] 从i点出发不回来的最大值 6 // d[i][1] 从i点出发取最大值的下一个点 7 // d[i][2] 从i点出发取次大值 8 // dfs1处理出这四个 9

山科第三届校赛总结

这次山科的校赛算是省赛前的一次正式的检验吧,暴露了我们队伍之前训练很多没发现的问题. 比赛的过程真的算是有惊无险,差点就GG... 我们入场晚了一会,我刚读完C题,就发现已经有人过了F题了,我去看F题,是个统计闰年的水题,很快就敲过了.回去想接着看C,感觉也很水,这时cerberux说这个用个map就A了,我让他来敲,可是他好像用的不是很熟练,这道题敲的很慢,交上去还wa了...我回过头仔细看这题,觉得扫一遍统计一次最多连续出现的次数就可以了,这才把这个水题过了.然后我去敲G,G题我出现了很严重