【计算几何】【极角排序】Gym - 101174B - Bribing Eve
把每件物品当成平面上一个点,将第一件物品放在原点。那个权重值相当于一条直线,于是相当于直线绕原点转一圈,统计上侧点的数量。
队友的代码:
#include <cmath>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
int xx,yy,n,num,minans,maxans,tx,ty,same,nowans;
struct node{
int x,y,type;
}a[100005],b[100005];
bool cmp1(node a,node b)
{
return a.x>b.x;
}
bool cmp2(node a,node b)
{
return a.y>b.y;
}
bool cmp3(node a,node b)
{
int yy1=a.y-yy;int yy2=b.y-yy;
int xx1=a.x-xx;int xx2=b.x-xx;
return yy1*xx2>yy2*xx1;
}
void ok(int p)
{
minans=min(minans,p);
maxans=max(maxans,p);
}
bool samer(int u,int v)
{
return (a[u].x-xx)*(a[v].y-yy)==(a[u].y-yy)*(a[v].x-xx);
}
int main()
{
minans=99999999;
maxans=-1;
scanf("%d",&n);
scanf("%d%d",&xx,&yy);
b[1].x=xx; b[1].y=yy;
for(int i=2;i<=n;++i)
{
scanf("%d%d",&tx,&ty);
b[i].x=tx; b[i].y=ty;
if(tx>xx&&ty>yy)
{ }
else if(tx<xx&&ty<yy)
{ }
else if(tx<xx&&ty>yy)
{
a[++num].x=xx+(xx-tx);
a[num].y=yy-(ty-yy);
a[num].type=1;
}
else if(tx>xx&&ty<yy)
{
a[++num].x=tx;
a[num].y=ty;
a[num].type=2;
}
else if(tx==xx&&ty==yy)
{
same++;
}
}
sort(b+1,b+n+1,cmp1);
for(int i=1;i<=n;++i)
if(b[i].x==xx)
{
ok(i);
}
sort(b+1,b+n+1,cmp2);
for(int i=1;i<=n;++i)
if(b[i].y==yy)
{
ok(i);
}
sort(a+1,a+num+1,cmp3);
if(!num)
{
printf("%d %d",minans,maxans);
return 0;
}
nowans=0;
for(int i=1;i<=n;++i)
if(b[i].x!=xx||b[i].y!=yy)
{
if(b[i].y==yy)
{
if(b[i].x>xx) nowans++;
}
else if(b[i].y>yy)
nowans++;
}
int l=1,r=1;
while(l<=num)
{
while(samer(l,r+1)&&r<num)
{
r++;
}
int now1=0,now2=0;
for(int i=l;i<=r;++i)
{
if(a[i].type==1) now1++;
else now2++;
}
ok(nowans+now2+same+1);
ok(nowans-now1+1);
nowans+=now2;
nowans-=now1;
l=r+1;
r=l;
}
printf("%d %d",minans,maxans);
return 0;
}
【计算几何】【极角排序】Gym - 101174B - Bribing Eve的更多相关文章
- bzoj 5099 [POI2018]Pionek 计算几何 极角排序
[POI2018]Pionek Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 269 Solved: 80[Submit][Status][Disc ...
- hdu-5784 How Many Triangles(计算几何+极角排序)
题目链接: How Many Triangles Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...
- 【计算几何+极角排序+爆ll】E. Convex
https://www.bnuoj.com/v3/contest_show.php?cid=9147#problem/E [题意] 给定n个点的坐标,可以选择其中的四个点构造凸四边形,问最多能构造多少 ...
- 【计算几何】【凸包】【极角排序】【二分】Gym - 101128J - Saint John Festival
平面上n个红点,m个黑点,问你多少个黑点至少在一个红三角形内. 对红点求凸包后,转化为询问有多少个黑点在凸包内. 点在凸多边形内部判定,选定一个凸包上的点作原点,对凸包三角剖分,将其他的点极角排序之后 ...
- hrbustoj 1305:多边形(计算几何,极角排序练习)
多边形 Time Limit: 1000 MS Memory Limit: 65536 K Total Submit: 113(42 users) Total Accepted: 51(3 ...
- poj 1696:Space Ant(计算几何,凸包变种,极角排序)
Space Ant Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 2876 Accepted: 1839 Descrip ...
- 【计算几何】【极角排序】【二分】Petrozavodsk Summer Training Camp 2016 Day 6: Warsaw U Contest, XVI Open Cup Onsite, Sunday, August 28, 2016 Problem J. Triangles
平面上给你n(不超过2000)个点,问你能构成多少个面积在[A,B]之间的Rt三角形. 枚举每个点作为直角顶点,对其他点极角排序,同方向的按长度排序,然后依次枚举每个向量,与其对应的另一条直角边是单调 ...
- Gym 101986D Making Perimeter of the Convex Hull Shortest(凸包+极角排序)
首先肯定是构造一个完整的凸包包括所有的点,那么要使得刚好有两个点在外面,满足这个条件的只有三种情况. 1.两个在凸包上但是不连续的两个点. 2.两个在凸包上但是连续的两个点. 3.一个在凸包上,还有一 ...
- LightOJ 1285 - Drawing Simple Polygon (几何,极角排序)
1285 - Drawing Simple Polygon PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: ...
随机推荐
- 联系博主 Contact
李莫 / Ray OI 蒟蒻一只 / A Player of Olympiad in Informatics QQ:740929894 邮箱 / Email :rayking2017@outlook. ...
- Angular2.0 基础: User Input
1.Angular 2.0 中的变量 对输入值的获取,我们可以通过$event 来获取,也可以通过变量来获取. template: ` <input (keyup)="onKey($e ...
- VMware12序列号
VMware tools怎么删除 rpm -e open-vm-tools-desktop vm12序列号 5A02H-AU243-TZJ49-GTC7K-3C61NVF5XA-FNDDJ-085GZ ...
- Python第三方库jieba(中文分词)入门与进阶(官方文档)
jieba "结巴"中文分词:做最好的 Python 中文分词组件 github:https://github.com/fxsjy/jieba 特点 支持三种分词模式: 精确模式, ...
- bootstrap-select属性
# 参考:https://blog.csdn.net/zxl_langya/article/details/79247307 # bootstrap-select属性: <select mult ...
- Linux内核空间内存申请函数kmalloc、kzalloc、vmalloc的区别【转】
转自:http://www.th7.cn/system/lin/201606/167750.shtml 我们都知道在用户空间动态申请内存用的函数是 malloc(),这个函数在各种操作系统上的使用是一 ...
- 64_c2
coin-or-Bcp-1.4.3-3.fc26.i686.rpm 22-May-2017 21:07 250866 coin-or-Bcp-1.4.3-3.fc26.x86_64.rpm 22-Ma ...
- Redis 3.0 编译安装
Redis 3.0 编译安装 http://www.xuchanggang.cn/archives/991.html
- http-server:一个简单的零配置命令行的http服务器
首先简介一下http-server: http-server是一个简单的零配置命令行http服务器,他对于生产使用来说足够强大,他是简单和可删节足以用于测试,足够简单易用,而且可用于本地开发 1.首先 ...
- 【转】kubernetes 中 deployment 支持哪些键值
这个比较全,可以参考 ================= https://www.addops.cn/post/kubernetes-deployment-fileds.html ========== ...