模拟。

注意随从的编号在\(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 炉石传说的更多相关文章

  1. CCF CSP 201609-3 炉石传说

    CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201609-3 炉石传说 问题描述 <炉石传说:魔兽英雄传>(Hearthston ...

  2. CCF 炉石传说(模拟)

    试题编号: 201612-3 试题名称: 炉石传说 时间限制: 1.0s 内存限制: 256.0MB 问题描述 <炉石传说:魔兽英雄传>(Hearthstone: Heroes of Wa ...

  3. 炉石传说__multiset

     炉石传说  Problem Description GG学长虽然并不打炉石传说,但是由于题面需要他便学会了打炉石传说.但是传统的炉石传说对于刚入门的GG学长来说有点复杂,所以他决定自己开发一个简化版 ...

  4. CCF CSP 201703-3 Markdown

    CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201703-3 Markdown 问题描述 Markdown 是一种很流行的轻量级标记语言(l ...

  5. CCF CSP 201312-3 最大的矩形

    CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201312-3 最大的矩形 问题描述 在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i( ...

  6. CCF CSP 201403-3 命令行选项

    CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201403-3 命令行选项 问题描述 请你写一个命令行分析程序,用以分析给定的命令行里包含哪些 ...

  7. CCF CSP 201709-4 通信网络

    CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201709-4 通信网络 问题描述 某国的军队由N个部门组成,为了提高安全性,部门之间建立了M ...

  8. CCF CSP 201409-3 字符串匹配

    CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201409-3 字符串匹配 问题描述 给出一个字符串和多行文字,在这些文字中找到字符串出现的那 ...

  9. CCF CSP 201503-3 节日

    CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201503-3 节日 问题描述 有一类节日的日期并不是固定的,而是以“a月的第b个星期c”的形 ...

  10. CCF CSP 201509-2 日期计算

    CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201509-2 日期计算 问题描述 给定一个年份y和一个整数d,问这一年的第d天是几月几日? ...

随机推荐

  1. SpringBoot 正式环境必不可少的外部化配置

    前言 <[源码解析]凭什么?spring boot 一个 jar 就能开发 web 项目> 中有读者反应: 部署后运维很不方便,比较修改一个 IP 配置,需要重新打包. 这一点我是深有体会 ...

  2. Centos7下oracle12c的安装与配置(详细)

    一.硬件配置 CentOS7@VMware® Workstation 15 Pro,分配资源:CPU:2颗,内存:4GB,硬盘空间:30GB 二.软件准备  linux.x64_11gR2_datab ...

  3. Chocolatey初体验

    新电脑安装Nodejs时发现安装包提示是否自动安装Chocolatey,之前没看到过这个名词,于是搜索了下,发现Chocolatey是Windows平台的包管理工具,类似于Linux的yum/apt- ...

  4. deepin安装pip

    sudo apt install python3-venv python3-pip  升级最新版 pip3 install --upgrade pip 更新完以后就报错网上的解决办法没有好使的 退回版 ...

  5. 2019-11-3:渗透测试,基础学习,bypass类型笔记

    等价字符 空格:%20,+,(),%0a,%09,%a0,%0b,%0c,%0d,/**/等 =:like,regexp,liker,<>,! =等 and:&& or:x ...

  6. 今天是python专场UDP socket 链接

    type = SOCK_DGRAM UDP 协议的通信优势 允许一个服务器的同时和多个客户端通信 server import socket sk = socket.socket(type=socket ...

  7. (四十五)golang--反射

    反射基本介绍: (1)反射可以在运行时动态获取变量的各种信息,比如变量的类型.类别: (2)如果是结构体变量,还可以获取结构体本身的信息(包括结构体字段.方法): (3)通过反射,可以修改变量的值,可 ...

  8. C博客作业00—我的第一篇博客

    C博客作业00-我的第一篇博客 1. 你对网络专业或者计算机专业了解是怎样? 泛泛了解 - 原先只知道网络工程隶属于计算机工程学院,与院中其他专业一样,同样都需要学习大量的计算机基础知识,然后再分支学 ...

  9. WPF 因设置不期望的DataContext,导致的绑定异常

    在MainWindow中,创建一个背景属性BrushTest,并将其绑定至界面 <Window x:Class="WpfApp8.MainWindow" xmlns=&quo ...

  10. python内存-fromkeys

    fromkeys 这个方法涉及到可变不可变类型,记录下测试代码 不可变类型 #可变类型-list x=["zx","zx2","zx3"] ...