[bzoj1356]Rectangle[Baltic2009][几何常识乱搞]
虽然说是几何常识乱搞,但是想不到啊。。
题意:n个点取4个组成矩形,使面积最大,求面积。 n<=1500
题解:
1.对角线相等且相互交于中点的四边形是矩形。
2.矩形四点共圆。
所以$n^2$枚举边,把线段中点和长度打包pair
如果两条线的pair相等则可以构成一个圆,把相等的线段平方级枚举即可。
考虑一个圆上的整点不多,常数小,所以没有T。。注意精度问题。
【学习】http://blog.csdn.net/wzq_qwq/article/details/49005387
感觉自己代码自带大常数。。有看出原因的,望留言指正谢谢:)
#include <bits/stdc++.h> using namespace std; struct node
{
pair<int,int> pr; long long len; int x,y;
bool operator<(const node & temp)const
{
if(pr!=temp.pr)return pr<temp.pr;
return len<temp.len;
}
bool operator>(const node & temp)const
{ return temp<*this; }
bool operator==(const node & temp)const
{ return !(*this<temp) && !(temp<*this); }
}vec[*]; pair<int,int> p[]; double Dis(const int x,const int y)
{
return sqrt(1.0*(p[x].first-p[y].first)*(p[x].first-p[y].first)+
1.0*(p[x].second-p[y].second)*(p[x].second-p[y].second));
} int main()
{
int n,tot=;
scanf("%d",&n);
for(int i=;i<=n;++i)
scanf("%d%d",&p[i].first,&p[i].second),
p[i].first<<=,p[i].second<<=;
for(int i=;i<=n;++i) for(int j=;j<=n;++j)
vec[++tot]=(node)
{
make_pair((p[i].first+p[j].first)>>,(p[i].second+p[j].second)>>),
1LL*(p[i].first-p[j].first)*(p[i].first-p[j].first)+
1LL*(p[i].second-p[j].second)*(p[i].second-p[j].second), i,j
}; sort(vec+,vec+tot+); long long Ans=;
for(int i=;i<=tot;++i)
{
int l=i,r; while(vec[i]==vec[i-])i++; r=i-;
for(int j=l;j<=r;++j) for(int k=l;k<j;++k)
{
long long temp=(long long)(Dis(vec[j].x,vec[k].x)*
Dis(vec[j].x,vec[k].y)+0.5);
if(temp>Ans)Ans=temp;
}
} printf("%lld\n",Ans/);
return ;
}
[bzoj1356]Rectangle[Baltic2009][几何常识乱搞]的更多相关文章
- URAL 1827 Indigenous Wars(排序、乱搞)
题意:给一个长度为n数组{a[i]}.有m个操作Ti,Si,Li表示找以Ti值结束,以Si值开始,长度为Li的连续子串.找到后,将区间的答案值设为1.一开始答案值全部为0.最后输出n个答案值. 好久没 ...
- UVA 11853 [dfs乱搞]
/* 大连热身E题 不要低头,不要放弃,不要气馁,不要慌张 题意: 在1000×1000的格子内有很多个炮弹中心,半径给定. 为某人能否从西部边界出发,从东部边界走出. 不能输出不能,能的话输出最北边 ...
- Codeforces 732e [贪心][stl乱搞]
/* 不要低头,不要放弃,不要气馁,不要慌张 题意: 给n个插座,m个电脑.每个插座都有一个电压,每个电脑都有需求电压. 每个插座可以接若干变压器,每个变压器可以使得电压变为x/2上取整. 有无限个变 ...
- 【BZOJ-4692】Beautiful Spacing 二分答案 + 乱搞(DP?)
4692: Beautiful Spacing Time Limit: 15 Sec Memory Limit: 128 MBSubmit: 46 Solved: 21[Submit][Statu ...
- 【BZOJ-3578】GTY的人类基因组计划2 set + map + Hash 乱搞
3578: GTY的人类基因组计划2 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 367 Solved: 159[Submit][Status][ ...
- 【BZOJ-2937】建造酿酒厂 前缀和 + 展环为链 + 乱搞
2937: [Poi2000]建造酿酒厂 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 70 Solved: 24[Submit][Status][D ...
- SCOI 2013 密码 & 乱搞
题意: Fish 是一条生活在海里的鱼.有一天他很无聊,就到处去寻宝.他找到了位于海底深处的宫殿,但是一扇带有密码锁的大门却阻止了他的前进.通过翻阅古籍,Fish 得知了这个密码的相关信息:1. 该密 ...
- 种树 & 乱搞
题意: 在一个(n+1)*(m+1)的网格点上种k棵树,树必须成一条直线,相邻两棵树距离不少于D,求方案数. SOL: 这题吧...巨坑无比,本来我的思路是枚举每一个从(0,0)到(i,j)的矩形,然 ...
- URAL - 1920 Titan Ruins: the Infinite Power of Magic(乱搞)
搞死人的题目,,, 就是在n*n的方格中找路径长度为L的回路. 开始的思路值适合n为偶数的情况,而忽视了奇数的case,所以wa了一次. 然后找奇数case的策略,代码从70多行变成了100多,然后改 ...
随机推荐
- 清北考前刷题day4下午好
/* 辗转相除,每次计算多出现了几个数. */ #include<iostream> #include<cstdio> #include<cstring> #inc ...
- js 事件循环机制 EventLoop
js 的非阻塞I/O 就是由事件循环机制实现的 众所周知 js是单线程的 也就是上一个任务完成后才能开始新的任务 那js碰到ajxa和定时器.promise这些异步任务怎么办那?这时候就出现了事件 ...
- oozie timezone时区配置
cloudera oozie默认时区是UTC,在开发oozie任务时必须在期望执行的时间上减去8小时,很不习惯.记录下修改时区的配置操作. 1. cloudera oozie配置—>Oozie ...
- 思维题 HDOJ 5288 OO’s Sequence
题目传送门 /* 定义两个数组,l[i]和r[i]表示第i个数左侧右侧接近它且值是a[i]因子的位置, 第i个数被选择后贡献的值是(r[i]-i)*(i-l[i]),每个数都枚举它的因子,更新l[i] ...
- 专题三:自定义Web服务器
前言: 经过前面的专题中对网络层协议和HTTP协议的简单介绍相信大家对网络中的协议有了大致的了解的, 本专题将针对HTTP协议定义一个Web服务器,我们平常浏览网页通过在浏览器中输入一个网址就可以看到 ...
- Navicat Premium 12 破解方法
基本安装下一步下一步,破解方法参考:地址
- Typora——自定义设置
Typora提供自定义设置,在偏好设置里面,有一个主题文件夹,如果对界面的样式进行设定,可以添加一个css文件,命名规范是 github.user.css,下面代码会对h1~h4进行自动序列化 bod ...
- 如何让不同浏览器调用不同的CSS样式
如何让不同浏览器调用不同的CSS样式 由 于对W3C标准支持程度的不同,往往导致同一个CSS样式表在各种Web浏览器中的呈现大相径庭.以目前市场占有率最高的两个浏览器Microsoft Interne ...
- STA之Concepts (2)
3 Skew between signals Skew is the difference in timing between two or more signals, maybe data, clo ...
- Handling unhandled exceptions and signals
there are two ways to catch otherwise uncaught conditions that will lead to a crash: Use the functio ...