2020年蓝桥杯Java B组第二场题目+部分个人解析

server/2025/3/4 17:58:06/

#A:门牌制作 624

解一:

public static void main(String[] args) {int count=0;for(int i=1;i<=2020;i++) {int n=i;while(n>0) {if(n%10==2) {count++;}n/=10;}}System.out.println(count);}

解二: 

public static void main(String[] args) {int cnt=0;for (int i = 1; i <= 2020; i++) {String s=i+"";for (int j = 0; j < s.length(); j++) {if(s.charAt(j)=='2') cnt++;}}System.out.println(cnt);}

#寻找 2020  16520

public static void main(String[] args) {// TODO Auto-generated method stubScanner scanner = new Scanner(System.in);char[][] ch = new char[300][300];long sum = 0 ;for (int i = 0; i < ch.length; i++) {ch[i] = scanner.nextLine().toCharArray();}for (int i = 0; i < ch.length; i++) {for (int j = 0; j < ch[0].length; j++) {if (j+3<ch[0].length) {if (ch[i][j]=='2' && ch[i][j+1]=='0' &&ch[i][j+2]=='2' &&ch[i][j+3]=='0' ) {sum++;}}if (i+3<ch.length) {if (ch[i][j]=='2' && ch[i+1][j]=='0' &&ch[i+2][j]=='2' &&ch[i+3][j]=='0') {sum++;}}if (i+3<ch.length && j+3<ch[0].length) {if (ch[i][j]=='2' && ch[i+1][j+1]=='0' &&ch[i+2][j+2]=='2' &&ch[i+3][j+3]=='0') {sum++;}}}}System.out.println(sum);//16520}


#C: 蛇形填数 761

解题思路:先手写几行就可以发现,第一行第一列的值为1,第二行第二列的值为5.第三行第三列的值为13,第四行第四列的值为25,仔细观察就可以发现第i行第i列的值为  a = a + (i*4)。

public static void main(String[] args) {// TODO Auto-generated method stubint sum = 1;for (int i = 0; i < 20; i++) {sum = sum + (i * 4);}System.out.println(sum);}

#D:七段码dfs)  80


  解一:

static int[][] list = new int[][]{{0,1,0,0,0,1,0},{1,0,1,0,0,0,1},{0,1,0,1,0,0,1},{0,0,1,0,1,0,0},{0,0,0,1,0,1,1},{1,0,0,0,1,0,1},{0,1,1,0,1,1,0},};static Set<Set<Integer>> set = new HashSet<>();static boolean[] booleans = new boolean[7];public static void main(String[] args) {Scanner sc = new Scanner(System.in);ArrayList<Integer> arr = new ArrayList<>();for (int i = 0 ; i < 7 ; i++){booleans[i] = true;arr.add(i);set.add(new HashSet<>(arr));dfs(arr);booleans[i] = false;arr.remove(arr.size()-1);}System.out.println(set.size());}private static void dfs(ArrayList<Integer> arr) {set.add(new HashSet<>(arr));int last = arr.get(arr.size()-1);for (int i = 0 ; i < list[last].length ; i++){if (list[last][i] == 1 && !booleans[i]){booleans[i] = true;arr.add(i);dfs(arr);booleans[i] = false;arr.remove(arr.size()-1);}}}

  解二:

public static void main(String[] args) {creatGraph();dfs(1);System.out.println(count);}private static void creatGraph() {arr[1][2] = arr[1][6] = 1;arr[2][1] = arr[2][7] = arr[2][3] = 1;arr[3][2] = arr[3][4] = arr[3][7] = 1;arr[4][3] = arr[4][5] = 1;arr[5][4] = arr[5][6] = arr[5][7] = 1;arr[6][1] = arr[6][5] = arr[6][7] = 1;}private static void dfs(int k) {if (k > 7) {check();int q = 0;for (int i = 1; i <= 7; i++) {if (v[i] && res[i] == i) {q++;}}if (q == 1)count++;return;}v[k] = true;dfs(k + 1);v[k] = false;dfs(k + 1);}private static void check() {for (int i = 1; i <= 7; i++) {res[i] = i;}for (int i = 1; i <= 7; i++) {for (int j = 1; j <= 7; j++) {if (arr[i][j] != 0 && v[i] && v[j]) {int fx = find(i), fy = find(j);if (fx != fy) {res[fx] = fy;}}}}}private static int find(int p) {if (res[p] == p) {return p;} else {res[p] = find(res[p]);return res[p];}}

解三:

 static ArrayList<Integer>[] list;static HashSet<Integer> set = new HashSet<Integer>();public static void main(String[] args) {init();for(int i=0; i<7; ++i) {vis[0] = i;set.add(1<<i);dfs(1, 1<<i);}System.out.println(set.size());}static int[] vis = new int[7];public static void dfs(int n, int v) {for(int i=0; i<n; ++i) {for(int t : list[vis[i]]) {int p = v|(1<<t);if(!set.contains(p)) {set.add(p);vis[n] = t;dfs(n+1, p);}}}}public static void init() {//存储七位数的关系 list = new ArrayList[7];for(int i=0; i<7; ++i) {list[i] = new ArrayList<Integer>();}list[0].add(1);list[0].add(5);list[1].add(0);list[1].add(6);list[1].add(2);list[2].add(1);list[2].add(3);list[2].add(6);list[3].add(2);list[3].add(4);list[4].add(3);list[4].add(5);list[4].add(6);list[5].add(0);list[5].add(4);list[5].add(6);list[6].add(1);list[6].add(2);list[6].add(4);list[6].add(5);}

#E:排序  jonmlkihgfedcba

--------------------------------------------------------------------

--------------------------------------------------------------------

#F:成绩分析模拟、暴力)

public static void main(String[] args) {Scanner sc=new Scanner(System.in);int n=sc.nextInt();int a,max=0,min=100;double sum=0;for(int i=0;i<n;i++) {a=sc.nextInt();if(max<a) {max=a;}if(min>a) {min=a;}sum+=a;}System.out.println(max);System.out.println(min);System.out.printf("%.2f",sum/n);}


#G:单词分析字符串)

 

public static void main(String[] args) {Scanner sc=new Scanner(System.in);String str=sc.next();int[]arr =new int[26];int a=0;;char ch = 'a';for(int i=0;i<str.length();i++) {arr[str.charAt(i)-97]++;if(arr[str.charAt(i)-97]>a) {a=arr[str.charAt(i)-97];ch=str.charAt(i);}else if(arr[str.charAt(i)-97]==a) {if(ch-str.charAt(i)>0) {a=arr[str.charAt(i)-97];ch=str.charAt(i);}}}System.out.println(ch); System.out.println(a);}

#H: 数字三角形DP)


   

 public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int n=scanner.nextInt();int [][]arr=new int[n+1][n+1];for (int i = 1; i < arr.length; i++) {for (int j = 1; j <= i; j++) {int s=scanner.nextInt();arr[i][j]=s+Math.max(arr[i-1][j-1],arr[i-1][j]);}}System.out.println(n%2==1?arr[n][n/2+1]:Math.max(arr[n][n/2],arr[n][n/2+1]));}}

  解二:

  public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();//base case : f(1) = a1int[][] dp = new int[n][n+1];int temp = scanner.nextInt();dp[0][0] = temp;int max = Integer.MIN_VALUE;for (int i = 2; i <= n; i++) {for (int j = 0; j < i; j++) {temp = scanner.nextInt();if (j != 0 && j != (i-1)) {dp[i-1][j] = Integer.max(dp[i-2][j-1],dp[i-1][j])+temp;}else if (j == 0) {dp[i-1][j] = dp[i-2][j]+temp;}else {dp[i-1][j] = dp[i-2][j-1]+temp;}if(dp[i-1][j] > max)max = dp[i-1][j];}dp[i-1][n] = max;max = Integer.MIN_VALUE;}System.out.println(dp[n-1][n]);scanner.close();}

# I:子串分值和规律题吧)

 

解一:   

 public static void main(String[] args) {Scanner sc = new Scanner(System.in);int[] arr = new int[26];long res = 0;for(int i = 0;i < 26;i++){arr[i] = -1;}String s = sc.nextLine();String[] str = s.split("");int willIndex = str.length;for(int i = 0;i < str.length;i++){int lastIndex = arr[str[i].charAt(0)-97];res += (long)(i - lastIndex)*(willIndex - i);arr[str[i].charAt(0)-97] = i;}System.out.println(res);}

  解二:

public static void main(String[] args) {Scanner sc = new Scanner(System.in);String str = sc.next();int[] nums = new int[26];long res = 0;long n = str.length();str = "0"+str;for (int i = 1; i < str.length(); i++) {res += (i - nums[str.charAt(i) - 'a']) * (n - i+1);nums[str.charAt(i) - 'a'] = i;}System.out.println(res);}

#J: 装饰珠

 


http://www.ppmy.cn/server/171921.html

相关文章

tableau之雷达图和凹凸图

一、雷达图 概念 雷达图&#xff08;Radar Chart&#xff09;&#xff0c;也称为蜘蛛网图&#xff08;Spider Chart&#xff09;或星状图&#xff08;Star Chart&#xff09;&#xff0c;是一种用于多变量数据可视化的图表。它以中心点向外辐射的轴线表示不同的变量&#xff…

DeepSeek 助力 Vue 开发:打造丝滑的分割线(Divider)

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 Deep…

国自然面上项目|基于多模态MR影像的胶质母细胞瘤高危区域定位及预后预测研究|基金申请·25-02-28

小罗碎碎念 今天和大家分享一个面上项目&#xff0c;执行年限为2019.01&#xff5e;2022.12&#xff0c;直接费用为57万元。 胶质母细胞瘤&#xff08;GBM&#xff09;预后差且差异大&#xff0c;异质性是重要因素&#xff0c;临床手段难评价。影像组学为异质性研究提供方法&am…

《每天读一个JDK源码》之HashMap解读

&#x1f4cc;《每天读一个JDK源码》之HashMap解读 &#x1f517;源码定位&#xff1a;java.util.HashMap&#xff08;建议IDE对照阅读&#xff09; 今天我们来破解Java集合框架中最精妙的艺术品——HashMap&#xff01;它不仅是面试必考题&#xff08;出现率99%&#xff09;&…

单道与多道系统:操作系统进化的关键跃迁

单道与多道系统:操作系统进化的关键跃迁 一、从食堂打饭看系统演进 想象两个不同的食堂场景: 单道食堂:所有学生排成一列,厨师逐个处理"红烧肉→清蒸鱼→蛋炒饭"的请求,即使鱼还没下锅也要等待多道食堂:开设五个窗口,炸鸡窗口在腌制鸡肉时,汤品窗口已经开始…

Oracle 数据库基础入门(二):深入理解表的约束

在 Oracle 数据库的学习进程中&#xff0c;表的约束是构建健壮、准确且高效数据库的关键要素。约束如同数据库的 “规则守护者”&#xff0c;它通过对数据的限制&#xff0c;确保了数据的完整性和一致性&#xff0c;就如同交通规则保障道路上车辆行驶的有序性一样。对于 Java 全…

java23种设计模式-中介者模式

中介者模式&#xff08;Mediator Pattern&#xff09;学习笔记 编程相关书籍分享&#xff1a;https://blog.csdn.net/weixin_47763579/article/details/145855793 DeepSeek使用技巧pdf资料分享&#xff1a;https://blog.csdn.net/weixin_47763579/article/details/145884039 1.…

大夏龙雀科技4G Cat1 CT511-AT0 MQTT联网实战教程

https://www.dong-blog.fun/post/1960 大夏龙雀科技4G Cat1 CT511-AT0 MQTT联网实战教程 本文将详细介绍如何搭建自己的MQTT Broker&#xff0c;并使用大夏龙雀科技4G Cat1 CT511-AT0模块进行MQTT联网实战。通过本教程&#xff0c;您将学会如何配置模块、连接MQTT服务器、订阅…