嘘~ 正在从服务器偷取页面 . . .

CCF炉石传说---谁说玩游戏对学习没帮助的?


CCF-201609-3

下面都不会了

我们先来看一下题目

1
2
3

解题思路

大模拟题,他怎么说就怎么写
不理解题意的自己去搓两把炉石传说就懂了!
存储随从用vector,这个增删随从方便呀!

代码

#include<iostream>
#include<cstring>
#include<vector>
using namespace std;
struct node{
    int attack;
    int blood;
};
vector<node> a,b;
int A=30,B=30;
int turn=1;
int main(){
    int n;
    cin>>n;
    while(n--){
      string order;
      cin>>order;
      node t;
      if(order[0]=='s'){
          int pos;
          cin>>pos>>t.attack>>t.blood;
          if(turn==1){
            if(pos>a.size()) a.push_back(t);
            else a.insert(a.begin()+pos-1,t); 
          }else{
            if(pos>b.size()) b.push_back(t);
            else b.insert(b.begin()+pos-1,t);     
          }
      }else if(order[0]=='a'){
          int attacker,defender; 
          cin>>attacker>>defender;
          if(turn==1){ //A 攻击 B 
            if(defender!=0){
                a[attacker-1].blood-=b[defender-1].attack;
                b[defender-1].blood-=a[attacker-1].attack;
                if(a[attacker-1].blood<=0) a.erase(a.begin()+attacker-1);
                if(b[defender-1].blood<=0) b.erase(b.begin()+defender-1);
            }else{
                B-=a[attacker-1].attack;
                if(B<=0) break;
            }
          }else{       //B 攻击 A 
            if(defender!=0){
                b[attacker-1].blood-=a[defender-1].attack;
                a[defender-1].blood-=b[attacker-1].attack;
                if(b[attacker-1].blood<=0) b.erase(b.begin()+attacker-1);
                if(a[defender-1].blood<=0) a.erase(a.begin()+defender-1);
            }else{
                A-=b[attacker-1].attack;
                if(A<=0) break;
            }
          } 
     }else if(order[0]=='e'){
       turn*=-1;
     }
 }
 if(A<=0) cout<<-1<<endl;
 else if(B<=0) cout<<1<<endl;
 else cout<<0<<endl;
 cout<<A<<endl;
 cout<<a.size()<<" ";
 for(int i=0;i<a.size();i++){
     cout<<a[i].blood<<" ";
 }
 cout<<endl<<B<<endl;
 cout<<b.size()<<" ";
 for(int i=0;i<b.size();i++){
     cout<<b[i].blood<<" "; 
 }
 cout<<endl;
 return 0;
} 

结果


版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 梦想成为假面骑士的司祎同学 !
赏
评论
评论
 上一篇
CCF CSP经典题刷题汇总---少年,想走捷径吗? CCF CSP经典题刷题汇总---少年,想走捷径吗?
CCF刷题博客汇总写在前面CCF的第二题基本都是写要用到STL容器的题目,也就是语法题,努力还是可以拿到的CCF的第三题分为1.大模拟题(这个没办法,只有多写才可以在现场做出来),淦,题目看不懂就0分;2.文本处理-字符串处理,这个用到fi
2020-09-07
下一篇 
CCF权限查询---解释一下什么是“大力出奇迹” CCF权限查询---解释一下什么是“大力出奇迹”
CCF-201612-3 我们先来看一下题目吧 解题思路真的很恼火,思路简单,写起来比较繁琐。全部存下来,然后一个一个查,查到了true,否则false,如果是无等级查询可能会返回等级挺费时间的,没办法,后面的算法题不会,只能刚模拟了查询一
2020-09-06
  目录