当前位置:   article > 正文

蓝桥杯第十四届javab组模拟赛题_qoopzs

qoopzs

 并非正确答案,一个菜鸡随便写的。

 签到题,api解决,答案11.

System.out.print(Integer.toBinaryString(2022).length());

 

 直接用日历数,结果138


 

 没考虑越界,有没有问题不知道,这样结果为91329

还真是我想太简单,首先float不行,精度不够,并且最后一次在循环中index多加了1,要减去1,这是一个坑,最终答案91380

  1. /*public class Test3 {
  2. public static void main(String[] args) {
  3. // TODO Auto-generated method stub
  4. float index=1;
  5. float sum=0;
  6. while(sum<=12) {
  7. sum+=1/index;
  8. index++;
  9. }
  10. System.out.print(sum+" ");
  11. System.out.print(index);
  12. }
  13. }
  14. */
  15. public class Test3 {
  16. public static void main(String[] args) {
  17. // TODO Auto-generated method stub
  18. double index=1f;
  19. double sum=0;
  20. while(sum<=12f) {
  21. sum+=1/index;
  22. index++;
  23. }
  24. System.out.print(sum+" ");
  25. System.out.print(index-1);
  26. }
  27. }

 还以为要搜索,发现只要比较每一个字母四个方向,直接模拟,结果为349

丢人丢到奶奶家,忘记加等号了。。。答案276

  1. public class Test4 {
  2. public static void main(String[] args) {
  3. // TODO Auto-generated method stub
  4. String str="PHQGHUMEAYLNLFDXFIRCVSCXGGBWKFNQDUXWFNFOZVSRTKJPREPGGXRPNRVY" +
  5. "STMWCYSYYCQPEVIKEFFMZNIMKKASVWSRENZKYCXFXTLSGYPSFADPOOEFXZBC" +
  6. "OEJUVPVABOYGPOEYLFPBNPLJVRVIPYAMYEHWQNQRQPMXUJJLOOVAOWUXWHMS" +
  7. "NCBXCOKSFZKVATXDKNLYJYHFIXJSWNKKUFNUXXZRZBMNMGQOOKETLYHNKOAU" +
  8. "GZQRCDDIUTEIOJWAYYZPVSCMPSAJLFVGUBFAAOVLZYLNTRKDCPWSRTESJWHD" +
  9. "IZCOBZCNFWLQIJTVDWVXHRCBLDVGYLWGBUSBMBORXTLHCSMPXOHGMGNKEUFD" +
  10. "XOTOGBGXPEYANFETCUKEPZSHKLJUGGGEKJDQZJENPEVQGXIEPJSRDZJAZUJL" +
  11. "LCHHBFQMKIMWZOBIWYBXDUUNFSKSRSRTEKMQDCYZJEEUHMSRQCOZIJIPFION" +
  12. "EEDDPSZRNAVYMMTATBDZQSOEMUVNPPPSUACBAZUXMHECTHLEGRPUNKDMBPPW" +
  13. "EQTGJOPARMOWZDQYOXYTJBBHAWDYDCPRJBXPHOOHPKWQYUHRQZHNBNFUVQNQ" +
  14. "QLRZJPXIOGVLIEXDZUZOSRKRUSVOJBRZMWZPOWKJILEFRAAMDIGPNPUUHGXP" +
  15. "QNJWJMWAXXMNSNHHLQQRZUDLTFZOTCJTNZXUGLSDSMZCNOCKVFAJFRMXOTHO" +
  16. "WKBJZWUCWLJFRIMPMYHCHZRIWKBARXBGFCBCEYHJUGIXWTBVTREHBBCPXIFB" +
  17. "XVFBCGKCFQCKCOTZGKUBMJRMBSZTSSHFROEFWSJRXJHGUZYUPZWWEIQURPIX" +
  18. "IQFLDUUVEOOWQCUDHNEFNJHAIMUCZFSKUIDUBURISWTBRECUYKABFCVKDZEZ" +
  19. "TOIDUKUHJZEFCZZZBFKQDPQZIKFOBUCDHTHXDJGKJELRLPAXAMCEROSWITDP" +
  20. "TPCCLIFKELJYTIHRCQAYBNEFXNXVGZEDYYHNGYCDRUDMPHMECKOTRWOSPOFG" +
  21. "HFOZQVLQFXWWKMFXDYYGMDCASZSGOVSODKJGHCWMBMXRMHUYFYQGAJQKCKLZ" +
  22. "NAYXQKQOYZWMYUBZAZCPKHKTKYDZIVCUYPURFMBISGEKYRGZVXDHPOAMVAFY" +
  23. "RARXSVKHTQDIHERSIGBHZJZUJXMMYSPNARAEWKEGJCCVHHRJVBJTSQDJOOTG" +
  24. "PKNFPFYCGFIEOWQRWWWPZSQMETOGEPSPXNVJIUPALYYNMKMNUVKLHSECDWRA" +
  25. "CGFMZKGIPDFODKJMJQWIQPUOQHIMVFVUZWYVIJGFULLKJDUHSJAFBTLKMFQR" +
  26. "MYJFJNHHSSQCTYDTEAMDCJBPRHTNEGYIWXGCJWLGRSMEAEARWTVJSJBAOIOJ" +
  27. "LWHYPNVRUIHOSWKIFYGTYDHACWYHSGEWZMTGONZLTJHGAUHNIHREQGJFWKJS" +
  28. "MTPJHAEFQZAAULDRCHJCCDYRFVVRIVUYEEGFIVDRCYGURQDREDAKUBNFGUPR" +
  29. "OQYLOBCWQXKZMAUSJGMHCMHGDNMPHNQKAMHURKTRFFACLVGRZKKLDACLLTEO" +
  30. "JOMONXRQYJZGINRNNZWACXXAEDRWUDXZRFUSEWJTBOXVYNFHKSTCENAUMNDD" +
  31. "XFDMVZCAUTDCCKXAAYDZSXTTOBBGQNGVVPJGOJOGLMKXGBFCPYPCKQCHBDDZ" +
  32. "WRXBZMQRLXVOBTWHXGINFGFRCCLMZNMJUGWWBSQFCIHUBSJOLLMSQSGHMCPH" +
  33. "ELSOTFLBGSFNPCUZSRUPCHYNVZHCPQUGRIWNIQXDFJPWPXFBLKPNPEELFJMT";
  34. char[][] grid=new char[30][60];
  35. int index=0;
  36. for(int i=0;i<30;i++) {
  37. for(int j=0;j<60;j++) {
  38. grid[i][j]=str.charAt(index++);
  39. }
  40. }
  41. int res=0;
  42. int[][] dir= {{0,1},{0,-1},{1,0},{-1,0}};
  43. for(int i=0;i<30;i++) {
  44. for(int j=0;j<60;j++) {
  45. if(i==0||i==29||j==0||j==59) continue;
  46. boolean flag=true;
  47. char c=grid[i][j];
  48. for(int[] arr:dir) {
  49. int newi=arr[0]+i;
  50. int newj=arr[1]+j;
  51. if(grid[newi][newj]<=c) {//和旁边的字母相等也不是山谷,注意等号
  52. flag=false;
  53. break;
  54. }
  55. }
  56. if(flag) res++;
  57. }
  58. }
  59. System.out.print(res);
  60. }
  61. }

 子矩阵的问题,蓝桥杯上看到好几次,没搞过,这个要系统练习一下

使用的是二维数组的前缀和,学过没用过,这就忘了,复习一下,前缀和主要要结合图形理解,答案为12.

  1. package 第十四届模拟赛;
  2. import java.util.Arrays;
  3. public class Test5 {
  4. public static void main(String[] args) {
  5. // TODO Auto-generated method stub
  6. int[][] grid=new int[100][100];
  7. int[][] sum=new int[100][100];
  8. grid[0][0]=1;
  9. for(int i=0;i<100;i++) {
  10. for(int j=0;j<100;j++) {
  11. if(i==0&&j==0) continue;
  12. if(i==0) {
  13. grid[i][j]=grid[i][j-1]+2;
  14. }
  15. if(i!=0) {
  16. grid[i][j]=grid[i-1][j]+1;
  17. }
  18. }
  19. }
  20. sum[0][0]=1;
  21. for(int i=1;i<100;i++) {//第一列
  22. sum[i][0]=sum[i-1][0]+grid[i][0];
  23. }
  24. for(int j=1;j<100;j++) {//第一行
  25. sum[0][j]=sum[0][j-1]+grid[0][j];
  26. }
  27. for(int i=1;i<100;i++) {
  28. for(int j=1;j<100;j++) {
  29. sum[i][j]=sum[i-1][j]+sum[i][j-1]+grid[i][j]-sum[i-1][j-1];
  30. }
  31. }
  32. int res=Integer.MAX_VALUE;
  33. for(int i=1;i<100;i++) {
  34. for(int j=1;j<100;j++) {
  35. for(int a=99;a>=i;a--) {
  36. for(int b=99;b>=j;b--) {
  37. if(check(i,j,a,b,sum)==2022) {
  38. res=Math.min(res, (a-i+1)*(b-j+1));
  39. }
  40. }
  41. }
  42. }
  43. }
  44. System.out.print(res);
  45. }
  46. private static int check(int i, int j, int a, int b, int[][] sum) {
  47. // TODO Auto-generated method stub
  48. return sum[a][b]-sum[i-1][b]-sum[a][j-1]+sum[i-1][j-1];
  49. }
  50. }

 


 咱也不知道是我想太简单了还是模拟赛就单纯是想教我们怎么考试,直接搞

  1. public class Test6 {
  2. public static void main(String[] args) {
  3. // TODO Auto-generated method stub
  4. Scanner sc=new Scanner(System.in);
  5. int a=sc.nextInt();
  6. int b=sc.nextInt();
  7. if(b>a) {
  8. System.out.print(b-a);
  9. }
  10. if(b<a) {
  11. System.out.print(b+7-a);
  12. }
  13. }
  14. }


难度不是很理解,可能是我理解错了,不确定,再看看

  1. public class Test7 {
  2. public static void main(String[] args) {
  3. // TODO Auto-generated method stub
  4. Scanner sc=new Scanner(System.in);
  5. String str=sc.next();
  6. System.out.print(str.replace('a', 'A').replace('e', 'E').replace('i', 'I').replace('o', 'O').replace('u', 'U'));
  7. }
  8. }

 

 被前面的题看蒙了,现在就会模拟写下去了

  1. public class Test8 {
  2. public static void main(String[] args) {
  3. // TODO Auto-generated method stub
  4. Scanner sc=new Scanner(System.in);
  5. int t=sc.nextInt();
  6. int res=0;
  7. String curtime=sc.next();
  8. int curh=Integer.parseInt(curtime.substring(0, 2));
  9. int curm=Integer.parseInt(curtime.substring(3, 5));
  10. int curs=Integer.parseInt(curtime.substring(6, 8));
  11. int curU=sc.nextInt();
  12. int curI=sc.nextInt();
  13. t--;
  14. while(t>0) {
  15. String nowtime=sc.next();
  16. int nowh=Integer.parseInt(nowtime.substring(0, 2));
  17. int nowm=Integer.parseInt(nowtime.substring(3, 5));
  18. int nows=Integer.parseInt(nowtime.substring(6, 8));
  19. int dif=(nowh-curh)*3600+(nowm-curm)*60+(nows-curs);
  20. res+=(curU*curI*dif);
  21. curU=sc.nextInt();
  22. curI=sc.nextInt();
  23. curh=nowh;
  24. curm=nowm;
  25. curs=nows;
  26. t--;
  27. }
  28. System.out.print(res);
  29. }
  30. }

 

 

一般比赛后面两个题压根不敢写,看了看题,没啥思路,赶着吃饭,跳过


 

要最小的字符串,因为都是无限的,所以看前面的字符越小越好,所以主要要解决最小的字符相同的情况,只有一个最小字符就可以确定最小的就是,有相同的就要回溯,看他们跳转过去的字符的大小,还一样就一直向下比,但是有完全一样的情况,这样就会栈溢出,这里用个num记着层数省的炸掉,咱也不知道数据大起来会怎样,随便搞一下

  1. public class Test10 {
  2. public static void main(String[] args) {
  3. // TODO Auto-generated method stub
  4. Scanner sc=new Scanner(System.in);
  5. String str=sc.next();
  6. int[] arr=new int[str.length()];
  7. for(int i=0;i<str.length();i++) {
  8. arr[i]=(i+(str.charAt(i)-'A'+1))%str.length();
  9. }
  10. char min='Z';
  11. int index=0;
  12. for(int i=0;i<str.length();i++) {
  13. if(str.charAt(i)<min) {
  14. min=str.charAt(i);
  15. index=i;
  16. }
  17. else
  18. if(str.charAt(i)==min) {
  19. index=dfs(i,index,arr[i],arr[index],str,arr,0);
  20. }
  21. }
  22. System.out.print(index);
  23. }
  24. static int dfs(int i,int j,int soni,int sonj,String str,int[] arr,int num) {
  25. if(num>=str.length()) {
  26. return Math.min(i,j);
  27. }
  28. if(str.charAt(arr[soni])>str.charAt(arr[sonj])) {
  29. return j;
  30. }
  31. if(str.charAt(arr[soni])<str.charAt(arr[sonj])) {
  32. return i;
  33. }
  34. else
  35. return dfs(i,j,arr[soni],arr[sonj],str,arr,num+1);
  36. }
  37. }

待答案出来再来修改,仅供参考。

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

闽ICP备14008679号