ccf-炉石传说-201609-3
大概是CCF 第三题比较简洁的一道题吧
尽量设计好一个数据结构:
node t[2][10]: 存双方的英雄和随从
int num[2]: 存隋朝的数量
用p来实现双方的切换,因为有统一 的接口,所以就不用分情况讨论,将两者看出统一
做了太多PAT ,想着双方同时死亡怎么办,后来想不可能 因为英雄的攻击力为0
再次吐槽,PAT真是太多吐槽点
#include <bits/stdc++.h>
using namespace std;
struct node {
int atk;
int hel;
};
node t[][];
int num[];
int p,n,flag;
void _formal (int player,int pos) {
if (pos==) {
if (player) flag=;
else flag=-;
return ;
}
for (int i=pos;i<num[player];i++)
t[player][i]=t[player][i+];
num[player]--;
}
void _insert (int pos,node tmp) {
for (int i=num[p];i>=pos;i--)
t[p][i+]=t[p][i];
t[p][pos]=tmp; num[p]++;
}
void _attack (int x,int y) {
int p1=p,p2=p^;
t[p1][x].hel-=t[p2][y].atk;
t[p2][y].hel-=t[p1][x].atk;
if (t[p1][x].hel<=) _formal (p1,x);
if (t[p2][y].hel<=) _formal (p2,y);
}
int main ()
{
cin>>n; t[][].hel=t[][].hel=;
while (n--) {
string str; cin>>str;
if (flag) continue;
if (str[]=='e') p^=;
else if (str[]=='s') {
int pos,h,a; cin>>pos>>h>>a;
node tmp={h,a}; _insert(pos,tmp);
}
else {
int x,y; cin>>x>>y;
_attack(x,y);
}
}
cout<<flag<<"\n";
p=;
for (int i=;i<=;i++) {
cout<<t[p][].hel<<"\n"<<num[p];
for (int j=;j<=num[p];j++)
cout<<" "<<t[p][j].hel;
cout<<"\n";
p^=;
}
return ;
}
ccf-炉石传说-201609-3的更多相关文章
- CCF 炉石传说(模拟)
试题编号: 201612-3 试题名称: 炉石传说 时间限制: 1.0s 内存限制: 256.0MB 问题描述 <炉石传说:魔兽英雄传>(Hearthstone: Heroes of Wa ...
- CCF CSP 201609-3 炉石传说
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201609-3 炉石传说 问题描述 <炉石传说:魔兽英雄传>(Hearthston ...
- [原创]webapp/css3实战,制作一个《炉石传说》宣传页
在移动网页,尤其是webapp中常需要用到大量的css3动画,来获得良好交互体验 我之前帮朋友做了一个,可惜没帮上忙现在和大家分享一下 目标是要做一个<炉石传说>游戏的介绍宣传页面,文字内 ...
- 炉石传说 C# 开发笔记(6月底小结)
炉石传说的开发,已经有30个工作日了. 关于法术的定义方法,有过一次重大的变更:法术效果是整个炉石的核心,正是因为丰富的法术效果,才造就了炉石的可玩性. 原来构思的时候,对于法术效果没有充分的理解,所 ...
- 炉石传说 C# 开发笔记 (续)
炉石传说山寨的工作一直在进行着,在开发过程中深深体会到,对于业务的理解和整个程序的架构的整理远比开发难得多. 在开发过程中,如果你的模型不合理,不准确,很有可能造成代码的混乱,冗余,难以维护和扩展性比 ...
- 炉石传说 C# 开发笔记
最近在大连的同事强力推荐我玩 炉石传说,一个卡牌游戏.加上五一放一个很长很长的假期,为了磨练自己,决定尝试开发一个C#的炉石传说. 这件事情有人已经干过了,开发了一个网页版的炉石,但是貌似不能玩... ...
- 炉石传说__multiset
炉石传说 Problem Description GG学长虽然并不打炉石传说,但是由于题面需要他便学会了打炉石传说.但是传统的炉石传说对于刚入门的GG学长来说有点复杂,所以他决定自己开发一个简化版 ...
- 《炉石传说》建筑设计欣赏(6):卡&在执行数据时,组织能力
上一篇文章我们看到了<炉石传说>核心存储卡的数据,今天,我们不断探索卡&身手. 基本的类 通过之前的分析,卡牌&技能涉及到几个类体系:Entity.Actor.Card.S ...
- fzu Problem - 2232 炉石传说(二分匹配)
题目链接:http://acm.fzu.edu.cn/problem.php?pid=2232 Description GG学长虽然并不打炉石传说,但是由于题面需要他便学会了打炉石传说.但是传统的炉石 ...
- islands打炉石传说<DP>
islands最近在完一款游戏"炉石传说",又名"魔兽英雄传".炉石传说是一款卡牌类对战的游戏.游戏是2人对战,总的来说,里面的卡牌分成2类,一类是法术牌,另一 ...
随机推荐
- javascript 判断质数
1.判断n是否为number类型,是否为整数,是否小于2: 2.若n == 2返回true: 3.从3至n的算术平方根(square)之间的奇数,如果n取余为0,则不是奇数. var isPrime ...
- As The End of The Year Approaches,The Weighted Blanket Season Begins
Weight blankets are well known for anxiety, insomnia, depression and so on. It is physical therapy, ...
- Python爬虫入门之Urllib库的高级用法
1.设置Headers 有些网站不会同意程序直接用上面的方式进行访问,如果识别有问题,那么站点根本不会响应,所以为了完全模拟浏览器的工作,我们需要设置一些Headers 的属性. 首先,打开我们的浏览 ...
- erlang证书加密
-module(...). -include("ewp.hrl").-include("backend.hrl").-include_lib("pub ...
- 安装vue脚手架和vue安装element-ui
首先下载安装node.js,因为vue依赖node.js,然后用npm安装vue,步骤如下: 安装成功后安装element-UI,步骤如下: 完成后用npm run dev 运行项目.
- java 方法的重载
方法的重载:一个类中允许出现一个以上的同名方法,必须保证同名方法的参数列表不同 好处:方便阅读,优化程序设计 重载规则:重载方法名相同,但每个重载方法都必须有一个独一无二的参数类型列表,方 ...
- struts2实现文件上传和下载
在做B/S系统时,通常会涉及到上传文件和下载文件,在没接struts2框架之前,我们都是使用apache下面的commons子项目的FileUpload组件来进行文件的上传,但是那样做的话,代码看起来 ...
- 第九周学习笔记-ADO.Net中DataSet的应用
一.知识点描述 1.含义:DataSet是ADO.Net的断开式结构的核心组件,它可以用于多种不同的数据源,用于XML数据,或用于管理应用程序本地的数据.DataSet包含一个或多个DataTable ...
- linux 增加虚拟内存swap(使用文件)
1.简介 如果你的服务器的总是报告内存不足,并且时常因为内存不足而引发服务被强制kill的话,在不增加物理内存的情况下,启用swap交换区作为虚拟内存是一个不错的选择. 为了测试一些功能我在阿里云购买 ...
- fdisk -l查看硬盘分区信息及硬盘分区介绍
原文:https://blog.csdn.net/a1809032425/article/details/79692035 linux fdisk 命令和df区别是什么? fdisk工具是分区工具:d ...