【BZOJ 1007】【HNOI 2008】水平可见直线 解析几何
之前机房没网就做的这道题,用的解析几何判断交点横坐标
#include<cmath>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define N 500003
#define eps 1E-8
using namespace std;
struct node {
double k, b;
int id;
} line[N];
int n, stack[N], top = 0;
bool ans[N];
inline bool cmp(node X, node Y) {
if (fabs(X.k - Y.k) < eps)
return X.b < Y.b;
else
return X.k < Y.k;
}
inline double crossx(int X, int Y) {
return (line[Y].b - line[X].b) / (line[X].k - line[Y].k);
}
inline void insert(int x) {
while (top) {
if (fabs(line[x].k - line[stack[top]].k) < eps)
--top;
else
if (crossx(x, stack[top]) <= crossx(stack[top], stack[top - 1]) && top > 1)
--top;
else
break;
}
stack[++top] = x;
}
int main() {
scanf("%d\n", &n);
for(int i = 1; i <= n; ++i) {
scanf("%lf%lf\n", &line[i].k, &line[i].b);
line[i].id = i;
}
sort(line + 1, line + n + 1, cmp);
for(int i = 1; i <= n; ++i)
insert(i);
for(int i = 1; i <= top; ++i)
ans[line[stack[i]].id] = 1;
for(int i = 1; i <= n; ++i)
if (ans[i])
printf("%d ",i);
return 0;
}
hhh
【BZOJ 1007】【HNOI 2008】水平可见直线 解析几何的更多相关文章
- BZOJ 1007 HNOI 2008 水平可见直线 计算几何+栈
		题目大意:给出一些笛卡尔系中的一些直线,问从(0,+∞)向下看时能看到哪些直线. 思路:半平面交可做,可是显然用不上. 类似于求凸包的思想,维护一个栈. 先将全部直线依照k值排序.然后挨个压进去,遇到 ... 
- 【BZOJ 1007】 [HNOI2008]水平可见直线
		Description 在xoy直角坐标平面上有n条直线L1,L2,...Ln,若在y值为正无穷大处往下看,能见到Li的某个子线段,则称Li为可见的,否则Li为被覆盖的. 例如,对于直线: ... 
- 【BZOJ 1007】 [HNOI2008]水平可见直线
		[题目链接]:http://www.lydsy.com/JudgeOnline/problem.php?id=1007 [题意] [题解] 这个人讲得很好 http://blog.csdn.net/o ... 
- [bzoj 1004][HNOI 2008]Cards(Burnside引理+DP)
		题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1004 分析: 1.确定方向:肯定是组合数学问题,不是Polya就是Burnside,然后题目上 ... 
- BZOJ 1009 HNOI 2008 GT考试 递推+矩乘
		1009: [HNOI2008]GT考试 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 3679 Solved: 2254[Submit][Statu ... 
- [bzoj 1005][HNOI 2008]明明的烦恼(prufer数列+排列组合)
		题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1005 分析: 首先prufer数列:http://baike.baidu.com/view/1 ... 
- [bzoj 1010][HNOI 2008]玩具装箱
		传送门 Description P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压 缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中.P教授有编号 ... 
- BZOJ 1007 水平可见直线 | 计算几何
		BZOJ 1007 水平可见直线 题面 平面直角坐标系上有一些直线,请求出在纵坐标无限大处能看到哪些直线. 题解 将所有直线按照斜率排序(平行的直线只保留最高的直线),维护一个栈,当当前直线与栈顶直线 ... 
- 【BZOJ】【1007】【HNOI2008】水平可见直线
		计算几何初步 其实是维护一个类似下凸壳的东西?画图后发现其实斜率是单调递增的,交点的横坐标也是单调递增的,所以排序一下搞个单调栈来做就可以了…… 看了hzwer的做法…… /************* ... 
随机推荐
- webdriver的工作原理
			selenium1的原理就是使用js来驱动浏览器,因为现在基本不用,所以不做过多讨论,下面是我整理的webdriver的工作原理,大致就是通过命令请求webdriver,然后webdriver通过浏览 ... 
- linux内核启动以及文件系统的加载过程
			Linux 内核启动及文件系统加载过程 当u-boot 开始执行 bootcmd 命令,就进入 Linux 内核启动阶段.普通 Linux 内核的启动过程也可以分为两个阶段.本文以项目中使用的 lin ... 
- 使用tcp_probe时最初没有输出,先卸载后加载模块之后就有了。
			刚才尝试使用tcp_probe来查看tcp的窗口的变化,最初按照tcpprobe | The Linux Foundation的步骤进行设置,但是iperf之后tcp_probe并没有输出结果.按照t ... 
- CSS3之文本阴影text-shadow
- zlog学习笔记(zc_arraylist)
			zc_arraylist.h /** * 实现类似列表的功能 * */ #ifndef __zc_arraylist_h #define __zc_arraylist_h #define ARRAY_ ... 
- PAT 1015. 德才论 (25)
			宋代史学家司马光在<资治通鉴>中有一段著名的"德才论":"是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人.凡取人之术,苟不得圣人,君子 ... 
- POJ 1743 Musical Theme
			感觉最近好混乱......各种OJ都刷一点,感觉不太好......尤其是这种英文题 这道题一开始还没有看懂.听了ljh大犇的解释后终于明白了.下面我为英语和我一样的人翻译一下题面: 输入n个数.求最长 ... 
- Castle ActiveRecord 二级缓存使用 异常记录
			在 本公司的 IBeamMDAA 框架下,如果是配置为本机调试时,AR的查询缓存工作正常,但如果部署到服务器上,工作不正常,二级缓存配置为使用 MemoryCahcheD 服务器,二级缓存没有能够根据 ... 
- 两步验证Authy时间同步问题
			Authy是我常用的软件之一,通常用于Google的两步验证,或者是其他基于Google两步验证的原理的衍生程序.比如Namesilo.印象笔记等均有使用. 先说说什么是两步验证. 两步验证 两步验证 ... 
- NET Core HTTP 管道
			ASP.NET Core HTTP 管道中的那些事儿 前言 马上2016年就要过去了,时间可是真快啊. 上次写完 Identity 系列之后,反响还不错,所以本来打算写一个 ASP.NET Cor ... 
