Introduction
Input
Output
输出共 m 行,每行一个整数,表示对应查询的答案。
Sample
input
6 2 10 5 24 10 24 11 24 34 24 35 24 35 48 1 2
output
3 3
Solution
package csp; import java.util.Scanner; public class Main20220302 { public static void main(String[] args) { Scanner s=new Scanner(System.in); int n=s.nextInt();int m=s.nextInt();int k=s.nextInt(); int[] arr=new int[400005]; for(int i=0;i<n;i++){ int x=s.nextInt();int y=s.nextInt(); if(x-y+1<=1){ arr[1]+=1; }else { arr[x-y+1]+=1; } arr[x+1]-=1; } for(int i=1;i<400005;i++){ arr[i]=arr[i]+arr[i-1]; } while (m--!=0){ System.out.println(arr[s.nextInt()+k]); } } }
Experience
第一次使用按照非常常规的思路流程得了70分,然后显示超时,其实判断的过程都很清楚了,无非就是出现了重复判断的情况。
做csp第二题的,确实要想清楚了再写代码,有时候往往思路觉得是没问题的,换一个个小小的角度结果完全不同,这个小小的角度也可能是更容易理解的,也更容易正确。
这道题,体验到csp做第二题的经验。要得到100分的话。