虽然说是几何常识乱搞,但是想不到啊。。

题意: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][几何常识乱搞]的更多相关文章

  1. URAL 1827 Indigenous Wars(排序、乱搞)

    题意:给一个长度为n数组{a[i]}.有m个操作Ti,Si,Li表示找以Ti值结束,以Si值开始,长度为Li的连续子串.找到后,将区间的答案值设为1.一开始答案值全部为0.最后输出n个答案值. 好久没 ...

  2. UVA 11853 [dfs乱搞]

    /* 大连热身E题 不要低头,不要放弃,不要气馁,不要慌张 题意: 在1000×1000的格子内有很多个炮弹中心,半径给定. 为某人能否从西部边界出发,从东部边界走出. 不能输出不能,能的话输出最北边 ...

  3. Codeforces 732e [贪心][stl乱搞]

    /* 不要低头,不要放弃,不要气馁,不要慌张 题意: 给n个插座,m个电脑.每个插座都有一个电压,每个电脑都有需求电压. 每个插座可以接若干变压器,每个变压器可以使得电压变为x/2上取整. 有无限个变 ...

  4. 【BZOJ-4692】Beautiful Spacing 二分答案 + 乱搞(DP?)

    4692: Beautiful Spacing Time Limit: 15 Sec  Memory Limit: 128 MBSubmit: 46  Solved: 21[Submit][Statu ...

  5. 【BZOJ-3578】GTY的人类基因组计划2 set + map + Hash 乱搞

    3578: GTY的人类基因组计划2 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 367  Solved: 159[Submit][Status][ ...

  6. 【BZOJ-2937】建造酿酒厂 前缀和 + 展环为链 + 乱搞

    2937: [Poi2000]建造酿酒厂 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 70  Solved: 24[Submit][Status][D ...

  7. SCOI 2013 密码 & 乱搞

    题意: Fish 是一条生活在海里的鱼.有一天他很无聊,就到处去寻宝.他找到了位于海底深处的宫殿,但是一扇带有密码锁的大门却阻止了他的前进.通过翻阅古籍,Fish 得知了这个密码的相关信息:1. 该密 ...

  8. 种树 & 乱搞

    题意: 在一个(n+1)*(m+1)的网格点上种k棵树,树必须成一条直线,相邻两棵树距离不少于D,求方案数. SOL: 这题吧...巨坑无比,本来我的思路是枚举每一个从(0,0)到(i,j)的矩形,然 ...

  9. URAL - 1920 Titan Ruins: the Infinite Power of Magic(乱搞)

    搞死人的题目,,, 就是在n*n的方格中找路径长度为L的回路. 开始的思路值适合n为偶数的情况,而忽视了奇数的case,所以wa了一次. 然后找奇数case的策略,代码从70多行变成了100多,然后改 ...

随机推荐

  1. 清北考前刷题day4下午好

    /* 辗转相除,每次计算多出现了几个数. */ #include<iostream> #include<cstdio> #include<cstring> #inc ...

  2. js 事件循环机制 EventLoop

    js 的非阻塞I/O  就是由事件循环机制实现的 众所周知  js是单线程的 也就是上一个任务完成后才能开始新的任务 那js碰到ajxa和定时器.promise这些异步任务怎么办那?这时候就出现了事件 ...

  3. oozie timezone时区配置

    cloudera oozie默认时区是UTC,在开发oozie任务时必须在期望执行的时间上减去8小时,很不习惯.记录下修改时区的配置操作. 1. cloudera oozie配置—>Oozie ...

  4. 思维题 HDOJ 5288 OO’s Sequence

    题目传送门 /* 定义两个数组,l[i]和r[i]表示第i个数左侧右侧接近它且值是a[i]因子的位置, 第i个数被选择后贡献的值是(r[i]-i)*(i-l[i]),每个数都枚举它的因子,更新l[i] ...

  5. 专题三:自定义Web服务器

    前言: 经过前面的专题中对网络层协议和HTTP协议的简单介绍相信大家对网络中的协议有了大致的了解的, 本专题将针对HTTP协议定义一个Web服务器,我们平常浏览网页通过在浏览器中输入一个网址就可以看到 ...

  6. Navicat Premium 12 破解方法

    基本安装下一步下一步,破解方法参考:地址

  7. Typora——自定义设置

    Typora提供自定义设置,在偏好设置里面,有一个主题文件夹,如果对界面的样式进行设定,可以添加一个css文件,命名规范是 github.user.css,下面代码会对h1~h4进行自动序列化 bod ...

  8. 如何让不同浏览器调用不同的CSS样式

    如何让不同浏览器调用不同的CSS样式 由 于对W3C标准支持程度的不同,往往导致同一个CSS样式表在各种Web浏览器中的呈现大相径庭.以目前市场占有率最高的两个浏览器Microsoft Interne ...

  9. STA之Concepts (2)

    3 Skew between signals Skew is the difference in timing between two or more signals, maybe data, clo ...

  10. Handling unhandled exceptions and signals

    there are two ways to catch otherwise uncaught conditions that will lead to a crash: Use the functio ...