题目描述

Daisy和Stella玩一个游戏。

游戏在一个无限长的一维坐标轴上,每个玩家有一枚棋子。一开始Daisy的棋子在x=0的位置,Stella的棋子在x=d的位置。

每个棋子有两个属性:最大移动距离,攻击范围。Daisy的棋子的最大移动距离是mov1,攻击范围是rng1;Stella的棋子的最大移动距离是mov1,攻击范围是rng1。

两人轮流操作,Daisy先走。每轮当前玩家移动己方棋子,但移动距离不可超过该棋子的最大移动距离(移动距离必须是整数,可以不动)。然后,当前玩家检查对方棋子是否在己方棋子攻击范围内,如果是,当前选手获胜,否则游戏继续。

已知正整数mov1,rng1,mov2,rng2,d。求出双方都使用最优策略下谁能获胜,或者平局。

输入格式

多组数据,首先是一个整数T(5≤T≤20)表示有T组测试数据,每组测试数据为:

第一行:5个整数,分别表示mov1,rng1,mov2,rng2,d。(1≤mov1,rng1,mov2,rng2,d≤10^9)

输出格式

共T行,每行一个字符串,如果Daisy胜,输出"Daisy",如果Stella胜,输出"Stella",平局输出"Draw"。

输入样例

17 19 21 31 41

输出样例

Draw

题解:

①首先判断Daisy能否在第一轮击败Stella。

②mov1+rng1==mov2+rng2的时候一定是平局;

先明确一个结论:Daisy能击败Stella的必要条件是mov1+rng1>mov2+rng2(Stella击败Daisy同理);

证明:假设mov1+rng1≤mov2+rng2且Daisy赢了(非第一轮),说明Daisy最后一次移动之前与Stella的距离dis≤mov1+rng1;

再考虑Stella最后一次移动之前与Daisy的距离dis‘:

若dis’>dis,那么Stella不可能蠢到缩短距离去让Daisy打,因为这样会直接输掉比赛;

若dis’<dis,那么Stella在这时就已经能干掉Daisy了,不可能蠢到增长距离,还只增长到让Daisy刚好能打到自己。

所以mov1+rng1==mov2+rng2的时候一定是平局,因为双方都无法靠近对方。

③若mov1+rng1>mov2+rng2,这时只要判断答案是Daisy胜还是平局。

因为Daisy第一轮无法击败Stella,Stella也不可能击败Daisy,所以Stella会跑,Daisy会追,所以Daisy胜利的其中一个条件是mov1>mov2。

但Daisy在追的时候还要防止Stella突然回头攻击,因此要保持与Stella的距离dis>mov2+rng2,所以条件二是mov1+rng1≥1+rng2+mov2+mov2。

④mov1+rng1<mov2+rng2,情况类似,但要先判断Stella能否在第二轮击败Daisy,不行再套用③的判断方式。

#include<cstdio>
int T, mov1, mov2, rng1, rng2, d;
int main() {for( scanf( "%d", &T ); T; T-- ) { scanf( "%d%d", &mov1, &mov2 ); scanf( "%d%d%d", &rng1, &rng2, &d ); if( mov1+rng1>=d ) printf( "Daisy\n" ); else if( mov1+rng1==mov2+rng2 ) printf( "Draw\n" ); else if( mov1+rng1>mov2+rng2 ) { if( mov1>mov2 && mov1+rng1>=1+rng2+mov2+mov2 ) printf( "Daisy\n" ); else printf( "Draw\n" ); } else if( mov1+rng1<mov2+rng2 ) { if( mov1+d<=mov2+rng2 ) printf( "Stella\n" ); else if( mov2>mov1 && mov2+rng2>=1+rng1+mov1+mov1 ) printf( "Stella\n" ); else printf( "Draw\n" ); } } return 0;
}

[NOIP模拟赛]棋子游戏相关推荐

  1. NOI.AC NOIP模拟赛 第六场 游记

    NOI.AC NOIP模拟赛 第六场 游记 queen 题目大意: 在一个\(n\times n(n\le10^5)\)的棋盘上,放有\(m(m\le10^5)\)个皇后,其中每一个皇后都可以向上.下 ...

  2. 【noip模拟赛4】Matrix67的派对 暴力dfs

    [noip模拟赛4]Matrix67的派对 描述 Matrix67发现身高接近的人似乎更合得来.Matrix67举办的派对共有N(1<=N<=10)个人参加,Matrix67需要把他们安排 ...

  3. 【HHHOJ】NOIP模拟赛 捌 解题报告

    点此进入比赛 得分: \(30+30+70=130\)(弱爆了) 排名: \(Rank\ 22\) \(Rating\):\(-31\) \(T1\):[HHHOJ260]「NOIP模拟赛 捌」Dig ...

  4. jyzy noip模拟赛5.22-2

    不知道哪来的题 jyzy noip模拟赛5.22-2 样例输入 1 2 3 4 样例输出 0.200000000000000 数据 |a|,|b|,|c|,|d|<=1e9 很多大佬迅速想到二分 ...

  5. NOIP模拟赛csy2021/10/30

    NOIP模拟赛csy2021/10/30 比赛时间规划 赛后反思与总结 这..总的来说感觉打的很不好,根本没有状态,有一部分原因是今天来晚了,太慌,更多的还是这次题感觉很难o(╥﹏╥)o 比赛时间规划 ...

  6. 【WZOI第二次NOIP模拟赛Day1T2】世界末日 解题报告

    [WZOI第二次NOIP模拟赛Day1T2]世界末日 Problem 2 世界末日 (doomsday.pas/c/cpp) 背景 话说CWQ大牛终于打开了那扇神秘大门,但迎接他的不是什么神秘的东西, ...

  7. NOIP 模拟赛 长寿花 题解

    NOIP 模拟赛 长寿花 题解 要放 \(n\) 层物品,第 \(i\) 层有 \(a_i\) 个位置放物品,物品有 \(m\) 中颜色,有约束条件: 同一层两个相邻物品颜色不能相同. 相邻两层颜色集 ...

  8. 辣鸡(ljh) NOIP模拟赛 模拟 平面几何 数论 化学相关(雾)

    [题目描述] 辣鸡ljhNOI之后就退役了,然后就滚去学文化课了. 然而在上化学课的时候,数学和化学都不好的ljh却被一道简单题难住了,受到了大佬的嘲笑. 题目描述是这样的:在一个二维平面上有一层水分 ...

  9. 【NOIP 模拟赛】平均数 涂色游戏 序列题解

    吐槽(完跪):神tmNOIP模拟赛,看到大题头根本高级数据结构什么的想都没想,结果死的很惨,第三题竟然要可持久化线段树,这NOIP我服了. 平均数: 这道题40分相信大家都能拿到,剩下的60分讲真考验 ...

最新文章

  1. 时间复杂度为on的排序算法_排序算法amp;时间复杂度计算
  2. ant如何形成时间轴和图库_高中历史时间轴来了(电子高清版),最新最完整的复习时间线整理,这里都有!...
  3. telnet命令详解
  4. Token的解密和加密
  5. java数据库edit_Java数据库连接——JDBC基础知识(操作数据库:增删改查)
  6. Android工具里没有Android,android – AppCompat工具栏没有显示
  7. jmeter压力测试(Linux与Windows)
  8. POJ 1002 电话号码字符串处理
  9. 课题申报书范文_高等学校教改课题申报书范文
  10. wps两个表格对比数据(怎样对两个EXCEL表格数据对比,找出相同和不同的数据?)
  11. 用大白话讲解Carplay(原创)
  12. python 实现大鱼吃小鱼小游戏(课程作业)
  13. win10下载文件夹变成英文了该怎么办?下载文件夹变成英文的修复方法
  14. 计算机专业报瑞士酒店管理,我适合去瑞士读酒店管理吗?
  15. 单例模式与反射的攻防之【 道高一尺,魔高一丈 】
  16. VBA打印机设置(列出所有打印机名字、选用合适的打印机并设计端口号)
  17. 将KITTI数据集的odometry部分velodyne的bin文件转换成rosbag
  18. Android MagicIndicator 指示器 导航
  19. go 源码工具解析-英文单复数变化 Inflection
  20. fMRI处理:基于spm的dparsf

热门文章

  1. PowerDesigner根据数据库生成数据字典
  2. 如何在C++里面加快运行速度
  3. Java学习简单画椭圆
  4. 使用Python生成数据
  5. Cesium for Unreal 数据加载 场景漫游 粒子效果 视频监控 VR预览
  6. 三星ARM Cortex-A8 S5PV210(蜂鸟)简介
  7. Windows 10 喇叭红叉 重装驱动无效 点击喇叭显示无插座信息
  8. linux信号函数signal(SIGCHLD, SIG_IGN)
  9. 信息隐藏 !!!!!!!!!!!!!
  10. win7共享打印机设置