试题 历届真题 防御力【第九届】【决赛】【B组】

2024-04-09 14:18

本文主要是介绍试题 历届真题 防御力【第九届】【决赛】【B组】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

时间限制:1.0s 内存限制:256.0MB
  小明最近在玩一款游戏。对游戏中的防御力很感兴趣。
  我们认为直接影响防御的参数为“防御性能”,记作d,而面板上有两个防御值A和B,与d成对数关系,A=2 ^ d,B=3 ^ d(注意任何时候上式都成立)。
  在游戏过程中,可能有一些道具把防御值A增加一个值,有另一些道具把防御值B增加一个值。
  现在小明身上有n1个道具增加A的值和n2个道具增加B的值,增加量已知。

现在已知第i次使用的道具是增加A还是增加B的值,但具体使用那个道具是不确定的,请找到一个字典序最小的使用道具的方式,使得最终的防御性能最大。

初始时防御性能为0,即d=0,所以A=B=1。
输入格式
  输入的第一行包含两个数n1,n2,空格分隔。
  第二行n1个数,表示增加A值的那些道具的增加量。
  第三行n2个数,表示增加B值的那些道具的增加量。
  第四行一个长度为n1+n2的字符串,由0和1组成,表示道具的使用顺序。0表示使用增加A值的道具,1表示使用增加B值的道具。输入数据保证恰好有n1个0,n2个1。
输出格式
  对于每组数据,输出n1+n2+1行,前n1+n2行按顺序输出道具的使用情况,若使用增加A值的道具,输出Ax,x为道具在该类道具中的编号(从1开始)。若使用增加B值的道具则输出Bx。最后一行输出一个大写字母E。
样例输入
1 2
4
2 8
101
样例输出
B2
A1
B1
E
样例输入
3 0
7 11 13

000
样例输出
A1
A2
A3
E

样例说明对于第一组测试数据,操作过程如下:操作 d A B初始 0 1 1B2 2 4 9A1 3 8 27B1 log3(29) 2^(log3(29)) 29可以证明,这个值是最大的。对于第二组测试数据,可见无论用什么顺序,A最后总为32,即d总为5,B总为243

数据规模和约定
  对于20%的数据,字符串长度<=10000;
  对于70%的数据,字符串长度<=200000;
  对于100%的数据,字符串长度<=2000000,输入的每个增加值不超过2^30。

资源约定:
  峰值内存消耗(含虚拟机) < 256M
  CPU消耗 < 1000ms

思路:
可以确定是贪心求解,并且A中的尽量挑小的先用,B中尽量挑大的先用(如果相同大小就选字典序小的)
设当前d,A,B
Ai为选的A中的道具值;Bi为选的B中的道具值;
d=log2(A+Ai)
且d=log3(B+Bi)
显然A的变化对d的值影响更大,而B对d的影响值较小,所以根据贪心的思想,既然A的变化对d最终值影响大,那我们就把A中较大的道具留到最后使用,而B对d影响小,所以B中尽量先用大的;
(这道题真的很迷,自己可以例举一下A两个B一个的情况,确实是A应该先用小的,B先用大的,最终d会更大)
code:

import java.util.PriorityQueue;
import java.util.Scanner;class Node3 implements Comparable<Node3>{long val;long loc;public Node3(long vv,long ll){this.loc=ll;this.val=vv;}@Overridepublic int compareTo(Node3 o) {if(this.val!=o.val) {if(o.val>this.val)return 1;else if(o.val<this.val)return -1;else return 0;}else {if(this.loc>o.loc)return 1;else if(this.loc<o.loc)return -1;else return 0;}}	
}class Node4 implements Comparable<Node4>{long val;long loc;public Node4(long vv,long ll){this.loc=ll;this.val=vv;}@Overridepublic int compareTo(Node4 o) {if(this.val!=o.val) {if(o.val>this.val)return -1;else if(o.val<this.val)return 1;else return 0;}else {if(this.loc>o.loc)return 1;else if(this.loc<o.loc)return -1;else return 0;}}	
}public class Main {static int n1,n2;public static void main(String[] args) {Scanner in=new Scanner(System.in);n1=in.nextInt();n2=in.nextInt();PriorityQueue<Node4> q1=new PriorityQueue<>();PriorityQueue<Node3> q2=new PriorityQueue<>();for(long i=1;i<=n1;i++) {long val;val=in.nextInt();q1.add(new Node4(val,i));}for(long i=1;i<=n2;i++) {int val;val=in.nextInt();q2.add(new Node3(val, i));}String op=in.next();if(n1!=0&&n2!=0) {for(int i=0;i<op.length();i++) {if(op.charAt(i)=='0') {Node4 nn=q1.remove();System.out.println("A"+nn.loc);}else {Node3 nn=q2.remove();System.out.println("B"+nn.loc);}}System.out.println("E");}else if(n1==0) {for(int i=0;i<n2;i++) {System.out.println("B"+(i+1));}System.out.println("E");}else if(n2==0) {for(int i=0;i<n1;i++) {System.out.println("A"+(i+1));}System.out.println("E");}}
}

这篇关于试题 历届真题 防御力【第九届】【决赛】【B组】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/888377

相关文章

大学湖北中医药大学法医学试题及答案,分享几个实用搜题和学习工具 #微信#学习方法#职场发展

今天分享拥有拍照搜题、文字搜题、语音搜题、多重搜题等搜题模式,可以快速查找问题解析,加深对题目答案的理解。 1.快练题 这是一个网站 找题的网站海量题库,在线搜题,快速刷题~为您提供百万优质题库,直接搜索题库名称,支持多种刷题模式:顺序练习、语音听题、本地搜题、顺序阅读、模拟考试、组卷考试、赶快下载吧! 2.彩虹搜题 这是个老公众号了 支持手写输入,截图搜题,详细步骤,解题必备

3月份目标——刷完乙级真题

https://www.patest.cn/contests/pat-b-practisePAT (Basic Level) Practice (中文) 标号标题通过提交通过率1001害死人不偿命的(3n+1)猜想 (15)31858792260.41002写出这个数 (20)21702664840.331003我要通过!(20)11071447060.251004成绩排名 (20)159644

2025秋招NLP算法面试真题(二)-史上最全Transformer面试题:灵魂20问帮你彻底搞定Transformer

简单介绍 之前的20个问题的文章在这里: https://zhuanlan.zhihu.com/p/148656446 其实这20个问题不是让大家背答案,而是为了帮助大家梳理 transformer的相关知识点,所以你注意看会发现我的问题也是有某种顺序的。 本文涉及到的代码可以在这里找到: https://github.com/DA-southampton/NLP_ability 问题

软考高级论文真题“论大数据lambda架构”

论文真题 大数据处理架构是专门用于处理和分析巨量复杂数据集的软件架构。它通常包括数据收集、存储、处理、分析和可视化等多个层面,旨在从海量、多样化的数据中提取有价值的信息。Lambda架构是大数据平台里最成熟、最稳定的架构,它是一种将批处理和流处理结合起来的大数据处理系统架构,其核心思想是将批处理作业和实时流处理作业分离,各自独立运行,资源互相隔离,解决传统批处理架构的延迟问题和流处理架构的准

数据结构历年考研真题对应知识点(栈)

目录 3.1栈 3.1.1栈的基本概念 【栈的特点(2017)】 【入栈序列和出栈序列之间的关系(2022)】  【特定条件下的出栈序列分析(2010、2011、2013、2018、2020)】 3.1.2栈的顺序存储结构 【出/入栈操作的模拟(2009)】 3.1栈 3.1.1栈的基本概念 【栈的特点(2017)】 栈(Stack)是只允许在一端进行插入或删除操作的

[第五空间2019 决赛]PWN5

参考文章: 格式化字符串漏洞原理及其利用(附带pwn例题讲解)_格式化字符串攻击教程-CSDN博客 格式化字符串漏洞原理详解_静态编译 格式化'字符串漏洞-CSDN博客 BUU pwn [第五空间2019 决赛]PWN5 //格式化字符串漏洞 - Nemuzuki - 博客园 (cnblogs.com) 栈溢出保护(cannary) 数据溢出保护(NX) 运行一下看看

24年安克创新社招入职自适应能力cata测评真题分享北森测评高频题库

第一部分:安克创新自适应能力cata测评 感谢您关注安克创新社会招聘,期待与您一起弘扬中国智造之美。 为对您做出全面的评估,现诚邀您参加我们的在线测评。 测评名称:社招-安克创新自适应能力cata测评 第二部分:安克创造者启航试炼 感谢您参与安克创新社会招聘,期待与您一起弘扬中国智造之美。 为对您做出全面的评估,现诚邀您参加「安克创造者启航试炼」测评。 开始测评之前,建议您抽时间

2024年保安职业资格考试试题分享

137.道路交通中设置的安全岛的作用是(  )。 A.供过街行人避让车辆 B.供非机动车临时停放 C.供机动车临时停放 D.供交通警察指挥交通 答案:A 138.当某单位的风险等级高而防护级别低时,说明该单位的安全防护水平( )。 A.高 B.中 C.低 D.不明 答案:C 139.关于保安员履行查验与登记的职责,下列说法错误的是( )。 A.保安员可以查验出入人员证件

【免费】中国电子学会2024年03月份青少年软件编程Python等级考试试卷一级真题(含答案)

2024-03 Python一级真题 分数:100 题数:37 测试时长:60min 一、单选题(共25题,共50分) 1.  下列哪个命令,可以将2024转换成'2024' 呢?( A)(2分) A.str(2024) B.int(2024) C.float(2024) D.bool(2024) 答案解析:本题考察的是str() 语句,将数字转换成字符串用到的是str() 语

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] LYA的巡演(100分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 📎在线评测链接 https://app5938.acapp.acwing.com.cn/contest/2/problem/OD1073 🌍 评测功能需要 ⇒ 订阅专栏 ⇐