文章目录

  • 前言
  • 题目
  • 秒杀AB题
  • 秒杀F题
  • 调试H题
  • 其他


前言

怎么说呢,后天就是蓝桥杯了,几斤几两我还是知道的,一共四个小时,240分钟,俺就先保证6题,一题的解决时间为40分钟。
考虑到有些题目可能比较简单,所以我的策略是,先拿出40分钟的时间先解决第一题最简单的,然后把剩下的时间用于题目检索,
看看在大概半个小时左右的时间里面,能够出现多少题的思路,然后再从有思路的题目里面从简到难,如果6题做到了,还有时间,那么久优化代码,或者往上走,如果一开始想到题目不超过6题,拿刚好慢慢想。其他的再说吧!

所以本次测试时间为30分钟。看看能够做几题。

题目

题目链接如下:

这里还有一些解释啥的。

秒杀AB题

首先最简单的无非是1,2题。
直接给代码

public class fist {
    public static void main(String[] args) {
        System.out.println((int) 'L');
    }
}
public class scend {
    //由题意知道1的消耗是最大的,所以没有必要去把0-9的那个去统计
    static int count = 2021;
    public static void main(String[] args) {

        for (int i = 1; i <=10000; i++) {
            String temp = String.valueOf(i);
            if(temp.contains("1")){
                for (char c : temp.toCharArray()) {
                    if(c=='1'){
                        count--;
                    }
                }

            }

            if(count==0){
                System.out.println(temp);
                break;
            }else if (count<0){
                System.out.println(i-1);
                break;
            }


        }
    }
}

秒杀F题

这个是一个非常简单的时间转换,涉及到日期,我就用Candler,没有是个毫秒,那么我就直接计算。

class Time{
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        long time = scanner.nextLong();
        time /=1000;
        int a= (int) (time % (24 * 3600));
        int h = a / 3600;
        a %= 3600;
        int m = a/60;
        int s = a%60;
        System.out.printf("%02d:%02d:%02d\n",h,m,s);


    }
}

这个首先是最容易先秒杀出来的题目

调试H题

这个是个杨辉三角,不过这次的话我们可以直接抓住规律,变成一维数组。

主要是要调试一下,先前写的时候,出了点岔子。

第一层 1
第二层 1 1
第三层 1 2 1
每一层的个数加一,边界为1 中间从左到右是上一层的两两之和。完事

public class 杨辉三角 {


    static int[] yanghui;//搞大一点
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        if(n==1){
            System.out.println(n);
        }

        yanghui = new int[1000000];//搞一点,理论上可以先算一个阈值 n*n/2 <=10000000
        yanghui[0]=1;
        yanghui[1]=1;
        yanghui[2]=1;

        int idx = 3; //当前第第几个
        for (int i=3;;i++){
            //卡阈值死磕,来骗~,现在是从第三层开始
            yanghui[idx]=1;
            int j=1;
            for (;j<i-1;j++){
                idx++;
                yanghui[idx]=yanghui[idx-(i)]+yanghui[idx+1-i];
                //条件判断
                if(yanghui[idx]==n){
                    System.out.println(idx);
                    return;
                }


            }
            idx++;
            yanghui[idx]=1;

        }


    }
}

好了,现在能水的题目已经水完了。

大概如果快的话,这四个题目 半个小时 或者 40 分钟是可以拿下来的。
那么接下来的话,我们就需要集中力量办大事!

其他

接下来是其他题目,手下是剩下的三个选择题。

第三个,怎么说呢,我的想法是直接暴力搜索,也就是枚举每两个点的情况,因为2点确定一条直线嘛。

害,算了明天有时间在说吧,剩下的题目,我没有做的情况下,我能说,我有感觉的大概剩下3题,其他的得去想,剩下的三题有思路,第一眼看上去,但是代码没那么好写。

Ok,就这样吧~ 摆烂了