2338: [HNOI2011]数矩形 Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 1535  Solved: 693[Submit][Status][Discuss] Description Input   Output   Sample Input   Sample Output   HINT   Source Day2 我开始想着记每条线的斜率,然后排序来找平行线,但却不能保证构成矩形.一种新奇的思路:记录对角线,两条对角线长度相等且中点…
对于两条线段,若其中点重合,且长度相等,那么它们一定是某个矩形的对角线. N*N地处理出所有线段,排序,对每一部分中点重合.长度相等的线段进行暴力枚举,更新答案. 用 long double 注意EPS的设置,卡精度. 注意数组大小的设置,容易MLE. #include<cstdio> #include<algorithm> #include<cmath> #include<iostream> using namespace std; #define EPS…
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2338 中学数学老师告诉我们,一个矩形的两条对角线相等,所以只要把所有的边拿出来,记录下中点坐标及长度,然后排一遍序扫一遍更新答案..(听说开double会炸? #include<cstring> #include<cstdio> #include<algorithm> #include<cmath> #include<iostream> #i…
思路: 枚举3个点,计算第4个点并判断是否存在,复杂度为O(N3logN)或O(N3α) 考虑矩形的对角线,两条对角线可以构成一个矩形,它们的长度和中点必须完全一样,于是将所有线段按长度和中点排序,那么所有可能构成矩形的线段(对角线)一定在连续的区间内,顺序枚举即可,复杂度O(N2logN). 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37…
题目链接: 2338: [HNOI2011]数矩形 Time Limit: 20 Sec  Memory Limit: 128 MB Description Input   Output 题意: 思路: 求最大的矩形面积,先把这些点转化成线段,记录下线段的长度和中点和两个端点,形成矩形说明对角线长度相等,且共中点,所以把线段按长度和中点排序,如果都相等,然后用三角形的三个顶点坐标计算面积的公式计算最大面积就好了; AC代码: /**********************************…
[BZOJ2338][HNOI2011]数矩形 题解:比较直观的做法就是枚举对角线,两个对角线能构成矩形当且仅当它们的长度和中点相同,然后用到结论:n个点构成的矩形不超过n^2.5个(不会证),所以两两枚举对角线即可. #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; typedef long long ll;…
原题链接:P3217 [HNOI2011]数矩形 什么??!怎么又是计算几何,您钛毒瘤了-- 这道题真的是毒瘤 凸包?旋转卡壳? 看一下数据,N<=1500? 暴力 没错,就是暴力,N^2没毛病 枚举任意两个点,计算距离和连成线段的中点,这些线段作为矩形的对角线 矩形对角线长度相等,互相平分 所以--给线段排序 cmp先按线段长度排序,再按中点坐标排序 最后暴力统计 end 上代码 记得要用long long #pragma GCC optimize("O3") #include…
LINK:数矩形 题意:给出n个点 求出一个最大的矩形. 矩形可以使斜着的.(不会告诉你样例我算了几年 这道题的一个潜规则 矩形面积都是整数 我也不知道为啥一定是整数 姑且是题目输出的要求吧. 所以用double什么的精度会挂的很惨. 考虑暴力 n^3枚举点 剩下一个点利用一些奇奇怪怪的向量什么的可以计算出来.(难写+TLE 考虑矩形的性质 对边平行且相等还得有一个角是直角 这个性质过于没用. 考虑另一个性质 对角线相等.这个性质就算是一个强性质. 我们n^2枚举点对 可以把对角线拿出来 然后围…
题目描述 题解 计算几何 由于对角线平分且相等的四边形是矩形,因此我们可以把每条对角线存起来,按照对角线长度和中点位置为关键字排序,这样对于每个相同长度和中点的对角线就排到了一起. 于是对于每段可能形成矩形的区间暴力即可. 时间复杂度$O(cnt)$,$cnt$为矩形个数.根据大爷讲的某定理,$cnt<O(n^2\sqrt n)$,可以A掉本题. 注意本题任何时候都不能使用double,否则炸精度无限WA. #include <cstdio> #include <cstring&g…
题目大意:给定n个点,求一个最大的矩形,该矩形的四个顶点在给定的点上 找矩形的方法是记录全部线段 若两条线段长度相等且中点重合 这两条线段就能够成为矩形的对角线 于是我们找到全部n*(n-1)/2条线段.按长度排序,长度相等依照中点排序,然后对于每一个点向前找符合要求的,计算面积.更新ans 注意避免一切double! 长度切记不能开根号.直接用long long存储,否则第三个点有两条长度极其接近的线段把double卡掉,计算面积要用叉积,中点不要除以2,连math库都不用开了! #inclu…