第十一届蓝桥杯B组Java试题答案(省赛)
试题 A: 解密
小明设计了一种文章加密的方法:对于每个字母 c,将它变成某个另外的字符 T c 。下表给出了字符变换的规则:
例如,将字符串 YeRi 加密可得字符串 EaFn。小明有一个随机的字符串,加密后为EaFnjISplhFviDhwFbEjRjfIBBkRyY(由 30 个大小写英文字母组成,不包含换行符),请问原字符串是多少?
答案:YeRikGSunlRzgDlvRwYkXkrGWWhXaA
试题 B: 纪念日
2020 年 7 月 1 日是CPC成立 99 周年纪念日。CPC成立于 1921 年 7 月 23 日。
请问从 1921 年 7 月 23 日中午 12 时到 2020 年 7 月 1 日中午 12 时一共包含多少分钟?
答案:52038720
闰年:24个 平年:75个
(25*366+74*365)*24*60 - 22*24*60 = 52038720
试题 C: 合并检测
答案:10
分析:假设A国有n个人,感染者有n/100,每k个人一组,共n/k组,共用n/k瓶试剂
按照最坏的情况,每多出一个感染者就多用k瓶试剂,因此共用n/k+(n/100)*k瓶试剂
n=10时,n*(1/k+k/100)最小
试题 D: 分配口罩
某市市长获得了若干批口罩,每一批口罩的数目如下:(如果你把以下文字复制到文本文件中,请务必检查复制的内容是否与文档中的一致。在试题目录下有一个文件 mask.txt,内容与下面的文本相同)
9090400
8499400
5926800
8547000
4958200
4422600
5751200
4175600
6309600
5865200
6604400
4635000
10663400
8087200
4554000
现在市长要把口罩分配给市内的 2 所医院。由于物流限制,每一批口罩只能全部分配给其中一家医院。市长希望 2 所医院获得的口罩总数之差越小越好。请你计算这个差最小是多少?
答案:2400
设这些数的和为sum,分为两组后,一组数的和必定<=sum/2,另一组数的和必定>=sum/2。
我们只需要求出这样一组数,它们的和<=sum/2,并且这个和要尽可能最大。
用dp[j]表示一组数的和,这个和<=j,并且在所有情况下最大,这里我们要求dp[sum/2]。
public class Main {public static void main(String[] args) {int[] nums = {9090400,8499400,5926800,8547000,4958200,4422600,5751200,4175600,6309600,5865200,6604400,4635000,10663400,8087200,4554000};int sum = 0;for(int i = 0; i < nums.length; ++i) {sum+=nums[i];}int half_sum = sum/2;int[] dp = new int[99990000];for(int i = 0; i < nums.length; ++i) {for(int j = half_sum; j >= nums[i]; --j) {dp[j] = Math.max(dp[j], dp[j-nums[i]]+nums[i]);}}System.out.print(sum-2*dp[half_sum]);}
}
试题 E: 斐波那契数列最大公约数
斐波那契数列满足 F1 = F2 = 1,从 F3 开始有 Fn = Fn−1+Fn−2 。请你计算GCD(F2020 ,F520),其中GCD(A, B) 表示 A 和 B 的最大公约数。
答案:6765
import java.math.BigInteger;public class Main {public static BigInteger gcd(BigInteger a,BigInteger b) {return b.equals(BigInteger.ZERO) ? a : gcd(b, a.mod(b));}public static void main(String[] args) {BigInteger arr[] = new BigInteger[2021];arr[1] = arr[2] = BigInteger.ONE;for(int i = 3; i <=2020; ++i) {arr[i] = arr[i-1].add(arr[i-2]);}System.out.print(arr[2020].gcd(arr[520]));}
}
试题 F: 分类计数
输入一个字符串,请输出这个字符串包含多少个大写字母,多少个小写字母,多少个数字。
【输入格式】
输入一行包含一个字符串。
【输出格式】
输出三行,每行一个整数,分别表示大写字母、小写字母和数字的个数。
【样例输入】
1+a=Aab
【样例输出】
1
3
1
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner s = new Scanner(System.in);String str = s.next();char[] arr = str.toCharArray();int upper = 0, lower = 0, digit = 0;for(int i = 0; i < arr.length; ++i) {if(arr[i] >= 'A' && arr[i] <= 'Z') {upper++;} else if(arr[i] >= 'a' && arr[i] <= 'z'){lower++;} else if(arr[i] >= '0' && arr[i] <= '9') {digit++;}}System.out.print(upper+"\n"+lower+"\n"+digit);s.close();}
}
试题 G: 八次求和
【问题描述】
给定正整数 n, 求 1^8 + 2^8 + ··· + n^8 mod 123456789 。其中 mod 表示取余。
【输入格式】
输入的第一行包含一个整数 n。
【输出格式】
输出一行,包含一个整数,表示答案。
【样例输入】
2
【样例输出】
257
【评测用例规模与约定】
对于 20% 的评测用例,1 ≤ n ≤ 20。
对于 60% 的评测用例,1 ≤ n ≤ 1000。
对于所有评测用例,1 ≤ n ≤ 1000000。
快速幂运算(算乘方的时间复杂度为logn)+模运算
import java.util.Scanner;public class Main {static int mod = 123456789;public static void main(String[] args) {Scanner s = new Scanner(System.in);int n = s.nextInt();long ans = 0;for(long i = 1; i <= n; ++i) {ans = (ans+quickPow(i,8))%mod; //long型的i防止计算时溢出}System.out.print(ans);s.close();}static long quickPow(long a, int b) {long ans = 1;while(b>0) {if((b&1) == 1) {ans = (ans*a)%mod;}a = (a*a)%mod; //记录位权b >>= 1;}return ans;}
}
BigInteger类
import java.math.BigInteger;
import java.util.Scanner;public class Main {public static final BigInteger mod = BigInteger.valueOf(123456789);public static void main(String[] args) {Scanner s = new Scanner(System.in);int n = s.nextInt();BigInteger sum = BigInteger.ZERO;for(int i = 1; i <= n; ++i) {BigInteger temp = BigInteger.valueOf(i);sum = sum.add(temp.multiply(temp).multiply(temp).multiply(temp).multiply(temp).multiply(temp).multiply(temp).multiply(temp));}System.out.print(sum.mod(mod));s.close();}
}
试题 H: 字符串编码
小明发明了一种给由全大写字母组成的字符串编码的方法。对于每一个大写字母,小明将它转换成它在 26 个英文字母中序号,即 A → 1, B → 2, ... Z →26。这样一个字符串就能被转化成一个数字序列:比如 ABCXYZ → 123242526。
现在给定一个转换后的数字序列,小明想还原出原本的字符串。当然这样的还原有可能存在多个符合条件的字符串。小明希望找出其中字典序最大的字符串。
【输入格式】
一个数字序列。
【输出格式】
一个只包含大写字母的字符串,代表答案
【样例输入】
123242526
【样例输出】
LCXYZ
【评测用例规模与约定】
对于 20% 的评测用例,输入的长度不超过 20。
对于所有评测用例,输入的长度不超过 200000。
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner s = new Scanner(System.in);String seq = s.next();String ans = "";for(int i = 0; i < seq.length(); ++i) {if(i < seq.length()-1 && (seq.charAt(i) == '1' || seq.charAt(i) == '2' && seq.charAt(i+1) <= '6')) {String temp = (seq.charAt(i)-'0'+"")+(seq.charAt(i+1)-'0'+"");ans += (char)('A'+Integer.parseInt(temp)-1);++i;} else {ans += (char)('A'+seq.charAt(i)-'0'-1);}}System.out.print(ans);s.close();}
}
试题 I: BST 插入节点问题
试题 J: 网络分析
小明正在做一个网络实验。他设置了 n 台电脑,称为节点,用于收发和存储数据。
初始时,所有节点都是独立的,不存在任何连接。小明可以通过网线将两个节点连接起来,连接后两个节点就可以互相通信了。两个节点如果存在网线连接,称为相邻。小明有时会测试当时的网络,他会在某个节点发送一条信息,信息会发送到每个相邻的节点,之后这些节点又会转发到自己相邻的节点,直到所有直接或间接相邻的节点都收到了信息。所有发送和接收的节点都会将信息存储下来。一条信息只存储一次。
给出小明连接和测试的过程,请计算出每个节点存储信息的大小。
【输入格式】
输入的第一行包含两个整数 n,m,分别表示节点数量和操作数量。节点从1 至 n 编号。
接下来 m 行,每行三个整数,表示一个操作。
如果操作为 1 a b,表示将节点 a 和节点 b 通过网线连接起来。当 a = b 时,表示连接了一个自环,对网络没有实质影响。
如果操作为 2 p t,表示在节点 p 上发送一条大小为 t 的信息。
【输出格式】
输出一行,包含 n 个整数,相邻整数之间用一个空格分割,依次表示进行
完上述操作后节点 1 至节点 n 上存储信息的大小。
【样例输入】
4 8
1 1 2
2 1 10
2 3 5
1 4 1
2 2 2
1 1 2
1 2 4
2 2 1
【样例输出】
13 13 5 3
【评测用例规模与约定】
对于 30% 的评测用例,1 ≤ n ≤ 20,1 ≤ m ≤ 100。
对于 50% 的评测用例,1 ≤ n ≤ 100,1 ≤ m ≤ 1000。
对于 70% 的评测用例,1 ≤ n ≤ 1000,1 ≤ m ≤ 10000。
对于所有评测用例,1 ≤ n ≤ 10000,1 ≤ m ≤ 100000,1 ≤ t ≤ 100。
第十一届蓝桥杯B组Java试题答案(省赛)相关推荐
- 2016蓝桥杯b组java试题及答案_2016年第七届蓝桥杯java B组省赛试题
2016年第七届蓝桥杯java B组省赛试题 1-3.结果填空 4-5.代码填空 6-7.结果填空 8-10.程序设计 1.煤球数目 (结果填空) 有一堆煤球,堆成三角棱锥形.具体: 第一层放1个, ...
- 第十一届蓝桥杯python组试题解答
文章目录 第十一届蓝桥杯python组试题解答 门牌制作 寻找2020 跑步锻炼 蛇皮走位 排序 成绩统计 单词分析 数字三角形 平面切分 装饰宝珠 第十一届蓝桥杯python组试题解答 门牌制作 这 ...
- 2020年第十一届蓝桥杯JavaC组(十月场)真题解析
相关题目: 2016年第七届蓝桥杯真题解析JavaB组 2016年第七届蓝桥杯真题解析JavaC组 2017年第八届蓝桥杯真题解析JavaB组 2017年第八届蓝桥杯真题解析JavaC组 2018年第 ...
- 蓝桥杯研究生c语言试题答案,蓝桥杯试题_蓝桥杯 你有蓝桥杯历年的试题吗最好有参考答案啊 高职高专组C语言的 有的话麻烦你发给我 万分感谢_淘题吧...
❶ 蓝桥杯 你有蓝桥杯历年的试题吗最好有参考答案啊. 高职高专组C语言的 有的话麻烦你发给我 万分感谢 我有真题.但是老师没给答案 ❷ 为什么蓝桥杯试题集评测老是错 楼上的网友说的很简单,实际上因为每 ...
- 第十一届蓝桥杯 b组
答案:3880 代码: package 第十一届蓝桥杯;public class Main01 {public static void main(String[] args) {int t = 100 ...
- 第十一届蓝桥杯大赛(2020年)软件类省赛第二场 Python大学组 真题+个人解答
试题A:门牌制作 本题总分:5分 [问题描述] 小蓝要为一条街的住户制作门牌号. 这条街一共有2020位住户,门牌号从1到2020编号. 小蓝制作门牌的方法是先制作0到9这几个数字字符,最后根据需要将 ...
- 蓝桥杯大学组python试题_第十届蓝桥杯2019年C/C++ 大学A组省赛试题
2019年蓝桥杯第十届软件类省赛 C/C++ 大 学 A 组 试题 A: 平方和 本题总分:5 分 [问题描述] 小明对数位中含有 2.0.1.9 的数字很感兴趣,在 1 到 40 中这样的数包括 1 ...
- 2015蓝桥杯b组java_Java实现第十一届蓝桥杯JavaB组 省赛真题
试题 A: 指数计算 本题总分:5 分 [问题描述] 7 月1日是建党日,从1921年到2020年, 已经带领中国人民 走过了 99 年. 请计算:7 ^ 2020 mod 1921,其中A mod ...
- 蓝桥杯单片机国赛客观题_第十一届蓝桥杯青少年组Scratch竞赛规则与样题
注意:文末邮福利哦!!! 竞赛时长:Scratch编程组竞赛的选拔赛.省赛及国赛,竞赛时长均为90分钟. 竞赛形式:一人一机,(比赛中 WIFI 网络关闭)选手自带笔记本电脑,电脑上提前预装Scrat ...
最新文章
- Go 分布式学习利器(12)-- Go语言的扩展和复用
- 多元经验模态分解_【Applied Energy最新原创论文】一个基于多元搜索引擎数据的多尺度油价预测方法...
- Qt/Qte/Qtopia三者的区别
- java 常量存储_JAVA 存储空间 寄存器 堆栈 堆 常量存储 非RAM存储
- 662. 二叉树最大宽度
- python random函数_Python随机函数random使用详解
- mysql5.7.17主从_mysql5.7.17主从同步配置
- 使用log4net记录日志到数据库(含有自定义属性)
- ospf避免环路_【网络干货】超全的OSPF路由协议技术汇总解析
- 调用html模板帝国cms,帝国CMS模板制作中常用的调用变量简单整理
- 常用Python文件
- 各个浏览器显示版本(IE,火狐)
- MySql中的count函数
- 【渝粤题库】陕西师范大学180213《消费经济学》作业 (高起本)
- 用java做出长方体的表面积_Android Studio实现长方体表面积计算器
- 关系网络lbs的应用_基于智能移动端的LBS+地图应用可以 说是LBS营销的核心模式,也是LBS营销的基础...
- qt 使用msvc 打断点无反应解决办法
- 中科院信工所雏鹰团队在SemEval上大显神威
- 口碑营销:如何让传统行业的电商引发口碑效应并营销
- 三页搞定GB2818/SIP/RTP、PS封装