问题描述:
银行系中有很多恒星,H 君晚上无聊,便爬上房顶数星星,H 君将整个银河系看做一个平面,左上角为原点(坐标为(1, 1))。
现在有 n 颗星星,他给每颗星星都标上坐标(xi,yi)
表示这颗星星在第 x 行,第 y 列。
现在, H 君想问你 m 个问题,给你两个点的坐标(x1,y1)(x2,y2),表示一个矩形的左上角的点坐标和右下角的点坐标。
请问在这个矩形内有多少颗星星(边界上的点也算是矩形内)
题目:题目编号 1994
代码:
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt(); //星星数量
ArrayList<Integer> xlist = new ArrayList();
ArrayList<Integer> ylist = new ArrayList();
for(int i = 1 ; i <= n ; i ++){
xlist.add(scanner.nextInt());
ylist.add(scanner.nextInt());
}
int q = scanner.nextInt(); //问题数量
for(long i = 1 ;i <= q;i ++){
int count = 0;
int x1 = scanner.nextInt();
int y1 = scanner.nextInt();
int x2 = scanner.nextInt();
int y2 = scanner.nextInt();
for(int j = 0 ; j < n;j ++ ){
if(xlist.get(j) >= x1 && xlist.get(j) <= x2 &&
ylist.get(j) >= y1 && ylist.get(j) <= y2)
count++;
}
System.out.println(count);
}
}
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复