UVALive - 3695 Distant Galaxy】的更多相关文章

InputThere are multiple test cases in the input file. Each test case starts with one integer N, (1 ≤ N ≤ 100),the number of star systems on the telescope. N lines follow, each line consists of two integers: the Xand Y coordinates of the K-th planet sy…
题意:给平面上的 n 个点,找出一个矩形,使得边界上包含尽量多的点. 析:如果暴力那么就是枚举上下边界,左右边界,还得统计个数,时间复杂度太高,所以我们考虑用扫描线来做,枚举上下边界, 然后用其他方法来确定左右边界.我们定义left[i] 表示竖线左边位于上下边界上的点数(不包含在竖线上的点),on[i]表示竖线 i 上的点, 但不包含上下边界上的点,in[i]表示竖线 i 的上的点,但是包含上下边界上的点.那么我们可以递推.最后矩形边界上的点数为 left[i] - left[j] + on[…
题目 传送门:QWQ 分析 好喵啊~~~~ 不会做 正解看蓝书P53吧 代码 #include <cstdio> #include <algorithm> using namespace std; inline int read() { , f = ; char ch = getchar(); ;ch = getchar();} + ch - ';ch = getchar();} return x * f; } struct Point{ int x,y; bool operato…
给出n个点的坐标(坐标均为正数),求最多有多少点能同在一个矩形的边界上. 题解里是构造了这样的几个数组,图中表示的很明白了. 首先枚举两条水平线,然后left[i]表示竖线i左边位于水平线上的点,on[i]表示位于竖线i上两条水平线之间(并不在水平线上)的点数,on2[i]表示位于竖线i上两条水平线之间加上水平线边界上的点数. 所以矩形框上的点数为: left[j]-left[i]+on[i]+on2[j] 枚举右边界竖线j,j确定后维护on[i]-left[i]的最大值. //#define…
题目 https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1696 题意 平面上有n个整数点,找一个矩形,使得边界上包含尽量多的点. 思路 如刘书 首先可以按照x对所有点排序,然后枚举矩形左右边界 确定左右边界之后,接下来就可以枚举下边界,直接求最优上边界. 当左右下边界确定后,就能知道图中粉色部分上有多少个点,但这样离求出带上边…
Distant Galaxy Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 111    Accepted Submission(s): 53 Problem Description You are observing a distant galaxy using a telescope above the Astronomy Towe…
Distant Galaxy https://vjudge.net/problem/UVALive-3695 You are observing a distant galaxy using a telescope above the Astronomy Tower, and you think that a rectangle drawn in that galaxy whose edges are parallel to coordinate axes and contain maximum…
http://poj.org/problem?id=3141 (题目链接) 题意 给出平面上n个点,找出一个矩形,使边界上包含尽量多的点. solution 不难发现,除非所有输入点都在同一行或同一列上,最优矩形的4条边上都至少有一个点.这样的话,我们可以枚举四条边穿过的点,然后统计点数. 考虑部分枚举,只枚举矩形上下界,用其它方法确定左右界. 设一条竖线i,用left[i]表示竖线左边位于上下界上单点数(不统计位于该竖线上的点),on[i]和on2[i]表示竖线上位于上下边界之间的点数(on[…
题目连接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=91208#problem/G 题意:  给出平面上的n个点,找出一个矩形,使得边界上含有尽量多的点:输出最多的点数. 分析: 先枚举上下边界,然后从左到右扫,扫描一遍所有的点,计算l, on, on2数组,枚举右边界,维护on[i] - L[i]的最大值. 其中对于第i列,l[i]表示竖线左边位于上下边界的点数(不包括位于竖线i), on[i]表示竖线上位于上下边界之间的点数(…
给出平面上的n个点,找一个矩形,使得边界上包含尽量多的点. [输入格式] 输入的第一行为数据组数T.每组数据的第一行为整数n(1≤n≤100):以下n行每行两个整数,即各个点的坐标(坐标均为绝对值不超过109的整数).输入结束标志为n=0. [输出格式] 对于每组数据,输出边界点个数的最大值. 先贴题解的精妙预处理: 不难发现,除非所有输入点都在同一行或者同一列上(此时答案为n),最优矩形的4条边都至少有一个点(一个角上的点同时算在两条边上).这样,我们可以枚举4条边界所穿过的点,然后统计点数.…