把每件物品当成平面上一个点,将第一件物品放在原点。那个权重值相当于一条直线,于是相当于直线绕原点转一圈,统计上侧点的数量。

队友的代码:

#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的更多相关文章

  1. bzoj 5099 [POI2018]Pionek 计算几何 极角排序

    [POI2018]Pionek Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 269  Solved: 80[Submit][Status][Disc ...

  2. hdu-5784 How Many Triangles(计算几何+极角排序)

    题目链接: How Many Triangles Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  3. 【计算几何+极角排序+爆ll】E. Convex

    https://www.bnuoj.com/v3/contest_show.php?cid=9147#problem/E [题意] 给定n个点的坐标,可以选择其中的四个点构造凸四边形,问最多能构造多少 ...

  4. 【计算几何】【凸包】【极角排序】【二分】Gym - 101128J - Saint John Festival

    平面上n个红点,m个黑点,问你多少个黑点至少在一个红三角形内. 对红点求凸包后,转化为询问有多少个黑点在凸包内. 点在凸多边形内部判定,选定一个凸包上的点作原点,对凸包三角剖分,将其他的点极角排序之后 ...

  5. hrbustoj 1305:多边形(计算几何,极角排序练习)

    多边形 Time Limit: 1000 MS     Memory Limit: 65536 K Total Submit: 113(42 users)   Total Accepted: 51(3 ...

  6. poj 1696:Space Ant(计算几何,凸包变种,极角排序)

    Space Ant Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 2876   Accepted: 1839 Descrip ...

  7. 【计算几何】【极角排序】【二分】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三角形. 枚举每个点作为直角顶点,对其他点极角排序,同方向的按长度排序,然后依次枚举每个向量,与其对应的另一条直角边是单调 ...

  8. Gym 101986D Making Perimeter of the Convex Hull Shortest(凸包+极角排序)

    首先肯定是构造一个完整的凸包包括所有的点,那么要使得刚好有两个点在外面,满足这个条件的只有三种情况. 1.两个在凸包上但是不连续的两个点. 2.两个在凸包上但是连续的两个点. 3.一个在凸包上,还有一 ...

  9. LightOJ 1285 - Drawing Simple Polygon (几何,极角排序)

    1285 - Drawing Simple Polygon   PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: ...

随机推荐

  1. java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver 找不到jar包的问题,路径问题

    1.参考连接: https://blog.csdn.net/huangbiao86/article/details/6428608 折腾了一上午,找到了这错误的原因.哎……悲剧! 确认包已经被导入we ...

  2. 第一章: 文件句柄转化为 typeglob/glob 与文件句柄检测

    #为了使在子例程中传递文件句柄不出问题 #我们要把文件句柄转为glob或typeglob #转为glob $fd = *MY_FILE; #转为typeblog $fd = \*MY_FILE; #两 ...

  3. Ubuntu 14.04开启ssh服务

    sudo apt-get install openssh-server sudo apt-get install openssh-client sudo service ssh restart

  4. monkey测试===关于monkey测试的介绍

    https://www.cnblogs.com/lauren1003/p/6193277.html

  5. 经典卷积网络模型 — VGGNet模型笔记

    一.简介 VGGNet是计算机视觉组(Visual Geometry Group)和Google DeepMind公司的研究员一起研究的深度卷积神经网络.VGGNet探索了卷积神经网络深度与性能之间的 ...

  6. JSP(3) - 9个JSP内置对象 - 小易Java笔记

    1.9个JSP内置对象 内置对象引用名称     对应的类型 request HttpServletRequest response HttpServletResponse config Servle ...

  7. Python爬虫音频数据

    一:前言 本次爬取的是喜马拉雅的热门栏目下全部电台的每个频道的信息和频道中的每个音频数据的各种信息,然后把爬取的数据保存到mongodb以备后续使用.这次数据量在70万左右.音频数据包括音频下载地址, ...

  8. winscp上传出现时间戳提示错误

    文件ngx_http_access_module.c上传成功,但是在设置权限和/或时间戳时发生错误.具体内容上图:         我们可以选择 ‘中止’,文件是可以上传成功的,就是每次都会提示这个信 ...

  9. 设置Eclipse/MyEclipse中编辑界面点击任何文件后Package Explorer导航自动定位该文件

    原文:http://www.myexception.cn/eclipse/425836.html 设置步骤: 导航Package Explorer的右上角有一个黄色双向箭头图标,鼠标移动到上面提示“L ...

  10. linux命令(24):find命令

    1.命令格式: find pathname -options [-print -exec -ok ...] 2.命令功能: 用于在文件树种查找文件,并作出相应的处理 3.命令参数: pathname: ...