再遇四渠注水问题!

题意及思路

题意:略

思路:每一个i号英雄,尽自己所能消灭最多能消灭的怪物即可。

踩坑点:消灭的怪物数量可能超出了整形(int)范围,所以不应该使用int,而应该使用long。这题和四渠注水问题类似,我再一次踩坑。发篇博客警示自己,不要再犯这种低级错误!

代码

import java.util.Scanner;

public class C {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int a[] = new int[n + 1];
        int b[] = new int[n];
        for (int i = 0; i < n + 1; i++) {
            a[i] = in.nextInt();
        }
        for (int i = 0; i < n; i++) {
            b[i] = in.nextInt();
        }
        long ans = 0;
        for (int i = 0; i < n; i++) {
            if (b[i] >= a[i]) {
                ans += a[i];
                b[i] -= a[i];
            } else {
                ans += b[i];
                b[i] = 0;
            }
            if (b[i] >= a[i + 1]) {
                ans += a[i + 1];
                b[i] -= a[i + 1];
                a[i + 1] = 0;
            } else {
                ans += b[i];
                a[i + 1] -= b[i];
                b[i] = 0;
            }
        }
        System.out.println(ans);
        in.close();
    }
}

原文地址:https://www.cnblogs.com/kyrie211/p/11257670.html

时间: 2024-10-16 01:31:10

再遇四渠注水问题!的相关文章

(c语法百题36)四渠注水

定位:简单算法 内容: 有四条水渠依次记为 A B C D,可以向同一水池注水.给出单开一个水渠注满水池所需要的天数,请问 (1)AB两条水渠同时注水,注满需要多长时间 (2)四渠同开,注满需要多长时间 结果保留2位小数 输入说明: 一行4个数字(无单位) 输出说明: 两行,第一行为AB同开,第二行为4渠同开 输入样例: 3 1 4 5 输出样例 : 0.75 0.56 #include <stdio.h> int main() { float a,b,c,d; scanf("%f

复利计算器4.0之再遇JUnit

复利计算器4.0之再遇JUnit 前言    虽然之前的复利计算器版本已经尝试过使用JUnit单元测试,但由于没有系统性地学习过JUnit的使用,用得并不好,主要问题表现在测试的场景太少,并没有达到测试所需的全面性,没能体现JUnit这一神器的精髓所在,为此本版本的复利计算器在JUnit单元测试方面做了一些完善. 源代码包结构 如上图所示,我把测试类统一放在新建的test源码文件下(test打错了,已改),以便和程序代码分离,方便操作. 细心看你就能发现,test目录下的包和程序SRC目录下相应

hlg1306再遇攻击--射线法判断点是否在多边形内部

再遇攻击 Time Limit: 1000 MS Memory Limit: 65536 K Total Submit: 313(40 users) Total Accepted: 91(32 users) Rating:  Special Judge: No Description Dota中英雄技能攻击会有一个范围,现在释放一个技能给出他的攻击范围和目标英雄的位置,问是否能攻击到.攻击范围保证是一个多边型. Input 有多组测试数据 第一行输入1个整数n, 期中n代表攻击范围是给出的n个点

Java虚拟机15:再谈四种引用状态

JVM的四种引用状态 在Java虚拟机5:Java垃圾回收(GC)机制详解一文中,有简单提到过JVM的四种引用状态,当时只是简单学习,知道有这么一个概念,对四种引用状态理解不深.这两天重看虚拟机这部分的时候,写了很多例子详细研究了一下JVM的几种引用,对于JVM的引用理解加深了不少,因此总结写一篇文章总结并分享下. 首先,还是先从JVM四种引用状态开始,这部分摘抄自周志明老师的<深入理解Java虚拟机:JVM高级特性与最佳实践>一书. 在JDK1.2之前,Java中的引用的定义很传统:如果re

SaaS战火点燃 微信再遇阿里、网易

近日,在企业级SaaS服务战场,最大的新闻莫过于移动霸主微信推出了企业微信.于是乎,众人摇旗呐喊:“狼来了!”.之所以会发出如此恐惧的声音,众人还是因为害怕企业微信背后的那只老虎——微信.这一次企业微信的推出,尽管一众在企业级市场奋战的大小服务平台都表示出了些许敌意,但是最紧张的莫过于阿里钉钉和易信企业版.在上一次的移动社交大战中,阿里来往和易信已经有了惨痛的经历,这一次恐怕无论如何他们也会卯足了劲,与企业微信厮杀到底. 前翻社交阿里.网易败在失去先机,今朝SaaS服务他们抢先掠夺城池 兵者,贵

mysql客户端( Navicat)远程登录操作再遇问题 1142-create command denied to user&#215;&#215;&#215;

给用户添加CREATE,DROP权限. Mysql命令: GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON systest.* TO [email protected]'%' identified by 'root'; 然后再在navicat中操作,问题解决啦.

再遇UML之用例图

用例图主要是用图来表示系统的主事件流程.它主要用来描述客户的需求,即用户希望系统具备完成一定功能的能力,通俗地理解用例就是软件的功能模块.设计人员根据客户的需求来创建和解释用例图,用来描述软件应具备哪些功能模块以及这些模块之间的调用关系. 组成: 用例图包含:参与者(Actor).用例(Use Case).系统边界.关系 参与者和用例用关联连接以求把系统的整个结构和功能反映给用户,对应的是软件的结构和功能分解. 用例之间的关系:泛化.包含.扩展 关系细化 包含include 使用包含用例来封装一

再遇函数

动态参数 *args,动态位置参数接收到的是元组,使用时注意位置参数一定要在动态参数前面,否则位置参数的内容全部被动态参数接收 **kwargs,动态关键字参数,接收到的是字典,使用时注意与默认值参数位置,默认值在**kwargs的前面 顺序: 位置参数>*args>默认值参数>**kwargs 在实参位置上*,**是代表把列表或者字典迭代打散 在形参位置,*,**是代表把位置参数,关键字参数聚合成一个列表,字典. 函数的注释,在函数内部输入"""+回车 命

深入理解JVM虚拟机13:再谈四种引用及GC实践

Java中的四种引用类型 微信公众号[Java技术江湖]一位阿里 Java 工程师的技术小站.作者黄小斜,专注 Java 相关技术:SSM.SpringBoot.MySQL.分布式.中间件.集群.Linux.网络.多线程,偶尔讲点Docker.ELK,同时也分享技术干货和学习经验,致力于Java全栈开发!(关注公众号后回复”Java“即可领取 Java基础.进阶.项目和架构师等免费学习资料,更有数据库.分布式.微服务等热门技术学习视频,内容丰富,兼顾原理和实践,另外也将赠送作者原创的Java学习