IT节程序设计竞赛网络赛(一)

2月中旬举办了场代码比赛,拉几道我会写的题目来放放(出题人老二次元了)

题目E 因为感觉打不过就全点速度与攻击了

题目详情:

因为最近看到东方大佬在玩新游戏《OldWorld offline》,所以小陈同学作为他的好朋友也决定来尝试一下这款游戏。因为小陈怕打不过小怪(然而他是个高手),所以他决定走速攻流。

所谓速攻流就是只点速度与攻击,这款游戏的速度的优势主要体现在攻击次数上,速度越快,单次内的攻击次数就越高,视情况还可以直接秒杀对方(策划出来背锅)。

并且由于小陈是个脆皮,被攻击命中就会领便当,所以他装载在身上的技能有四个:「无敌金身」「超加速」「光速神言」「虚影」

「无敌金身」:主动技能,通过斩断身旁的空间,切断他人攻击与自身的关系,无视伤害10秒,在1v1中,对每个敌人只能用一次

「超加速」:瞬间提升你的速度,不需要时间,+20%面板速度,直到对战结束

「光速神言」:将咏唱的时间强行压缩在5秒内,创造出不可能的速度提升,+50%面板速度,直到对战结束

「虚影」:被动技能,当你的速度超过100点,将会产生一个自身的虚影,攻击x2

注意:不同的技能可以同时使用,但是相同技能不能同时使用,并且使用技能的时候不能攻击

(比如说「超加速」与「光速神言」能同时使用,正在进行「光速神言」的5秒内,不能进行攻击)

1
小陈的基本面板是这样的:「攻击100,速度70,血条1」。

由于小陈血量太少了,所以只能靠「无敌金身」的时间击败敌人,「无敌金身」时间一过,小陈立刻就会被击败。

1
速度=面板速度+附加速度,敌人一秒内的扣血=一秒内的攻击=攻击x攻击次数(速度)

现在给你一组敌人的血条,问小陈能否打败这些敌人,能的话就是输出Yes,不能则输出No。

  • 输入要求
  • 先输入一个T,表示T组数据。(1<=T<=50)
  • 每组数据第一行有一个n,表示n个敌人。(大于等于1小于等于2^15)
  • 每组数据第二行表示n个敌人的血条。(大于等于1小于等于2^30)输出要求
  • 每一组数据第一行输出 Case #i: 表示当前是第i组数据。
  • 后面加n行输出答案。

题目分析:

刚开始看到这道题有点被吓到,题目的文字数据量挺多,但实际上只要计算最终的攻击数据进行判断就完事了。经过所给数据我的判断是超过119000时这孩子可能就没了0.0

题目代码:

C语言编写

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <stdio.h>
int main() {
int number,bad;
scanf("%d",&number);
int count= 1;
while(number!=0) {
scanf("%d", &bad);
long long int hp[bad];
int a=0;
while (bad!= 0) {
bad--;
scanf("%ld",&hp[a]);
a++;
}
printf("Case #%d:\n",count++);
for (int i = 0; i < a; ++i){
if(hp[i]>119000){
printf("No\n");
} else{
printf("Yes\n");
}
}
number--;
}
}

IT节程序设计竞赛网络赛(一)
http://blask.cn/2020/05/12/it节程序设计竞赛网络赛(一)/
作者
Wayne Li
发布于
2020年5月12日
许可协议