题目链接:广大OJ1374
本题亦为广大15级第一次周赛的I题。

题目内容

Problem Description
一年一度的口袋妖怪大赛开始了!!!

现在是四天王之一的渡对战传说中的训练师帽子!!!

渡的快龙使用了大字爆!

帽子的帕路奇犽正面接下了这一击!!!

帽子的帕路奇犽竟然毫发无损!!!

接下来的战斗会怎样呢!!!胜利的天平会往哪一位倾斜呢!!!

。。。。。。

与其等待结果,不如让我们来预测一下比赛结果吧。

现在我们可以知道双方的数据,包括名字 血量 攻击力 防御力 速度 技能威力 属性相克(例如说 属性相克为x2 就表示攻击方攻击防御方的伤害有2倍修正)

属性相克只有6种:x1,x2,x4,x0,x1/2,x1/4

接着是伤害的计算公式。口袋妖怪的伤害计算公式比较复杂,这里对其进行简化:

伤害=(攻击方攻击力×42×技能威力÷防御方防御力÷50+2)×属性相克

所有变量应按int类型的方式来计算,属性相克的x1/2和x1/4按除以2和除以4来计算。也就是说伤害的计算结果一定为整数。

在这里如果伤害计算结果是0的话要修正为1,就算是属性相克为x0也一样。

对战是回合制的类型,速度快的(速度的值比较大的)先手。

当速度一样时默认第一只口袋妖怪先攻击。

由于存在先后攻击顺序,所以不可能有平局的情况出现。

假设每次攻击都会命中,现在,给你这些数据,告诉我谁会胜利。

Input
输入的第一行包括一个整数n(1<=n<=10000),表示有n场对战需要计算。

接下有n组数据,每组数据占两行

每组数据的第一行为第一只口袋妖怪的数据,第二行为第二只口袋妖怪的数据。

每只口袋妖怪的数据包括名字(一个长度不超过20的字符串),血量h(1<=h<=10000),攻击力a(1<=a<=2000),防御力d(1<=d<=2000),速度s(1<=s<=2000),技能威力p(1<=p<=255),以及属性相克(只有六种,分别为:x1,x2,x4,x0,x1/2,x1/4)。分别用空格隔开。

Output
对于每组输入数据,输出谁会胜利。格式参照样例。
Sample Input
2
Palkia 384 372 220 184 100 x2
Dragonite 292 328 175 284 110 x1/4
Pi 100 100 200 300 1 x1/2
pi 100 200 100 200 1 x1/2
Sample Output
Round #1 : Palkia win!
Round #2 : Pi win!
Hint
善用scanf和printf

解题思路

其实这就是一道比较繁琐的入门题,只要耐下心来做就能够完成的。
首先,利用这些数据和公式算出双方每回合会受到的伤害
注意计算的时候不要用double要用int,而且当结果为0时记得修正为1。
其次,再算出双方分别能坚持的回合数
然后通过回合数计算即可。
具体的参照代码。

代码

#include<cstdio>
#include<string>
using namespace std;
struct pokemon//该结构体用于存放口袋妖怪的数据
{string name;int hp,atk,def,spd,pow;int k;//用于表示属性相克的种类
};
int main()
{int n;scanf("%d",&n);for(int t=1;t<=n;t++){pokemon a,b;string s;char c[20];scanf("%s",c);a.name=c;scanf("%d%d%d%d%d",&a.hp,&a.atk,&a.def,&a.spd,&a.pow);scanf("%s",c);s=c;if(s=="x1")a.k=1;else if(s=="x2")a.k=2;else if(s=="x4")a.k=4;else if(s=="x0")a.k=0;else if(s=="x1/2")a.k=8;else if(s=="x1/4")a.k=9;scanf("%s",c);b.name=c;scanf("%d%d%d%d%d",&b.hp,&b.atk,&b.def,&b.spd,&b.pow);scanf("%s",c);s=c;if(s=="x1")b.k=1;else if(s=="x2")b.k=2;else if(s=="x4")b.k=4;else if(s=="x0")b.k=0;else if(s=="x1/2")b.k=8;else if(s=="x1/4")b.k=9;int ha=42*b.atk*b.pow;//第一只口袋妖怪每回合会受到的伤害ha/=a.def;ha/=50;ha+=2;if(b.k==8)ha/=2;else if(b.k==9)ha/=4;else ha*=b.k;int hb=42*a.atk*a.pow;//第二只口袋妖怪每回合会受到的伤害hb/=b.def;hb/=50;hb+=2;if(a.k==8)hb/=2;else if(a.k==9)hb/=4;else hb*=a.k;if(ha==0)ha=1;if(hb==0)hb=1;int ra=a.hp/ha,rb=b.hp/hb;//这个是计算双方存活的回合数if(a.hp%ha!=0)ra++;if(b.hp%hb!=0)rb++;bool ans;//答案判断变量,若第一只赢为真,第二只赢为假if(ra>rb)ans=true;else if(ra<rb)ans=false;else if(a.spd>=b.spd)ans=true;else ans=false;printf("Round #%d : ",t);if(ans)printf("%s win!\n",a.name.c_str());else printf("%s win!\n",b.name.c_str());}
}

【GZOJ】1374——口袋妖怪对战相关推荐

  1. slack 使用说明_开发人员应使用的7个Slack集成

    slack 使用说明 如何使用集成和机器人自定义Slack来增强您的开发工作流程 毫无疑问,Slack正在逐渐成为现代办公通信的标准. 尽管您可能会说Slack从技术上讲与IRC没什么不同,但是精湛的 ...

  2. c语言精灵宝可梦对战游戏,3DS《口袋妖怪XY》对战热门物盾分析

    原标题:3DS<口袋妖怪XY>对战热门物盾分析 在<口袋妖怪xy>中,虽然增加了mega进化,但是在物盾方面来说变化并不是很大,很大精灵依然与口袋妖怪bw世代相似,但是玩法稍有 ...

  3. 【BZOJ-2325】道馆之战 树链剖分 + 线段树

    2325: [ZJOI2011]道馆之战 Time Limit: 40 Sec  Memory Limit: 256 MB Submit: 1153  Solved: 421 [Submit][Sta ...

  4. 宝可梦世界无限极可以玩服务器吗,口袋妖怪世界无极限运行库

    口袋妖怪世界无极限运行库是一款非常好玩的宝可梦游戏,在这里你可以看到各种宝可梦精灵,游戏采用全新的3D引擎打造一个精彩的宝可梦世界,你可以更好的进行自由组队战斗,每一个精灵都有自己独特的能力,还可以在 ...

  5. BZOJ2325[ZJOI2011]道馆之战——树链剖分+线段树

    题目描述 口袋妖怪(又名神奇宝贝或宠物小精灵)红/蓝/绿宝石中的水系道馆需要经过三个冰地才能到达馆主的面前,冰地中 的每一个冰块都只能经过一次.当一个冰地上的所有冰块都被经过之后,到下一个冰地的楼梯才 ...

  6. 做游戏,学编程(C语言) 14 口袋妖怪

    应@祝顾笙同学的要求,分享16级同学实现的口袋妖怪游戏demo.实现了经典游戏口袋妖怪的简化版,包括简单的剧情和对战系统,可以存档.自由刷怪升级. 以下为大概的实现过程: 1. 实现人物在地图上的自由 ...

  7. 绿宝石rom下载_口袋妖怪绿宝石下载

          口袋妖怪绿宝石官方版是一款非常有趣的冒险探索游戏.口袋妖怪绿宝石官方版支持GBA无线适配器,能够进行多人战斗和怪物交换. 口袋妖怪绿宝石游戏画面 游戏信息 中文名字:口袋妖怪绿宝石 英文名 ...

  8. 宝可梦世界无限极怎么开服务器,口袋妖怪世界无极限运行库

    软件介绍 口袋妖怪世界无极限运行库是以<口袋妖怪>为主要元素的沙盒类冒险手游,这里有超多不同属性不同功能的精灵们,可以与玩家们一起在线作战,收服更多的精灵,展开精彩的战斗玩法,还有复古的像 ...

  9. 完全自制的五子棋人机对战游戏(VC++实现)

    五子棋工作文档 1说明: 这个程序在创建初期的时候是有一个写的比较乱的文档的,但是很可惜回学校的时候没有带回来--所以现在赶紧整理一下,不然再过一段时间就忘干净了. 最初这个程序是受老同学所托做的,一 ...

最新文章

  1. Techshack Weekly 第 0002 期
  2. SAP MM 不常用事务代码之MB59
  3. linux cpu占用率 监控工具 简介
  4. python在日常工作处理中的应用-Python全栈开发在实际工作中的应用
  5. Educational Codeforces Round 80 (Rated for Div. 2) E. Messenger Simulator 思维 + 树状数组
  6. 【渝粤题库】广东开放大学企业标准化 形成性考核
  7. java forkjoin MySQL_Java并发fork-join框架
  8. BZOJ 3505 [Cqoi2014]数三角形(组合数学)
  9. Object-c Associated Object
  10. 课改 计算机 论文,计算机论文 计算机应用课改分析
  11. Proteus器件查找
  12. sqlserver备份还原数据库操作流程
  13. 现货白银最低门槛是啥?
  14. 如何使用电脑将拍摄的照片做成gif格式动图?
  15. STM32F103_study49_The punctual atoms(STM32 Bit operation and logical operation in C language )
  16. 2012面试备忘录(夏季南京)
  17. 地震响应分析中土体动力本构模型
  18. 关于CRC校验的一些总结
  19. 克里斯蒂安贝尔_克里斯蒂安贝尔解释为何只演3次蝙蝠侠
  20. Android 11.0 12.0在系统app安装第三方app弹出 解析安装包出现问题 的解决方案

热门文章

  1. 回顾2021虚拟与增强现实产业年会暨「金V奖」颁奖盛典
  2. BOSS创投社群:一个年赚30万,成本低,利润高,前景好的暴利项目!
  3. css字体不能缩小,CSS字体大小在%不降低,当我们缩小浏览器窗口大小
  4. SQL注入攻击及其防范检测技术研究
  5. Pascal程序结构
  6. 实现基于LNMP的电子商务网站--小米商城
  7. Js插件之JqGrid的使用
  8. Javascript高阶 奇淫巧技
  9. 【Unity3D】XR: OpenVR Error! OpenVR failed initialization解决方案
  10. Editplus 注册码!