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

题意: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. vue用户登录状态判断

    之前项目中用来判断是否登录我写了多种方案,但是最终只有一个方案是比较好的,这篇博客就是分享该方案; 先说基本要求: 项目中的登录状态是依据服务器里的状态来作为判断依据; 每一个需要登录后才能操作的接口 ...

  2. svg image 图片无法铺满 circle 的问题解决

    引子 使用d3.js绘制了力布图后,需要在circle中绘制图片,方法如下: // 绘制图片 drawPattern(gContainer) { let that = this; let gPatte ...

  3. Oracle 助记

    title: Oracle 助记 Nothing is impossible! 基础操作 $ sqlplus name/pssword; # 登录数据库 $ create user username ...

  4. mycat登录报错Host 'XXX' is blocked because of many connection errors的另一种解决思路

    报错时机 使用了mycat,而不是单纯使用了mysql. 报错信息 ERROR 1129 (HY000): Host '1.23.22.18' is blocked because of many c ...

  5. [C和指针] 6-指针

    6.1 内存和地址 我们可以把计算机的内存看作是一条长街上的一排房屋,每座房子都可以容纳数据,并通过一个房号来标识. 这个比喻颇为有用,但也存在局限性.计算机的内存由以亿万计的位(bit)组成,每个位 ...

  6. Hdu 4738 Caocao's Bridges (连通图+桥)

    题目链接: Hdu 4738 Caocao's Bridges 题目描述: 有n个岛屿,m个桥,问是否可以去掉一个花费最小的桥,使得岛屿边的不连通? 解题思路: 去掉一个边使得岛屿不连通,那么去掉的这 ...

  7. 平方分割poj2104K-th Number

    K-th Number Time Limit: 20000MS   Memory Limit: 65536K Total Submissions: 59798   Accepted: 20879 Ca ...

  8. 树形DP URAL 1039 Anniversary Party

    题目传送门 /* 题意:上司在,员工不在,反之不一定.每一个人有一个权值,问权值和最大多少. 树形DP:把上司和员工的关系看成根节点和子节点的关系,两者有状态转移方程: dp[rt][0] += ma ...

  9. C# 生成 bmp 格式的图片

    using System; using System.Collections.Generic; using System.Diagnostics; using System.Drawing; usin ...

  10. 299 Bulls and Cows 猜数字游戏

    你正在和你的朋友玩猜数字(Bulls and Cows)游戏:你写下一个数字让你的朋友猜.每次他猜测后,你给他一个提示,告诉他有多少位数字和确切位置都猜对了(称为”Bulls“, 公牛),有多少位数字 ...