hdu6127 Hard challenge
来源:互联网 发布:剑网三军太捏脸数据 编辑:程序博客网 时间:2024/06/07 11:13
http://acm.hdu.edu.cn/showproblem.php?pid=6127
每条线都能把点集分成两部分A和B,每两个点之间都有线段,所以穿过的线段权值和也就是A点集中点的权值和乘以B点集中点的权值和
极角排序,把y轴下面的点按原点中心对称过来,然后和y轴上面的点相反处理,标记一下就可以
#include<bits/stdc++.h>#define N 50006using namespace std;const double pi=acos(-1.0);struct point{long long x,y,v;bool flag;}a[N];bool cmp(point x,point y){double xx,yy;xx=atan2((double)x.y,(double)x.x);yy=atan2((double)y.y,(double)y.x);return xx<yy;}int main(){int t,n;long long sum1=0,sum2=0;scanf("%d",&t);while(t--){sum1=0,sum2=0;scanf("%d",&n);for(int i=0;i<n;i++){scanf("%lld%lld%lld",&a[i].x,&a[i].y,&a[i].v);if(a[i].y<0){sum1+=a[i].v;a[i].x*=-1;a[i].y*=-1;a[i].flag=false;}else a[i].flag=true,sum2+=a[i].v;}sort(a,a+n,cmp);long long ans=sum1*sum2;for(int i=0;i<n;i++){//cout<<a[i].x<<" "<<a[i].y<<endl;if(a[i].flag){sum2-=a[i].v;sum1+=a[i].v;}else{sum1-=a[i].v;sum2+=a[i].v;}ans=max(ans,sum1*sum2);}cout<<ans<<endl;}return 0;}
阅读全文
0 0
- hdu6127 Hard challenge
- HDU6127-Hard challenge
- hdu6127 Hard challenge
- Hard challenge(HDU6127)
- HDU6127-Hard challenge
- HDU6127-Hard challenge
- HDU6127-Hard challenge
- HDU6127 Hard challenge【几何】
- Hard challenge(hdu6127)
- HDU6127 Hard challenge[计算几何]
- HDU6127 Hard challenge 极角排序|暴力
- Hdu6127 Hard challenge(2017多校第7场)
- hdu6127-!!多校7&极角排序&问题转化-Hard challenge
- hdu6127 Hard challenge 2017多校第七场1008 计算几何 极角排序+双指针
- hard challenge
- Hard challenge
- HDU 6127 Hard challenge
- hdu 6127 Hard challenge
- 网易2017春招笔试题(2)
- 回朔法简单总结
- Java中this和super的用法
- WARN: SQL Error: 1146, SQLState: 42S02
- CSS实现三角箭头
- hdu6127 Hard challenge
- Python_1_用户密码登录
- shell中$(( ))、$( )与${ }的区别
- Linux下,非root用户启动Tomcat配置过程
- Altair HyperWorks Solvers 14.0.211 HotFix Win64 & Linux64 2CD
- Oracle 查看全局系统资源使用情况
- Java不能使用New去创建对象的情况
- SQL把一个表中数据更新到另一个表的多种方法
- Java:单例模式的七种写法