蓝桥杯历年真题及解析.
目录:
A:ASC(难度:★)
题目:
分析:
我感觉这题在羞辱我(手动狗头
76
代码:
public class AASC {
public static void main(String[] args) {
System.out.println((int)'L');
}
}
B:空间(难度:★)
题目:
分析:
手算,一位=1bit,1B=8bit
64 * 1024 * 1024;
67108864
代码:
public class B空间 {
public static void main(String[] args) {
System.out.println(64 * 1024 * 1024);
}
}
C:卡片(难度:★★★)
题目:
分析:
从1往后枚举即可。
3181
代码:
public class C卡片 {
public static int arr[]=new int[10];
public static boolean del(int x){
while(x!=0){
arr[x%10]--;
if(arr[x%10]<0)return false;
x/=10;
}
return true;
}
public static void main(String[] args) {
for(int i=0;i<10;i++)arr[i]=2021;
for(int i=1;i<5000;i++){
if(!del(i)){
System.out.println(i-1);
break;
}
}
}
}
D:相乘(难度:★★)
题目:
分析:
17812964
代码:
public class D相乘 {
public static void main(String[] args) {
for(int i=1;i<=1000000007;i++){
if(2021*(long)i%1000000007==999999999){
System.out.println(i);
}
}
}
}
E:路径(难度:★★★)
题目:
分析:
DP思想,从2开始到2021,每个位置分别从他之前的21个位置走过来,
对21个数据求最小值即可。
10266837
代码:
F:时间显示(难度:★★)
题目:
分析:
按照题目所说模拟过程即可。
代码:
import java.util.Scanner;
public class F时间显示 {
public static String tos(long x){
if(x<10)return "0"+x;
else return ""+x;
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
long n=sc.nextLong();
n%=(1000*60*60*24);
n/=1000;
System.out.println(tos(n/3600)+":"+tos((n/60)%60)+":"+tos(n%60));
}
}
G:最少砝码(难度:★★★★)
题目:
分析:
手动枚举发现符合三进制规律,所以直接三进制计算即可。
代码:
import java.util.Scanner;
public class G最少砝码 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
long x=sc.nextLong();
long sum=1,cur=1;
while(sum<x){
sum+=Math.pow(3, cur);
cur++;
}
System.out.println(cur);
}
}
H:杨辉三角形(难度:★★★★)
题目:
分析:
暴力枚举骗分?
代码:
I:左孩子右兄弟(难度:★★★★★)
题目:
分析:
将所有数据装入数组,有并查集思想,
每次合并树,计算树高,最终根节点的高度即为答案。
不用并查集也可以做,多个数组和循环体即可。
代码:
I:双向排序(难度:★★★★★)
题目:
分析:
暴力CMP?