hdu 6127 Hard challenge
来源:互联网 发布:每日销售数据统计表 编辑:程序博客网 时间:2024/06/02 18:11
Hard challenge
题目链接:Hard challenge
官方题解:
按照极角从小到大排序,从y轴开始逆时针扫一圈即可
代码:
#include<bits/stdc++.h>using namespace std;typedef long long LL;const double PI=acos(-1.0);const int maxn=5e4+10;struct point{ int x,y,val; double angle; bool operator < (const point&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); LL ls=0,rs=0; for(int i=0; i<n; ++i) { if(p[i].x<0) ls+=p[i].val; else if(p[i].x>0) rs+=p[i].val; else if(p[i].y>0) ls+=p[i].val; else rs+=p[i].val; } LL ans=ls*rs; for(int i=0; i<n; ++i) { if(p[i].x<0) ls-=p[i].val,rs+=p[i].val; else if(p[i].x>0) rs-=p[i].val,ls+=p[i].val; else if(p[i].y>0) ls-=p[i].val,rs+=p[i].val; else rs-=p[i].val,ls+=p[i].val; ans=max(ans,ls*rs); } printf("%lld\n",ans); } return 0;}
ps:想了多种,但还是这种扫法最简单,纯粹是套路。。
阅读全文
1 0
- HDU 6127 Hard challenge
- hdu 6127 Hard challenge
- hdu--6127--Hard challenge
- HDU 6127 Hard challenge
- HDU 6127 Hard challenge
- hdu 6127 Hard challenge
- HDU 6127 Hard challenge
- hdu 6127 Hard challenge
- HDU 6127 Hard challenge
- HDU 6127 Hard challenge (几何)
- 【HDU 6127 Hard challenge】& 斜率
- HDU 6127 Hard challenge(几何)
- HDU 6127 Hard challenge【几何】
- HDU 6127 Hard challenge (思维)
- HDU 6127 Hard challenge(几何)
- HDU 6127 Hard challenge【计算几何】
- HDU 6127 Hard challenge(数学)
- hdu 6127 Hard challenge(计算几何)
- 3-8基于文件的存储NFS
- JavaScript基础之BOM 个人笔记
- HTML 基本标签及属性
- bzoj1069 [SCOI2007]最大土地面积
- PageView
- hdu 6127 Hard challenge
- 1056: 整存零取
- 1.通信涉及的几个基础概念
- iOS中状态栏网络加载指示器
- 分类任务中label取值的注意事项(caffe框架下)
- Kotlin方便快捷的IO操作
- 高吞吐低延迟Java应用的垃圾回收优化
- zoj 3778 Talented Chef
- MySQL表分区使用详解