[BZOJ]2338: [HNOI2011]数矩形 叉积
来源:互联网 发布:百度联盟和淘宝联盟 编辑:程序博客网 时间:2024/05/20 22:30
题解:
吐槽:
我原来用通用的求多边形面积方法,多算了一次叉积,竟然TLE了……改了之后快了14s……
代码:
#include<cstdio>#include<cstring>#include<cmath>#include<iostream>#include<algorithm>using namespace std;#define LL long longconst int maxn=1510;struct point{LL x,y;}p[maxn],a[5];struct line{point p1,p2;LL len;}l[maxn*maxn];LL dis(point p1,point p2){ return (p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y);}bool cmp(line l1,line l2){ if(l1.len!=l2.len)return l1.len<l2.len; if(l1.p1.x+l1.p2.x!=l2.p1.x+l2.p2.x)return l1.p1.x+l1.p2.x<l2.p1.x+l2.p2.x; return l1.p1.y+l1.p2.y<l2.p1.y+l2.p2.y;}LL multi(point p1,point p2,point p0){ LL x1,y1,x2,y2; x1=p1.x-p0.x;y1=p1.y-p0.y; x2=p2.x-p0.x;y2=p2.y-p0.y; return x1*y2-x2*y1;}int n,cl=0;LL ans=0;bool check(int x,int y){ if(l[x].len==l[y].len&&(l[x].p1.x+l[x].p2.x==l[y].p1.x+l[y].p2.x) &&(l[x].p1.y+l[x].p2.y==l[y].p1.y+l[y].p2.y)) return true;return false;}int main(){ scanf("%d",&n); for(int i=1;i<=n;i++)scanf("%lld%lld",&p[i].x,&p[i].y); for(int i=1;i<n;i++) for(int j=i+1;j<=n;j++) l[++cl].p1=p[i],l[cl].p2=p[j],l[cl].len=dis(p[i],p[j]); sort(l+1,l+1+cl,cmp); for(int i=2;i<=cl;i++) { int j=i-1; while(j&&check(j,i)) { LL t=abs(multi(l[i].p1,l[i].p2,l[j].p1)); if(t>ans) { ans=t; } j--; } } printf("%lld",ans);}
阅读全文
2 0
- [BZOJ]2338: [HNOI2011]数矩形 叉积
- bzoj 2338: [HNOI2011]数矩形
- BZOJ 2338: [HNOI2011]数矩形
- BZOJ 2338 HNOI2011 数矩形 计算几何
- bzoj 2338 [HNOI2011]数矩形
- bzoj 2338 [HNOI2011]数矩形
- [暴力 乱搞] BZOJ 2338 [HNOI2011]数矩形
- bzoj 2338: [HNOI2011]数矩形 (计算几何)
- 【BZOJ】【P2338】【HNOI2011】【数矩形】【题解】【乱搞】
- [HNOI2011]数矩形
- 【HNOI2011】数矩形
- bzoj2338: [HNOI2011]数矩形
- 【bzoj2338】[HNOI2011]数矩形
- [BZOJ2338][HNOI2011]数矩形
- bzoj2338: [HNOI2011]数矩形
- bzoj2338: [HNOI2011]数矩形
- [BZOJ2338][HNOI2011]数矩形
- 【bzoj2338】【HNOI2011】【计算几何】【数矩形】
- 【dede】织梦建站汇总
- There is a cycle in the hierarchy原因
- java集合框架图
- js中cookie的使用
- 回到顶部按钮
- [BZOJ]2338: [HNOI2011]数矩形 叉积
- R的数据清洗
- HTTP请求中8种请求方法
- bzoj2754 [SCOI2012]喵星球上的点名(后缀数组+暴力)
- ArcGIS Server新建站点异常的解决
- 程序片段----std::set中使用自己定义的结构体需要重载小于号 20170904
- Python学习笔记(六)-- Python列表(List)
- session 过期跳出iframe 页
- java equals的用法