CCF-CSP题解 201609-3 炉石传说
模拟。
注意随从的编号在\(summon\)和\(attack\)随从死亡时都可能改变。
#include <bits/stdc++.h>
using namespace std;
struct tNode
{
int attack;
int health;
};
tNode aPlayer[8];
tNode bPlayer[8];
int aM = 0, bM = 0;
int aHealth = 30, bHealth = 30;
int main()
{
int n;
scanf("%d", &n);
int player = 1;
char op[30];
while (n--)
{
scanf("%s", op);
if (op[0] == 's')
{
int pos, attack, health;
scanf("%d%d%d", &pos, &attack, &health);
if (player == 1)
{
for (int i = aM + 1; i >= pos + 1; i--)
aPlayer[i] = aPlayer[i - 1];
aPlayer[pos].attack = attack;
aPlayer[pos].health = health;
aM++;
}
else
{
for (int i = bM + 1; i >= pos + 1; i--)
bPlayer[i] = bPlayer[i - 1];
bPlayer[pos].attack = attack;
bPlayer[pos].health = health;
bM++;
}
}
else if (op[0] == 'a')
{
int attacker, defender;
scanf("%d%d", &attacker, &defender);
if (player == 1)
{
if (defender == 0)
{
bHealth -= aPlayer[attacker].attack;
}
else
{
aPlayer[attacker].health -= bPlayer[defender].attack;
bPlayer[defender].health -= aPlayer[attacker].attack;
if (aPlayer[attacker].health <= 0)
{
for (int i = attacker; i <= aM - 1; i++)
aPlayer[i] = aPlayer[i + 1];
aM--;
}
if (bPlayer[defender].health <= 0)
{
for (int i = defender; i <= bM - 1; i++)
bPlayer[i] = bPlayer[i + 1];
bM--;
}
}
}
else
{
if (defender == 0)
{
aHealth -= bPlayer[attacker].attack;
}
else
{
aPlayer[defender].health -= bPlayer[attacker].attack;
bPlayer[attacker].health -= aPlayer[defender].attack;
if (aPlayer[defender].health <= 0)
{
for (int i = defender; i <= aM - 1; i++)
aPlayer[i] = aPlayer[i + 1];
aM--;
}
if (bPlayer[attacker].health <= 0)
{
for (int i = attacker; i <= bM - 1; i++)
bPlayer[i] = bPlayer[i + 1];
bM--;
}
}
}
}
else
{
player *= -1;
}
}
if (aHealth <= 0 || bHealth <= 0)
printf("%d\n", player);
else
printf("0\n");
printf("%d\n", aHealth);
printf("%d", aM);
for (int i = 1; i <= aM; i++)
printf(" %d", aPlayer[i].health);
printf("\n");
printf("%d\n", bHealth);
printf("%d", bM);
for (int i = 1; i <= bM; i++)
printf(" %d", bPlayer[i].health);
printf("\n");
return 0;
}
CCF-CSP题解 201609-3 炉石传说的更多相关文章
- CCF CSP 201609-3 炉石传说
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201609-3 炉石传说 问题描述 <炉石传说:魔兽英雄传>(Hearthston ...
- CCF 炉石传说(模拟)
试题编号: 201612-3 试题名称: 炉石传说 时间限制: 1.0s 内存限制: 256.0MB 问题描述 <炉石传说:魔兽英雄传>(Hearthstone: Heroes of Wa ...
- 炉石传说__multiset
炉石传说 Problem Description GG学长虽然并不打炉石传说,但是由于题面需要他便学会了打炉石传说.但是传统的炉石传说对于刚入门的GG学长来说有点复杂,所以他决定自己开发一个简化版 ...
- CCF CSP 201703-3 Markdown
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201703-3 Markdown 问题描述 Markdown 是一种很流行的轻量级标记语言(l ...
- CCF CSP 201312-3 最大的矩形
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201312-3 最大的矩形 问题描述 在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i( ...
- CCF CSP 201403-3 命令行选项
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201403-3 命令行选项 问题描述 请你写一个命令行分析程序,用以分析给定的命令行里包含哪些 ...
- CCF CSP 201709-4 通信网络
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201709-4 通信网络 问题描述 某国的军队由N个部门组成,为了提高安全性,部门之间建立了M ...
- CCF CSP 201409-3 字符串匹配
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201409-3 字符串匹配 问题描述 给出一个字符串和多行文字,在这些文字中找到字符串出现的那 ...
- CCF CSP 201503-3 节日
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201503-3 节日 问题描述 有一类节日的日期并不是固定的,而是以“a月的第b个星期c”的形 ...
- CCF CSP 201509-2 日期计算
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201509-2 日期计算 问题描述 给定一个年份y和一个整数d,问这一年的第d天是几月几日? ...
随机推荐
- 优秀的github项目学习
优秀的github项目学习 后期会陆续添加遇到的优秀项目 https://github.com/chaijunkun
- Nginx服务器安装及配置解释
nginx是高性能的轻量级web服务器. 特性: 1.http代理 2.反向代理 3.负载均衡 4.缓存机制 一,安装及启动(centos7,nginx 1.14.0) 1.下载 wget http: ...
- 带你涨姿势的认识一下 Kafka 消费者
之前我们介绍过了 Kafka 整体架构,Kafka 生产者,Kafka 生产的消息最终流向哪里呢?当然是需要消费了,要不只产生一系列数据没有任何作用啊,如果把 Kafka 比作餐厅的话,那么生产者就是 ...
- react antd Table动态合并单元格
示例数据 原始数组 const data = [ { key: '0', name: 'John Brown', age:22, address: 'New York No. 1 Lake Park' ...
- dom4j的测试例子和源码详解(重点对比和DOM、SAX的区别)
目录 简介 DOM.SAX.JAXP和DOM4J xerces解释器 SAX DOM JAXP DOM解析器 获取SAX解析器 DOM4j 项目环境 工程环境 创建项目 引入依赖 使用例子--生成xm ...
- 【集训Day3 离散化】矩形覆盖
矩形覆盖(planting) [问题描述] 给定在一个平面坐标系上的N(1 <= N <= 100)个矩形区域,这N个矩形可能有相互覆盖的部分.求平面上被所有矩形覆盖的总面积,重复部分只算 ...
- xpath选择兄弟节点、返回上一级和选择多个属性
本文链接:https://blog.csdn.net/ZincZhang/article/details/80248297选择兄弟节点选择前N位的div标签 preceding-sibling::di ...
- scikit-learn文本特征提取之TF-IDF
TF-IDF(term frequency–inverse document frequency)是一种用于资讯检索与文本挖掘的常用加权技术. TF-IDF是一种统计方法,用以评估一字词对于一个文件集 ...
- 二叉查找树的平衡(DSW算法)
树适合于表示某些领域的层次结构(比如Linux的文件目录结构),使用树进行查找比使用链表快的多,理想情况下树的查找复杂度O(log(N)),而链表为O(N),但理想情况指的是什么情况呢?一般指树是完全 ...
- 如何平滑优雅地在Rancher 2.x中升级cert-manager?
作者: Nassos Michas丨European Dynamics SA, CTO 如果你正在使用由Rancher提供的Helm Chart在Rancher管理的Kubernetes集群中安装ce ...