蓝桥杯历年真题及解析.

试题 A: 立方和
本题总分:5 分
【问题描述】
小明对数位中含有 2、0、1、9 的数字很感兴趣,在 1 到 40 中这样的数包
括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574,平方和是 14362,
立方和是 400816。
请问,在 1 到 2019 中,所有这样的数的立方和是多少?
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一
个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

package JG2019;
//试题 A: 立方和
import java.math.BigInteger;public class A {public static boolean check(int i){int x=0;while(i>0){x=i%10;i/=10;if(x==2||x==1||x==0||x==9){return true;}}return false;}public static void main(String[] args) {BigInteger sum=new BigInteger("0");for(int i=0;i<=2019;i++){if(check(i)){BigInteger ii=new BigInteger(String .valueOf(i));sum=sum.add(ii.multiply(ii).multiply(ii));}}System.out.println(sum);}
}

试题 B: 字串数字
本题总分:5 分
【问题描述】
小明用字母 A 对应数字 1,B 对应 2,以此类推,用 Z 对应 26。对于 27
以上的数字,小明用两位或更长位的字符串来对应,例如 AA 对应 27,AB 对 应 28,AZ 对应 52,LQ 对应 329。
请问 LANQIAO 对应的数字是多少?
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一
个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

package JG2019;
//试题 B: 字串数字
import java.math.BigInteger;public class B {public static void main(String[] args) {String s="lanqiao";char c[]=s.toCharArray();BigInteger ans=new BigInteger("0");BigInteger b=new BigInteger("1");BigInteger bb=new BigInteger("26");for(int i=c.length-1;i>=0;i--){BigInteger x=new BigInteger(String.valueOf(c[i]-'a'+1));ans=ans.add(x.multiply(b));b=b.multiply(bb);}System.out.println(ans);}
}

试题 C: 质数
本题总分:10 分
【问题描述】
我们知道第一个质数是 2、第二个质数是 3、第三个质数是 5……请你计算
第 2019 个质数是多少?
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一
个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

package JG2019;
//试题 C: 质数
public class C{public static boolean check(int n){for(int i=2;i<=Math.sqrt(n);i++){if((n/i)*i==n){return false;}}return true;}public static void main(String[] args) {int arr[]=new int [2019];boolean is[]=new boolean[100000];int p=0;for(int i=2;i<is.length;i++){if(is[i])continue;else if(check(i)){arr[p]=i;p++;if(p==2019)break;for(int j=i;j<is.length;j+=i){is[j]=true;}}}System.out.println(arr[2018]);}
}

试题 D: 最短路
本题总分:10 分
【问题描述】
如下图所示,G 是一个无向图,其中蓝色边的长度是 1、橘色边的长度是
2、绿色边的长度是 3。
则从 A 到 S 的最短距离是多少?
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一
个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。、

package JG2019;
//试题 D: 最短路
public class D {public static void main(String[] args) {System.out.println(3 * 2);}
}

试题 E: RSA 解密
本题总分:15 分
【问题描述】
RSA 是一种经典的加密算法。它的基本加密过程如下。
首先生成两个质数 p, q,令 n = p · q,设 d 与 (p p 1) · (q q 1) 互质,则可
找到 e 使得 d · e 除 (p p 1) · (q q 1) 的余数为 1。 n, d, e 组成了私钥,n, d 组成了公钥。
当使用公钥加密一个整数 X 时(小于 n),计算 C = Xd mod n,则 C 是加
密后的密文。
当收到密文 C 时,可使用私钥解开,计算公式为 X = Ce mod n。
例如,当 p = 5, q = 11, d = 3 时,n = 55, e = 27。
若加密数字 24,得 243 mod 55 = 19。
解密数字 19,得 1927 mod 55 = 24。
现在你知道公钥中 n = 1001733993063167141, d = 212353,同时你截获了
别人发送的密文 C = 20190324,请问,原文是多少?
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一
个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

package JG2019;
//试题 E: RSA 解密
public class E {public static long p, q, m, x, y, n = 1001733993063167141L;;public static void main(String[] args) {long d = 212353L;long c = 20190324L;p = 2;while (true) {if ((n / p) * p == n) {q = n / p;break;}p++;}m = (p - 1) * (q - 1);long[] ans = gcd(d, m);ans[1] = (ans[1] + m) % m;System.out.println(qpow(c, ans[1]));}public static long[] gcd(long a, long b) {long ans;long[] result = new long[3];if (b == 0) {result[0] = a;result[1] = 1;result[2] = 0;return result;}long[] temp = gcd(b, a % b);ans = temp[0];result[0] = ans;result[1] = temp[2];result[2] = temp[1] - (a / b) * temp[2];return result;}public static long qpow(long a, long b) {long ans = 1;while (b > 0) {if (b % 2 == 1)ans = qmul(ans, a);a = qmul(a, a);b /= 2;}return ans;}public static long qmul(long a, long b) {long ans = 0;while (b > 0) {if (b % 2 == 1) {ans += a;ans %= n;}a *= 2;a %= n;b /= 2;}return ans;}
}

试题 F: Fibonacci 数列与黄金分割
时间限制: 1.0s 内存限制: 512.0MB 本题总分:15 分
【问题描述】
Fibonacci 数列是非常著名的数列:
F[1] = 1, F[2] = 1,
对于 i > 3,F[i] = F[i i 1] + F[i i 2]
Fibonacci 数列有一个特殊的性质,前一项与后一项的比值,F[i]/F[i + 1],
会趋近于黄金分割。
为了验证这一性质,给定正整数 N,请你计算 F[N]/F[N + 1],并保留 8 位
小数。
【输入格式】
一个正整数 N。(1 ≤ N ≤ 2000000000)
【输出格式】
F[N]/F[N + 1]。答案保留 8 位小数。
【样例输入】
2
【样例输出】
0.50000000

package JG2019;
//试题 F: Fibonacci 数列与黄金分割
import java.util.Scanner;public class F {public static void main(String[] args) {Scanner sc=new Scanner(System.in);int n=sc.nextInt();int arr[]=new int[40];arr[1]=1;arr[2]=1;for(int i=3;i<40;i++ ){arr[i]=arr[i-1]+arr[i-2];}if(n<39){System.out.println(String.format("%.8f",arr[n]/(double)arr[n+1]));}else{System.out.println(String.format("%.8f",arr[38]/(double)arr[39]));}}
}

试题 G: 扫地机器人
时间限制: 1.0s 内存限制: 512.0MB 本题总分:20 分
【问题描述】
小明公司的办公区有一条长长的走廊,由 N 个方格区域组成,如下图所
示。
走廊内部署了 K 台扫地机器人,其中第 i 台在第 Ai 个方格区域中。
已知扫地机器人每分钟可以移动到左右相邻的方格中,并将该区域清扫干
净。
请你编写一个程序,计算每台机器人的清扫路线,使得

  1. 它们最终都返回出发方格,
  2. 每个方格区域都至少被清扫一遍,
  3. 从机器人开始行动到最后一台机器人归位花费的时间最少。
    注意多台机器人可以同时清扫同一方块区域,它们不会互相影响。
    输出最少花费的时间。
    在上图所示的例子中,最少花费时间是 6。第一台路线:2-1-2-3-4-3-2,清
    扫了 1、2、3、4 号区域。第二台路线 5-6-7-6-5,清扫了 5、6、7。第三台路线
    10-9-8-9-10,清扫了 8、9 和 10。
    【输入格式】
    第一行包含两个整数 N 和 K。
    接下来 K 行,每行一个整数 Ai。
    试题 G: 扫地机器人 8
    第十届蓝桥杯大赛软件类省赛 Java 研究生组
    【输出格式】
    输出一个整数表示答案。
    【样例输入】
    10 3
    52
    10
    【样例输出】
    6
    【评测用例规模与约定】
    对于 30% 的评测用例,1 ≤ K < N ≤ 10。
    对于 60% 的评测用例,1 ≤ K < N ≤ 1000。
    对于所有评测用例,1 ≤ K < N ≤ 100000,1 ≤ Ai ≤ N。
package JG2019;
//************
//试题 G: 扫地机器人
import java.util.Arrays;
import java.util.Scanner;public class G {public static int n;public static int arr[];public static int ans=Integer.MAX_VALUE;public static void main(String[] args) {Scanner sc=new Scanner (System.in);n=sc.nextInt();int k=sc.nextInt();arr=new int[k+1];for(int i=1;i<=k;i++){arr[i]=sc.nextInt();}Arrays.sort(arr);System.out.println(Arrays.toString(arr));dfs(1,0,0);System.out.println((ans-1)*2);}public static void dfs(int k,int max,int up){if(k==1){dfs(k+1,0,arr[1]);}else if(k==arr.length){max=max>(up+n-arr[k-1])?max:(up+n-arr[k-1]);ans=max>ans?ans:max;}else {if(arr[k]-arr[k-1]==0){dfs(k+1,max,up);}elsefor(int i=0;i<(arr[k]-arr[k-1]);i++){dfs(k+1,max>(up+i)?max:(up+i),arr[k]-arr[k-1]-i);}}}
}

试题 H: 修改数组
时间限制: 1.0s 内存限制: 512.0MB 本题总分:20 分
【问题描述】
给定一个长度为 N 的数组 A = [A1, A2, · · · AN],数组中有可能有重复出现
的整数。
现在小明要按以下方法将其修改为没有重复整数的数组。小明会依次修改
A2, A3, · · · , AN。
当修改 Ai 时,小明会检查 Ai 是否在 A1 ∼ Aii1 中出现过。如果出现过,则
小明会给 Ai 加上 1 ;如果新的 Ai 仍在之前出现过,小明会持续给 Ai 加 1 ,直
到 Ai 没有在 A1 ∼ Aii1 中出现过。
当 AN 也经过上述修改之后,显然 A 数组中就没有重复的整数了。
现在给定初始的 A 数组,请你计算出最终的 A 数组。
【输入格式】
第一行包含一个整数 N。
第二行包含 N 个整数 A1, A2, · · · , AN 。
【输出格式】
输出 N 个整数,依次是最终的 A1, A2, · · · , AN。
【样例输入】
5
2 1 1 3 4
【样例输出】
2 1 3 4 5
试题 H: 修改数组 10
第十届蓝桥杯大赛软件类省赛 Java 研究生组
【评测用例规模与约定】
对于 80% 的评测用例,1 ≤ N ≤ 10000。
对于所有评测用例,1 ≤ N ≤ 100000,1 ≤ Ai ≤ 1000000。

package JG2019;
//试题 H: 修改数组
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.StreamTokenizer;public class H {public static void main(String[] args) throws IOException {StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));in.nextToken();int n=(int) in.nval;int arr[]=new int [n];int i=0;int max=Integer.MIN_VALUE,min=Integer.MAX_VALUE;while (i<n) {in.nextToken();arr[i]= (int) in.nval;max=arr[i]>max?arr[i]:max;min=arr[i]<min?arr[i]:min;i++;}boolean buf[]=new boolean[max-min+1];int count=1;for(i=0;i<n;i++){if(!buf[arr[i]-min]){buf[arr[i]-min]=true;}else{boolean ok=false;for(int j=arr[i]-min;j<=max-min;j++){if(!buf[j]){buf[j]=true;arr[i]=j+min;ok=true;break;}}if(!ok){arr[i]=max+count;count++;}}}for(i=0;i<n;i++){out.print(arr[i]+" ");}out.flush();//刷新  }
}

试题 I: 组合数问题
时间限制: 1.0s 内存限制: 512.0MB 本题总分:25 分
【问题描述】
给 n, m, k,求有多少对 (i, j) 满足 1 ≤ i ≤ n, 0 ≤ j ≤ min(i, m) 且 Cji ≡
0(mod k),k 是质数。其中 Cji 是组合数,表示从 i 个不同的数中选出 j 个组成
一个集合的方案数。
【输入格式】
第一行两个数 t, k,其中 t 代表该测试点包含 t 组询问,k 的意思与上文中
相同。
接下来 t 行每行两个整数 n, m,表示一组询问。
【输出格式】
输出 t 行,每行一个整数表示对应的答案。由于答案可能很大,请输出答
案除以 109 + 7 的余数。
【样例输入】
1 2
3 3
【样例输出】
1
【样例说明】
在所有可能的情况中,只有 C12 = 2 是 2 的倍数。
【样例输入】
2 5
试题I: 组合数问题 12
第十届蓝桥杯大赛软件类省赛 Java 研究生组
4 5
6 7
【样例输出】
07
【样例输入】
3 23
23333333 23333333
233333333 233333333
2333333333 2333333333
【样例输出】
851883128
959557926
680723120
【数据规模和约定】
对于所有评测用例,1 ≤ k ≤ 108, 1 ≤ t ≤ 105, 1 ≤ n, m ≤ 1018,且 k 是质数。
评测时将使用 10 个评测用例测试你的程序,每个评测用例的限制如下:
评测用例编号 t n, m k 1, 2 ≤ 1 ≤ 2000 ≤ 100
3, 4 ≤ 105 ≤ 2000 ≤ 100
5, 6, 7 ≤ 100 ≤ 1018 ≤ 100
8, 9, 10 ≤ 105 ≤ 1018 ≤ 108
试题 I: 组合数问题 13
第十届蓝桥杯大赛软件类省赛 Java 研究生组
试题 J: 空间跳跃
时间限制: 5.0s 内存限制: 512.0MB 本题总分:25 分
【题目背景】
在游戏《星际争霸 II》中,战列巡航舰作为人类的终极作战武器,在后期
以及一些中期战术中发挥着空中堡垒的作用,其 “战术跳跃” 技能能让其在游戏
中期在敌军基地上空造成打击之后在血量较低时撤离,进行无战损骚扰,在人
类 vs 异虫对抗中经常用来压制异虫中期的发展。
【问题描述】
你在玩一个游戏,游戏中有 n 个地点和 m 条单向时空航道。每条时空航道
形如 (u, v,w, x),其中 u,v 表示这条时空航道的起点终点,w 表示通过这条航
道需要的时间(注意这个时间是现实当中游戏者的时间也是游戏内的时间),x
表示这条航道使用的频繁程度。时空航道不会成环,但可能会有两条航道的起
点相同同时终点也相同。游戏开始的时候,你的战列巡航舰到达了地点 1,每
当你到达一个地点的时候,战舰的电脑会按照每个起点为该地点的时空航道的
频繁程度随机选择一个航道并花费 w 单位时间到达该航道的终点。具体来说,
对于一个时间点 u,假如有 k 个起点为该地点的时空航道,他们的频繁程度分
别为 x1, x2, x3, · · · xk,那么选择第 i 个航道的概率就是 xi ∑kj=1 x j
。你的目的是在 L
单位游戏时间内到达一个没有任何以该地点为起点的时空航道的地点。当然你
可以在到达某一个地点时重新开始游戏,如果你重新开始这个游戏,你就能回
到游戏开始的那一刻(即 1 号地点)并重置游戏内的时间(即你又可以有 L 单
位的时间去跳跃了),你也可以在没有任何以该地点为起点的地点重新开始,且
无次数限制。你需要最小化你在现实中花费的时间。当然在你运气足够好的情
况下,你一定可以达成游戏目标。
保证一定有至少一条以 1 号地点为起点的航道。
请阅读样例以更清晰地理解题意。
试题 J: 空间跳跃 14
第十届蓝桥杯大赛软件类省赛Java研究生组
【输入格式】
第一行三个正整数 n,m,L。
接下来 m 行,每行四个正整数 u,v,w,x。
【输出格式】
一行一个浮点数表示答案,令你的答案为 a,标准答案为 b,如果满足
|aab|
max(1,b) ≤ 10쑘9(即绝对误差或者相对误差不超过 10唈9)即为正确。
【样例输入】
3 2 3
1 2 2 1
1 2 4 1
【样例输出】
6
【样例解释】
设答案为 Ans。 则 Ans = 12 × 2 + 12 × (Ans + 4)。
即有一半的可能性你可以直接完成游戏,否则你需要重新开始并再来一次。
解得 Ans = 6。
【样例输入】
4 4 7
1 2 2 7
1 3 4 6
2 4 6 3
3 4 3 2
试题J: 空间跳跃 15
第十届蓝桥杯大赛软件类省赛 Java 研究生组
【样例输出】
9.3333333333
【样例输入】
5 7 12
1 3 5 5
4 5 7 9
2 5 8 1
3 5 4 4
1 2 3 3
3 4 3 1
2 4 2 5
【样例输出】
11.3571428571
【样例输入】
见文件jump4.in。
【样例输出】
见文件jump4.ans。
【数据规模与约定】
对于所有评测用例,2 ≤ n ≤ 100,1 ≤ m ≤ 200,w, x ≤ 100,0 ≤ L ≤ 109,
保证输入的图无环,答案不超过 109。
评测时将使用 25 个评测用例测试你的程序,每个评测用例的限制如下:
试题 J: 空间跳跃 16
第十届蓝桥杯大赛软件类省赛 Java 研究生组
评测用例编号 n m w 特殊性质
1 ≤ 3 ≤ 3 ≤ 3 所有的时空航道起点都为 1 号地点
2 ≤ 3 ≤ 3 ≤ 100 无
3,4 ≤ 5 ≤ 4 = 1 无 5 ≤ 5 ≤ 8 = 1 无 6 ≤ 5 ≤ 8 ≤ 100 无
7,8,9,10 ≤ 20 = n n 1 ≤ 100 对于地点 u (2 ≤ u ≤ n) 有一条时空
航道 (v, u) 满足 1 ≤ v ≤ u u 1
11,12,13 ≤ 100 = n n 1 ≤ 100 对于地点 u (2 ≤ u ≤ n) 有一条时空
航道 (v, u) 满足 1 ≤ v ≤ u u 1
14,15 ≤ 100 = n n 1 ≤ 100 所有的时空航道起点都为 1 号地点
16,17 = 2 ≤ 200 ≤ 5 所有的时空航道起点都为 1 号地点
18 = 2 ≤ 200 ≤ 100 所有的时空航道起点都为 1 号地点
19,20,21 ≤ 20 ≤ 200 ≤ 100 无
22,23,24,25 ≤ 20 ≤ 200 ≤ 100 无

2019第十届蓝桥杯JAVA G组题解相关推荐

  1. 2019 第十届蓝桥杯 Java B组 赛后总结

    我是大三第一次参加蓝桥杯,也是最后一次参加了(大四应该没时间了).我参加的是java b组,总体来说赛程挺顺利的,第一次参赛觉得四个小时有点不够哈哈哈.不过蓝桥杯这个比赛我是带着试一下的心态去参加的. ...

  2. 2019第十届蓝桥杯C++B组题解(赛后重写的,不确保答案正确性,仅供参考)

    先说一下这次的感受吧,我们考场比较乱,开始比赛了,还有的电脑有故障,(向这些人发出同情),第一次认真参加比赛,真正比赛的时候感觉没有那么正式,很乱,各种小问题,(例如博主就没找到题目在哪里,找到后又不 ...

  3. 2019第十届蓝桥杯JAVA B组题目分析

    目录 A:组队(难度:★★★) 分析: 代码 B:不同字串(难度:★) 分析: 代码: C:数列求值(难度:★) 分析: 代码: D:数的分解:(难度:★★) 分析: 代码: E:迷宫:(难度:★★★ ...

  4. 蓝桥杯java 大纲,2019 第十届蓝桥杯Java省赛B组个人总结

    前言 19年的这场蓝桥杯,对我自己的打击挺大的,以至于时隔多个月之后第十一届蓝桥杯要开始报名的时候,我才敢面对他.报名第十届蓝桥杯的时候我大二,自我感觉学的不错,但事实并非如此,当入了那句话,学术不精 ...

  5. 2019第十届蓝桥杯c++A组省赛试题及个人解法

    第十届蓝桥杯2019年C/C++ 大学A组省赛试题 2019年蓝桥杯第十届软件类省赛# C/C++ 大 学 A 组# 试题 A: 平方和#(暴力) 本题总分:5 分 [问题描述] 小明对数位中含有 2 ...

  6. 第十届蓝桥杯java B组—试题D 数的分解

    文章目录 1.大赛题目 2.文字描述如下 3.代码实例 4.答案 1.大赛题目 图片如下: 2.文字描述如下 试题 D: 数的分解 [问题描述] 把 2019 分解成 3 个各不相同的正整数之和,并且 ...

  7. 第十届蓝桥杯java B组—试题I 后缀表达式

    文章目录 1.大赛题目 2.文字描述 3.代码实例 4.答案 1.大赛题目 图片如下 2.文字描述 试题 I: 后缀表达式 [问题描述] 给定 N 个加号.M 个减号以及 N + M + 1 个整数 ...

  8. 第十届蓝桥杯java B组—试题F 特别数的和

    文章目录 1.大赛题目 2.文字描述如下 3.代码实例 1.大赛题目 图片如下 2.文字描述如下 试题 F: 特别数的和 [问题描述] 小明对数位中含有 2.0.1.9 的数字很感兴趣(不包括前导 0 ...

  9. 第十届蓝桥杯java B组—试题C 数列求值

    文章目录 1.大赛题目 2.文字描述如下 3.详细讲解 4.答案 1.大赛题目 1.图片如下: 2.文字描述如下 试题 C: 数列求值 [问题描述] 给定数列 1, 1, 1, 3, 5, 9, 17 ...

最新文章

  1. POJ - 2516 Minimum Cost 最小费用最大流
  2. 总结MYSQL的优化
  3. Redis缓存穿透、击穿、雪崩及主从复制
  4. 二级考试java模拟考试_2017年计算机二级考试Java模拟试题及答案
  5. VMware14.0 安装 CentOS7.2
  6. WPF ----在UserControl的xaml里绑定依赖属性
  7. 如何通过文件流将很多图片存入SD卡,而不是自己内存
  8. 杀毒软件的一些杀毒原理
  9. 腾讯云通信IM集成踩坑记
  10. mysql 1548_MySQL创建函数由于Error 1548失败
  11. elementUI实现table表头展示上、下角标
  12. 简易爬虫-利用Python爬虫爬取圣墟小说到本地
  13. python学习笔记(七):运算符和流程控制
  14. 关于单片机代码的风格
  15. 2022起重机司机(限桥式起重机)上岗证题目及在线模拟考试
  16. Mybatis个人基础知识总结
  17. R语言 变量的操作函数
  18. 【EXCEL简单考勤】
  19. python做二元线性回归_python上的二元线性回归
  20. 还有多少“天价”滞纳金与民争利

热门文章

  1. java mysql 订单表设计
  2. 第9周 Python计算生态概览
  3. 谈谈数据决策平台搭建的必要性
  4. 被小伙伴要出来的文章[0]:英语学习
  5. rails 评论/回复插件 acts_as_commentable_with_threading
  6. 【noi.ac #596】road
  7. EasyClick iOS脚本免越狱免硬件实现方案_可云控大量部署
  8. Android 控件右上角角标的实现方案
  9. .ts 音频文件转换成 .mp3 文件
  10. Banner本地,网络,图片轮播