【第十四届蓝桥杯三月真题刷题训练——第 10 天(3.13)& 裁纸刀 & 刷题统计 & 修剪灌木 & k倍区间 & k倍区间加强版】

第一题:裁纸刀🔥

解题:通过观察发现,外围四边都需要剪一次,而中间每行需要总行号(n)-1。

其余的一行的列需要剪 总列(m)-1, 总共n行,所以 得出公式(4 + (n-1) + (m-1)*n) 。

public class Main {
    public static void main(String[] args) {
        int n = 20;
        int m = 22;
        int res = (4 + (n-1) + (m-1)*n);
        System.out.println(res);
    }
}

第二题:刷题统计🔥

解法:先把n分解出有多少个周,一周又能做多少题。 n分出来后还剩下多少天数,减去对应天数做的题, 把所有周 和 能减去的天数 求和 。

import java.util.Scanner;

public class Main {
    
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        long a = s.nextLong();
        long b = s.nextLong();
        long n = s.nextLong();
        
        long week = a*5 + b*2;
        long weekCnt = n / week;
        long res = weekCnt * 7;
        n %= week;
        
        for(int i = 1; i <= 7; i++) {
            if(i <= 5 && n > 0) {
                n -= a;
                res++;
            }else if(i > 5 && n > 0) {
                n -= b;
                res++;
            }
        }
        System.out.println(res);
    }
}

第三题:修剪灌木🔥🔥

解法:主要观察来回生长的特点,就会发现。只有当回到自己的时候高度才会变0,其他时间都是在生长,那么这个其他时间就是往返的时间。

import java.util.Scanner;
public class Main {

    public static void main(String[] args) {
        
        Scanner s = new Scanner(System.in);
        int n = s.nextInt();
        
        for(int i = 1; i <= n; i++) {
            System.out.println(Math.max((i-1)*2, (n-i)*2));
        }
        
    }

}

第四题:k倍区间🔥🔥

解法:某一区间是k的倍数,说明该区间的余数为0,那么使用前缀和求[1,n]的和 同时 模 k ,看看哪些余数相同,余数相同表示这两个区间可以相减得去 余数 为0 ,也就是可以被k 整除

import java.util.HashMap;
import java.util.Scanner;

public class Main {
    static int N = (int)1e5 + 10;
    static long[] a = new long[N];
    
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        int n = s.nextInt();
        int k = s.nextInt();
        for(int i = 1; i <= n; i++) {
            a[i] = s.nextInt();
            a[i] += a[i-1];
        }
        
        long res =  0;
        HashMap<Integer, Integer> mp = new HashMap<>();
        mp.put(0, 1);
        for(int i = 1; i <= n; i++) {
            int x = (int)(a[i] % k);
            res += mp.getOrDefault(x, 0);
            mp.merge(x, 1, Integer::sum);
        }
        
        System.out.println(res);
    }

}

第五题:k倍区间加强版😅😅😅😅😅

k倍区间加强版

跑路-----------------------------有缘再见-------------------------------------------😇--------------

总结:

  • 我知道你最近很累,是那种看不见的、身体上和精神上的疲惫感,但是请你一定要坚持下去。就算无人问津也好,技不如人也好,千万别让烦躁和焦虑毁了你的热情和定力。别贪心,我们不可能什么都有,也别灰心,我们不可能什么都没有。

  • 那些低落、疲惫、困惑的时刻,也许是要教会你:不要沮丧,不必惊慌,哪怕一路跌跌撞撞,也偶尔遍体鳞伤,可只要向着心中的方向,总有一天,我会站在最亮的地方,活成自己曾经渴望的模样。

欢迎提出问题~~~~~~~~~~~虽然我不会回答你捏😁

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值