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

题意: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. 如何保证access_token长期有效--微信公众平台开发

    http://blog.csdn.net/qq_33556185/article/details/52758781 import javax.servlet.ServletContext; impor ...

  2. hdu61272017杭电多校第七场1008Hard challenge

    Hard challenge Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java/Others) ...

  3. 树形DP UVA 1292 Strategic game

    题目传送门 /* 题解:选择一个点,它相邻的点都当做被选择,问最少选择多少点将所有点都被选择 树形DP:dp[i][0/1]表示当前点选或不选,如果选,相邻的点可选可不选,取最小值 */ /***** ...

  4. N - Binomial Showdown (组合数学)

    Description In how many ways can you choose k elements out of n elements, not taking order into acco ...

  5. Android 性能优化(14)网络优化( 10)Determining and Monitoring the Connectivity Status

    Determining and Monitoring the Connectivity Status This lesson teaches you to Determine if you Have ...

  6. Java学习笔记-eclipse配置

    一.配置Java环境变量 JAVA_HOME:D:\Program Files\Java\jdk1.7.0_76 CLASSPATH:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HO ...

  7. (四)Mybatis总结之接口映射

    前面Mybatis是直接通过Dao层与数据交互,更好的方法是Mybatis通过接口映射方式与数据交互 1.在项目中添加maven支持(即pom.xml下添加支持) <!-- 在pom.xml下配 ...

  8. Java集合框架源码(一)——hashMap

    注:本人的源码基于JDK1.8.0,JDK的版本可以在命令行模式下通过java -version命令查看. 一首先我们来看一下HashMap类的定义: public class HashMap< ...

  9. System.err与System.out的区别

    大多数操作系统都有三个标准文件描述符:标准输入,标准输出,标准出错. 三个操作系统的文件描述符映射到编程语言的标准库中,往往加了一层包装,但是名字通常还是叫标准输入,标准输出,标准出错. 在其它语言中 ...

  10. spark学习(3)---集合

    一.list https://blog.csdn.net/xianpanjia4616/article/details/84930779 华为文档:https://support.huawei.com ...