HDU6217 Hard challenge(计算几何)
来源:互联网 发布:mac os 进度条不动 编辑:程序博客网 时间:2024/05/24 00:11
链接:点击打开链接
极角排序,然后逆时针扫一遍,初始从y轴开始,把y轴左边的计算出一个和ls,右边的计算出和rs,每次扫到一个点,将该点加到左边,扫一圈,刷新最大的ls*rs即可
参考博客:传送门
#include<bits/stdc++.h>#define mem(a,b) memset(a,b,sizeof(a))using namespace std;typedef long long LL;const double PI=acos(-1.0);const int maxn=5e4+10;struct node{ int x,y,val; double angle; bool operator <(const node&A)const { return angle<A.angle; }}p[maxn];int main(){ int t,n; scanf("%d",&t); while(t--) { scanf("%d",&n); for(int i=0;i<n;i++) { scanf("%d%d%d",&p[i].x,&p[i].y,&p[i].val); if(p[i].x==0) p[i].angle=PI/2.0; else p[i].angle=atan(p[i].y*1.0/p[i].x); } sort(p,p+n); long long ls=0,rs=0; for(int i=0;i<n;i++) { if(p[i].x<0) ls+=p[i].val; else rs+=p[i].val; } long long ans=ls*rs; for(int i=0;i<n;i++) { if(p[i].x>=0) { rs-=p[i].val; ls+=p[i].val; } else { ls-=p[i].val; rs+=p[i].val; } ans=max(ans,ls*rs); } printf("%lld\n",ans); }}
阅读全文
0 0
- HDU6217 Hard challenge(计算几何)
- HDU6127 Hard challenge[计算几何]
- HDU 6127 Hard challenge【计算几何】
- hdu 6127 Hard challenge(计算几何)
- (计算几何)HDU 6127 Hard challenge
- HDU 6127-Hard challenge(计算几何)
- HDU 6127 Hard challenge(计算几何)
- HDU6127 Hard challenge【几何】
- hdu 6127 Hard challenge (计算几何——斜率排序)
- HDU 6127 Hard challenge 计算几何 极角排序
- HDU 6127 Hard challenge (几何)
- HDU 6127 Hard challenge(几何)
- HDU 6127 Hard challenge【几何】
- hdu Hard challenge (几何题)
- hdu6127 Hard challenge 2017多校第七场1008 计算几何 极角排序+双指针
- HDU 6127 Hard challenge(思维+计算几何)——2017 Multi-University Training Contest
- HDU 6127 Hard challenge(几何)
- 【HDU5828】Hard problem(计算几何)
- 因为涉嫌歧视女性被开除的那位工程师到底在备忘录上写了什么?
- mutable怎样改变private成员
- 使用sed提示错误unterminated `s' command
- rsync安装、配置、实例
- 20170816 Notes
- HDU6217 Hard challenge(计算几何)
- NYOJ 44 子串和
- pl/sql入门
- 一个简单的数据库连接池实例
- Android三种基本的加载网络图片方式
- Mybatis的高级映射--多表查询
- PAT_1070. Mooncake
- 中兴新支点操作系统小教程——用户
- 啊啊