【2020-BNUZ-IT节程序设计竞赛网络赛题解】E. 因为感觉打不过就全点速度与攻击了

news/2024/10/31 3:23:48/

【2020-BNUZ-IT节程序设计竞赛网络赛题解】E. 因为感觉打不过就全点速度与攻击了

  • 题面
    • 题目大意
    • 题目思路
    • 容易卡住的点
    • 题解
      • C 语言代码
      • C++代码
      • Java代码
      • python代码
    • 题后语

题面

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

题目大意

小陈由于血量很低,所以只能在「无敌金身」的10秒内击败敌人,否则就会被打败。给你一组敌人的血量,问你能不能打败敌人。

题目思路

首先,此题的思路就是找到最大的总攻击值,只要敌人血量小于等于最大总攻击值,就会被击败。
假设使用如下情况:
使用「无敌金身」「超加速」:10回合造成伤害10x100x70x120%=84000
使用「无敌金身」「超加速」「光速神言」触发「虚影」:咏唱5回合,剩下5回合造成伤害5x100x2x70x170%=119000
明显是第二种造成伤害更多,所以我们只需要以第二种情况作为区分即可

容易卡住的点

  1. 题目太长不想读,以为是难题
  2. cin,cout导致超时
  3. 开了数组,并且因为数组开小了,导致运行时错误
  4. 开了动态数组导致超时
  5. 判断条件太多导致超时

题解

了解完这些之后,题目就变得很简单了

C 语言代码

#include<stdio.h>
int main(){int T;scanf("%d",&T);for(int o=0;o<T;o++){int n;scanf("%d",&n);printf("Case #%d:\n",o+1);int a;for(int i=0;i<n;i++){scanf("%d",&a);if(a<=119000)printf("Yes\n");elseprintf("No\n");}}return 0;
} 

C++代码

C++能过吗,cin,cout能用吗,能

#include <iostream>
#include<cstdio>
using namespace std;int main(){int T;std::ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);cin>>T;for(int o=0;o<T;o++){int n;cin>>n;cout<<"Case #"<<o+1<<":\n";int a;for(int i=0;i<n;i++){cin>>a;if(a<=119000)cout<<"Yes\n";elsecout<<"No\n";}}return 0;
} 

Java代码

由于Scanner耗费时间过长,这里我们需要用到快读

import java.io.*;
import java.util.StringTokenizer;
import java.math.BigInteger;public class Test4 {public static void main(String[] args) {InputStream inputStream = System.in;//InputStream是表示字节输入流的所有类的超类OutputStream outputStream = System.out;//InputStream与System 没有关系.System.in是System 这个类的静态变量,只是in是InputStream类型的InputReader sc = new InputReader(inputStream);PrintWriter out = new PrintWriter(outputStream);Task solver = new Task();solver.solve(sc, out);//这里当作原来的Main函数,输入输出都在里面解决out.close();//关闭输出流}static class Task {    public void solve(InputReader scan, PrintWriter out) {int t=scan.nextInt();for(int i=0;i<t;i++) {out.printf("Case #%d:\n",i+1);int n=scan.nextInt();while(n!=0) {int a=scan.nextInt();if(a<=119000){out.println("Yes"); }else{out.println("No"); }n--;}}//            out.println(ans);//输出答案}}//自己写出Scanner原本的输入语法,封装在InputReader类里static class InputReader {public BufferedReader reader;public StringTokenizer tokenizer;public InputReader(InputStream stream) {reader = new BufferedReader(new InputStreamReader(stream), 32768);//32768是输入缓冲区大小,随便设的tokenizer = null;}public String next() {while (tokenizer == null || !tokenizer.hasMoreTokens()) {try {tokenizer = new StringTokenizer(reader.readLine());} catch (IOException e) {throw new RuntimeException(e);}}return tokenizer.nextToken();}public int nextInt() {return Integer.parseInt(next());}public long nextLong() {return Long.parseLong(next());}public double nextDouble() {return Double.parseDouble(next());}public boolean hasNext() {try {String string = reader.readLine();if (string == null) {return false;}tokenizer = new StringTokenizer(string);return tokenizer.hasMoreTokens();} catch (IOException e) {return false;}}public BigInteger nextBigInteger() {//大数return new BigInteger(next());}}
}
//加速板参照 https://www.cnblogs.com/shoulinniao/p/12113790.html

python代码

T = int(input())for i in range(T):n = int(input())print("Case #{}:".format(i+1))a = input().split()for ii in a:if int(ii) <= 119000:print("Yes")else:print("No")

题后语

看过题数据的时候,看到有人居然用了C++的速读版写这题在这里插入图片描述
QwQ,果然大佬就是大佬,可能第一发写cin,然后自闭了
这题真的是简单题,之前出的题都太难没人写,这次想着出简单点,过题人数感觉还行,很多同学都很有想法,优秀


http://www.ppmy.cn/news/128915.html

相关文章

深度学习(9): LeNet-5 网络模型小结

文章目录 1 MNIST手写字体数据集2 LeNet-5 网络模型3 实验4 小结参考资料 注&#xff1a;转载请标明原文出处链接&#xff1a;https://xiongyiming.blog.csdn.net/article/details/100013565 1989年&#xff0c;Yann Lecun在论文 Gradient-Based Learning Applied to Documen…

Web安全:文件包含漏洞测试(防止 黑客利用此漏洞.)

Web安全&#xff1a;文件包含漏洞测试. 文件包含的漏洞是 程序员在开发网站的时候&#xff0c;为了方便自己开发构架&#xff0c;使用了一些包含的函数&#xff08;比如&#xff1a;php开发语言&#xff0c;include() , include_once() , require_once() 等等 &#xff09;&a…

如何通过命令行为Linux安装驱动程序

一般来说&#xff0c;在安装操作系统之后&#xff0c;系统会推荐一定的驱动更新&#xff0c;如果有些不合适&#xff0c;那么你可以选择手动更新。例如有的wireless无线驱动工作不正常&#xff0c;sudo ifconfig也不存在wlan0&#xff0c;那么你就必须采取手动安装方法。 首先&…

分类分类分类

[{"Name":"北京房产","SubMenu":[{"Name":"北京房产","SubMenu":null,"CategoriesMenu":null},{"Name":"租房","SubMenu":null,"CategoriesMenu":null},{&quo…

嵌入式系统概述

第1章 嵌入式系统概述 本章介绍嵌入式系统的一些基本知识&#xff0c;包括嵌入式系统的概念、发展、特点、组成、分类、嵌入式微处理器系列和嵌入式系统中信息表示与运算基础等。通过本章的学习&#xff0c;读者将建立起对嵌入式系统的初步的宏观认识&#xff0c;为今后的深入学…

【名词解释】电信技术名词解释大全

电信技术名词解释&#xff1a;什么是SDH http://www.sina.com.cn 2004 年07 月15 日 18:40 新浪科技 信息高速公路近来已成为人们的热门话题。到21世纪&#xff0c;人们借助与信息高速公路&#xff0c;可以在家中完成各种日常活动。而构成信息高速公路的最基本单元——公路——…

凉宫春日的阴谋7

序曲 凉宫春日很安分。 虽然看似忧郁&#xff0c;有时也唉声叹气&#xff0c;可事实上&#xff0c;她看起来并不寂寞。不过&#xff0c;最近总让人感觉到出奇的安静。那股莫名的不知由来的安分连我这号人都感到很害怕。 当然&#xff0c;并不只是外表安静&#xff0c;更不是心境…

10个简单的放松运动

第一招正确姿势&#xff1a;减缓用“脑”疲劳 不论是笔记本还是桌面电脑&#xff0c;在大多数人的学习、办公、娱乐中都扮演着不可或缺的重要角色。笔记本或桌面电脑成为了我们每天都要长时间亲密接触的“伙伴”&#xff0c;从清晨到夜晚&#xff0c;我们对键盘和鼠标的操作几乎…