当前位置:   article > 正文

蓝桥杯2022JAVAA组详解_蓝桥杯java组

蓝桥杯java组

今年的比赛在线上进行,监考考场和学生的考试环境以及各种因素使得这次比赛已失去意义,无参考性,但此次蓝桥杯题目很有意思

1.裁剪刀

观察规律即可,代码附上:

  1. public class Main{
  2. public static void main(String[] args){
  3. System.out.println(4+(20-1)+20*(22-1));
  4. }

答案:443

2.根据表格规律寻找数字

观察表格可知此数是11和17的公倍数,再添加部分条件即可,比如11的倍数33、44,代码稍后附上,此题稍后更新,需要进行规律最大优化

三:

此题考察点在于我们对数据类型范围的掌握,两层for循环附上:

  1. import java.util.Scanner;
  2. public class Main {
  3. public static void main(String[] args) {
  4. Scanner sc=new Scanner(System.in);
  5. int n=sc.nextInt();
  6. int[] nums=new int[n];
  7. for(int x=0;x<n;x++) {
  8. nums[x]=sc.nextInt();
  9. }
  10. sc.close();
  11. int sum=0;
  12. for(int i=0;i<n-1;i++) {
  13. for(int j=i+1;j<n;j++) {
  14. sum=sum+nums[i]*nums[j];
  15. }
  16. }
  17. System.out.println(sum);
  18. }
  19. }

 4.寻找k

寻找k使得公约数增大,这个题实际就是题目意思扰乱人,只要比原来大就好了,因为没有边界条件

 

 

  1. import java.util.Scanner;
  2. public class Main{
  3. public int gcd(int a,int b){
  4. if(a==0 || b==0) {
  5. return 0;
  6. }
  7. return a%b==0?b:gcd(b,a%b);
  8. }
  9. public static void main(String[] args) {
  10. Scanner sc=new Scanner(System.in);
  11. int x1=sc.nextInt();
  12. int x2=sc.nextInt();
  13. Main t=new Main();
  14. int Min=x1>x2?t.gcd(x1,x2):t.gcd(x2,x1);
  15. int k=1,temp=0,Ma=0,Mi=0;;
  16. if(x1>x2) {
  17. temp=t.gcd(x1+k,x2+k);
  18. Ma=x1+k;
  19. Mi=x2+k;
  20. }else {
  21. temp=t.gcd(x2+k,x1+k);
  22. Ma=x2+k;
  23. Mi=x1+k;
  24. }
  25. while(temp<=Min) {
  26. k++;
  27. temp=t.gcd(Ma+k,Mi+k);
  28. }
  29. System.out.println(k);
  30. }
  31. }

5.蜂巢

 可以采用回溯或者dfs、bfs等,关键在如何选择边界条件。稍后更新,暂时不更,因为需要最优化判断。

。。。。。

6.全排列的价值

 此题采用数学方法即可

  1. import java.util.Scanner;
  2. public class Main{
  3. public static void main(String[] args) {
  4. Scanner sc = new Scanner(System.in);
  5. int n = sc.nextInt();
  6. if (n == 0 || n == 1) {
  7. System.out.println(0);
  8. return;
  9. }
  10. long flag = 2;
  11. long count = 1;
  12. for (int x= 3; x < n+1; x++) {
  13. count = ((count * x * (x - 1) / 2) % 998244353 + (count * x) % 998244353) % 998244353;
  14. flag = (x * flag) % 998244353;
  15. }
  16. System.out.println(count);
  17. }
  18. }

7.青蛙过河

看着题目长,明日更新此题,上面未做明日全部更新

8.因数平方和

 

 所给题目样例输出错误,傻逼的题目一个

  1. import java.util.Scanner;
  2. public class Main{
  3. public static void main(String[] args) {
  4. Scanner sc = new Scanner(System.in);
  5. int n = sc.nextInt();
  6. sc.close();
  7. long[] arr = new long[n + 1];
  8. long sum = 0;
  9. for (long i = 1; i < arr.length; i++) {
  10. long j = i;
  11. while (j < arr.length) {
  12. arr[(int) j] = (arr[(int) j] + i * i) % 1000000007;
  13. j += i;
  14. }
  15. sum = (sum + arr[(int) i]) % 1000000007;
  16. }
  17. System.out.println(sum);
  18. }
  19. }

9.最优清0方案

代码附上,解题思路另写,此题动态规划即可,今天晚上附上,暂时因为论文暂时不更

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/481108
推荐阅读
相关标签
  

闽ICP备14008679号