【计算几何】【极角排序】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: ...
随机推荐
- 完全教程 Aircrack-ng破解WEP、WPA-PSK加密利器
其 实关于无线基础知识的内容还是挺多的,但是由于本书侧重于BT4自身工具使用的讲解,若是再仔细讲述这些外围的知识,这就好比讲述DNS工具时还要把 DNS服务器的类型.工作原理及配置讲述一遍一样,哈哈, ...
- 最简单的基于FFMPEG的图像编码器(YUV编码为JPEG)(转)
原文转自 https://blog.csdn.net/leixiaohua1020/article/details/25346147/ 伴随着毕业论文的完成,这两天终于腾出了空闲,又有时间搞搞FFMP ...
- 【Windows使用笔记】Windows日常使用软件
整理一些对于我来说日常使用的Windows软件. 排名不分先后,仅凭我想起来的顺序! 1 MadAppLauncher 这个对我来说非常需要了. 使用它可以快速启动日常常用的软件,非常快捷高效.一般来 ...
- JS中的日期内置函数
用JS中的日期内置函数实现在页面显示:“今天是:2013年9月26日14:32:45”. var date=new Date(Date.parse('9/26/2013 14:32:45')); ...
- •搭建LAMP环境及快速部署双网站并实现基于域名的虚拟主机
本节所讲内容: 实战:搭建LAMP环境及快速部署双网站并实现基于域名的虚拟主机 LAMP架构:??? Linux+Apache+Mysql+PHP Linux+Apache+Mysql/MariaDB ...
- TCP之Nagle算法&&延迟ACK
1. Nagle算法: 是为了减少广域网的小分组数目,从而减小网络拥塞的出现: 该算法要求一个tcp连接上最多只能有一个未被确认的未完成的小分组,在该分组ack到达之前不能发送其他的小分组,tcp需要 ...
- mips64高精度时钟引起ktime_get时间不准,导致饿狗故障原因分析【转】
转自:http://blog.csdn.net/chenyu105/article/details/7720162 重点关注关中断的情况.临时做了一个版本,在CPU 0上监控所有非0 CPU的时钟中断 ...
- 独立服务器远程重装Linux系统
独立服务器远程重装Linux系统 http://rashost.com/blog/remote-reinstall-linux-dedicated-server 本文介绍怎样在没有console连接, ...
- swift中的如果在构造方法中使用KVC, 调用了super.init(), 报错, 基本数据类型属性找不到
swift要求, 属性必须有初始化值, 如果不对其赋值, 可以加一个?系统会默认给其包装一个可选值(直说就是nil) 如果定义一个基本类型, 建议直接赋值, 不建议使用? 下面说下标题中的问题 有时候 ...
- JQuery实现AJAX实例
<script type="text/javascript" src="ReportServer?op=emb&resource=finereport.js ...