蓝桥杯31天真题冲刺|题解报告|第二十七天

 大家好,我是snippet,今天是我们刷题的第二十七天,今天的第一题就整了好久,思路对了就是没A出来,我准备今天把后面几个题一起A了,晚点再补全题解

目录

一、储物点的距离

题目链接:储物点的距离 (nowcoder.com)

题目内容:

解题思路:

代码:

二、数学考试

题目链接:数学考试 (nowcoder.com)

题目内容:

解题思路:

代码:

三、地标访问

题目链接:P2390 地标访问 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

题目内容:

解题思路:

代码:

四、木材

题目链接:P4058 [Code+#1]木材 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

题目内容:

解题思路:

代码:


一、储物点的距离

题目链接:储物点的距离 (nowcoder.com)

题目内容:

解题思路:

代码:

import java.io.*;

/**
 * @author snippet
 * @data 2023-03-30
 * 储物点的距离-牛客
 */
public class T1_储物点的距离 {
    static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    static PrintWriter pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));

    static int n,m;
    static int mod = 1000000007;
    static int N = 200200;
    static long[] arr = new long[N];// 距离
    static long[] brr = new long[N];// 物品数
    static long[] crr = new long[N];

    public static void main(String[] args) throws IOException {
        String[] s = br.readLine().split(" ");
        n = Integer.parseInt(s[0]);
        m = Integer.parseInt(s[1]);
        s = br.readLine().split(" ");
        for (int i = 2; i <= n; i++) {
            arr[i] = (arr[i-1] + Long.parseLong(s[i-2])) % mod;
        }
        s = br.readLine().split(" ");
        for (int i = 1; i <= n; i++) {
            brr[i] = Long.parseLong(s[i-1]);
        }

        for (int i = 1; i <= n; i++) {
            brr[i] = (brr[i] + brr[i-1]) % mod;// 物品数前缀和
            crr[i] = (crr[i-1] + brr[i]*arr[i]) % mod;// 全部物品送到第1号位
        }

        while (m-- > 0) {
            s = br.readLine().split(" ");
            int x = Integer.parseInt(s[0]);
            int l = Integer.parseInt(s[1]);
            int r = Integer.parseInt(s[2]);
            long ans = 0;
            if (r <= x) {// 查询区间全部在目标位置的左边
                ans = ((arr[x]%mod*(brr[r]-brr[l-1])%mod)%mod - (crr[r]-crr[l-1])%mod) % mod;
            } else if (l >= x) {// 查询区间全部在目标位置的右边
                ans = ((crr[r]-crr[l-1])%mod - (arr[x]%mod*(brr[r]-brr[l-1])%mod)%mod) % mod;
            } else {
                ans = ((arr[x]%mod*(brr[x]-brr[l-1])%mod)%mod - (crr[x]-crr[l-1])%mod) % mod;
                ans = (ans%mod + mod) % mod;
                ans += ((crr[r]-crr[x-1])%mod - (arr[x]%mod*(brr[r]-brr[x-1])%mod)%mod) % mod;
            }
            pw.println((ans%mod + mod) % mod);
        }
        pw.flush();
        br.close();
    }
}

二、数学考试

题目链接:数学考试 (nowcoder.com)

题目内容:

解题思路:

代码:

三、地标访问

题目链接:P2390 地标访问 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

题目内容:

解题思路:

代码:

四、木材

题目链接:P4058 [Code+#1]木材 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

题目内容:

解题思路:

代码:

你可能感兴趣的:(2023年蓝桥杯31天真题冲刺,蓝桥杯,算法,java)