zoukankan      html  css  js  c++  java
  • 洛谷公开赛

    转载自ouuan!!!!!!!!!!!!!!!!!!


    title: 洛谷公开赛题面参考
    date: 2019-08-14 11:38:49
    categories: 出题
    tags:

    • 出题规范
      top:

    大约会按 CF(以及我个人?)的标准重写一下题面。如果想做一名优秀的出题人,可以参考一下。

    也可以阅读我写的 ouuan 的出题规范

    当然也欢迎大家对我写的题面提意见。

    应该不定期更新吧,不可能一下把洛谷所有公开赛题面都写一遍..(咕咕咕)

    zcq的退役赛

    封锁

    题目背景

    Steve 带领队伍去 M 星消灭黑暗势力,即将降落时被 M 星上空的无人机拦截了。

    为了突破封锁,成功降落,Steve 使用了电磁干扰仪,使无人机开始自相残杀。

    然而,情况很快就变得混乱,无法了解当前的情况。

    幸好 Steve 的部队已经记录了开始混战前的状况,并设法获得了无人机执行操作的顺序。

    题目描述

    每架无人机有下列属性:

    • 子弹攻击 ((mathrm{atk})),子弹防御 ((mathrm{def})),激光攻击 ((mathrm{mat})),激光防御 ((mathrm{mdf})),恢复能力 ((mathrm{fix}))。
    • 当前生命值 ((mathrm{hp}))。
    • 当前坐标 ((x, y, z))
    • 当前竖直朝向 (h)
    • 当前水平朝向 (f)

    其中,(h) 的范围为 (0sim4)(f) 的范围为 (0sim7)

    注:这里把 (f​)(h​) 的顺序换了是因为操作描述和输入格式都是先 (h​)(f​)

    在接下来的 (t​) 个时刻内,每个时刻都会发生如下事件:

    1. 首先,依然存活的无人机向正前方移动一格。
    2. 然后,所有存活的无人机按照编号从小到大的顺序依次执行下列操作之一:
      • 无操作 (N)。
      • 上转向 (U): 将 (h) 的值修改为 (min(h + 1,4))
      • 下转向 (D): 将 (h) 的值修改为 (max(h - 1,0))
      • 左转向 (L): 将 (f) 的值修改为 ((f+1)mod 8)
      • 右转向 (R): 将 (f) 的值修改为 ((f-1)mod 8)
      • 修复 (F): 将 (mathrm{hp}) 增加 (mathrm{fix})
      • 子弹 (A): 使位于这架无人机正前方最近的依然存活的飞机受到攻击,若当前飞机的 (mathrm{atk}​) 值大于目标飞机的 (mathrm{def}​) 值,则目标受到当前飞机的 (mathrm{atk}​) 减去目标飞机的 (mathrm{def}​) 点伤害,否则目标不会受到伤害。如果目标处有多架飞机,编号最小的那一架会成为目标。如果这架无人机正前方没有依然存活的飞机,则不会有飞机受到伤害。
      • 激光 (M): 使位于这架无人机正前方的所有依然存活的飞机受到攻击,若当前飞机的 (mathrm{mat}​) 值大于目标飞机的 (mathrm{mdf}​) 值,则目标受到当前飞机的 (mathrm{mat}​) 减去目标飞机的 (mathrm{mdf}​) 点伤害,否则目标不会受到伤害。

    受到伤害即 (mathrm{hp}) 值减小,当 (mathrm{hp}) 值小于等于 (0​) 时,飞机就坠毁了。

    “正前方一格”的定义如下表(表中为 ((x,y,z)​) 的增量):

    {% asset_img 71703.png %}

    "正前方"要么是“正前方一格”,要么是“正前方一格”的“正前方”,不包含自身

    输入格式

    第一行包含两个正整数 (n)(t),分别表示飞机数和时刻数。

    接下来 (n) 行中的第 (i) 行,每行包含 (11) 个整数和一个长度为 (t) 的字符串,这 (11) 个整数分别代表 (i) 号飞机初始时的 (x), (y), (z), (h), (f), (mathrm{atk}), (mathrm{def}), (mathrm{mat}), (mathrm{mdf}), (mathrm{hp}), (mathrm{fix})。字符串中的第 (j) 个字符表示 (i) 号飞机在第 (j) 个时刻进行的操作,每个字符代表的操作见题目描述,保证字符串中只包含 N, U, D, L, R, F, A, M。

    输出格式

    输出包含 (n) 行,其中第 (i) 行包含四个整数,若 (t) 个时刻过后 (i) 号飞机依然存活则前三个整数表示其 (t) 个时刻过后的坐标,第四个整数表示其 (t) 个时刻过后的 (mathrm{hp});否则前三个整数表示其坠落前的坐标,第四个整数为 (0)

    说明/提示

    (1) 号和 (2) 号两架飞机移动并改变朝向后互相面对,随后它们分别向对面疯狂开火,最终 (1) 号飞机率先击落 (2) 号飞机,因为 (2) 号飞机已经坠毁,所以 (1​) 号飞机不会被击落。

    而它们身后分别跟着两架飞机,(2) 号飞机使用激光,所以 (3) 号飞机也会受到伤害,(1) 号飞机使用子弹,所以 (4) 号飞机不会受到伤害,直到 (2) 号飞机坠毁后,(1) 号飞机发出最后一颗子弹,对 (4) 号飞机造成了一点伤害。

    测试时,每个 Subtask 包括 (3​) 个测试点,全部通过才能得到该 Subtask 的分数。

    数据范围:(1le n, t, mathrm{hp}le100)(-100le x,y,zle100)(0le hle4)(0le fle7)(0lemathrm{atk,def,mat,mdf,fix}le100)

    注:原题面中“合理范围”实在不知道是什么,只能随便瞎猜了。

    • Subtask1(12pts): 出现的操作只有 N。
    • Subtask2(14pts): 出现的操作只有 N, F。
    • Subtask3(15pts): 出现的操作只有 N, F, L, R。
    • Subtask4(17pts): 出现的操作只有 N, F, L, R, U, D。
    • Subtask5(19pts): 出现的操作只有 N, F, L, R, U, D, M。
    • Subtask6(23pts): 无特殊限制。

    机关

    题目背景

    Steve 成功降落后,在 M 星上发现了一扇大门,但是这扇大门是锁着的。

    题目描述

    这扇门上有一个机关,上面一共有 (12) 个旋钮,每个旋钮有 (4) 个状态,分别用 (1), (2), (3), (4) 表示。

    每个旋钮只能向一个方向旋转((1 ightarrow2 ightarrow3 ightarrow4 ightarrow1)),当你转动 (i) 号旋钮且这个旋钮在转动之前处于状态 (j)(i) 号旋钮和 (a_{i,j}​) 号旋钮都会旋转一次。

    注:这里使用“转动”和“旋转”两个不同的词来表示“不会引起连锁反应”。也避免了“旋转次数”这个有歧义的表达。

    当所有旋钮都处于状态 (1) 时,机关就打开了。

    由于旋钮年久失修,旋转一次很困难,而且时间很紧迫,因此 Steve 希望用最少的转动次数打开机关。

    这个任务就交给你了。

    输入格式

    输入包含 (12) 行,每行包含 (5) 个正整数,其中第 (i) 行的第一个正整数表示 (i) 号旋钮的初始状态,第 (j+1) ((1le jle 4)) 个正整数表示 (a_{i,j}),即转动处于状态 (j)(i) 号旋钮时会跟着一起旋转的旋钮编号。

    输出格式

    第一行包含一个整数 (n​) 表示打开机关需要的最少转动次数。

    第二行包含 (n​) 个正整数,依次表示每次转动的旋钮编号。

    数据保证有解。

    说明/提示

    略(原题面基本没问题,可以考虑把应当是“转动”的地方改成转动,然后在段末加上句号)。


    先写到这,咕咕咕。

  • 相关阅读:
    在vscode中显示空格和tab符号
    如何正确理解关键字"with"与上下文管理器
    HADOOP基本操作命令
    Ganglia环境搭建并监控Hadoop分布式集群
    关于分布式系统的数据一致性问题
    hadoop snapshot 备份恢复 .
    hadoop主节点(NameNode)备份策略以及恢复方法
    HDFS snapshot操作实战
    从 secondarynamenode 中恢复 namenode
    hadoop 通过distcp进行并行复制
  • 原文地址:https://www.cnblogs.com/ShineEternal/p/11394137.html
Copyright © 2011-2022 走看看