本文主要是介绍【Java每日一题,前缀和】天上的星星,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Description
在一个星光摧残的夜晚,蒜头君一颗一颗的数这天上的星星。
蒜头君给在天上巧妙的画了一个直角坐标系,让所有的星星都分布在第一象。天上有 nn 颗星星,他能知道每一颗星星的坐标和亮度。
现在,蒜头君问自己 qq 次,每次他问自己每个矩形区域的星星的亮度和是多少(包含边界上的星星)。
package week2;import java.util.Scanner;/*** @author liangyuanshao* @date 2022/4/30 - 14:49*/
public class Main {public static void main(String[] args) {Scanner s=new Scanner(System.in);int[][] arr=new int[2002][2002];int n=s.nextInt();for(int i=0;i<n;i++){arr[s.nextInt()+1][s.nextInt()+1]+=s.nextInt();}for(int i=1;i<=2001;i++){for(int j=1;j<=2001;j++){arr[i][j]=arr[i][j]+arr[i-1][j]+arr[i][j-1]-arr[i-1][j-1];}}int k=s.nextInt();while (k--!=0){int x1=s.nextInt(),y1=s.nextInt(),x2=s.nextInt(),y2=s.nextInt();System.out.println(arr[x2+1][y2+1]-arr[x2+1][y1]-arr[x1][y2+1]+arr[x1][y1]);}}}
Experience
数据量少,直接构造长度2002的数组是我没想到的。下次注意输入样例的范围。
这是一道典型的前缀和题目。
这篇关于【Java每日一题,前缀和】天上的星星的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!