BZOJ4049 : [Cerc2014] Mountainous landscape
对于区间[l,r],若询问的直线与该区间的凸壳有交,则有解。
在线段树每个区间上维护凸壳,然后查询时在相应凸壳上二分斜率即可,时间复杂度$O(n\log^2n)$。
#include<cstdio>
#define N 262145
typedef long long ll;
int T,n,i,c,l[N],r[N],t;
struct P{int x,y;P(){}P(int _x,int _y){x=_x,y=_y;}inline P operator-(P b){return P(x-b.x,y-b.y);}inline ll operator*(P b){return(ll)x*b.y-(ll)y*b.x;}
}p[100010],A,B,q[1900000];
void build(int x,int a,int b){q[l[x]=++t]=p[a];for(int i=a+1;i<=b+1;q[++t]=p[i++])while(t>l[x]&&(p[i]-q[t])*(q[t]-q[t-1])<=0)t--;r[x]=t;if(a==b)return;int mid=(a+b)>>1;build(x<<1,a,mid),build(x<<1|1,mid+1,b);
}
inline bool ex(int l,int r){int mid,t=l++;while(l<=r){mid=(l+r)>>1;if((q[mid]-A)*(B-q[mid])<(q[mid-1]-A)*(B-q[mid-1]))l=(t=mid)+1;else r=mid-1;}return(q[t]-A)*(B-q[t])<0;
}
int ask(int x,int a,int b){if(c<=a){if(!ex(l[x],r[x]))return 0;if(a==b)return a;}int mid=(a+b)>>1;if(c<=mid){int t=ask(x<<1,a,mid);if(t)return t;}return ask(x<<1|1,mid+1,b);
}
inline void read(int&a){char c;while(!(((c=getchar())>='0')&&(c<='9')));a=c-'0';while(((c=getchar())>='0')&&(c<='9'))(a*=10)+=c-'0';}
int main(){for(read(T);T--;puts("0")){for(read(n),i=1;i<=n;i++)read(p[i].x),read(p[i].y);for(t=0,build(1,1,n-1),i=1;i<n-1;i++)A=p[i],B=p[i+1],c=i+1,printf("%d ",ask(1,1,n-1));}return 0;
}
转载于:https://www.cnblogs.com/clrs97/p/4700870.html
BZOJ4049 : [Cerc2014] Mountainous landscape相关推荐
- 一步步指导 AI 画一幅中国山水画
在 「AI 作画第二弹」这篇文章中,我给大家介绍了 AI 作画工具在 Linux 系统上的部署.如果对 Linux 系统不熟,或者显卡比较低端,也可以考虑一些在线网站.国内比较好的网站有: 文心一格 ...
- Android :landscape||portrait 切换
可在AndroidManifest.xml里面配置屏幕发现. 在<Activity>中加入这一行android:screenOrientation="landscape/port ...
- System Landscape Recommendations for SAP Customer Activity Repository
System Landscape Recommendations for SAP Customer Activity Repository 该PDF文件可以在如下链接里下载: System Lands ...
- Great Power, Great Responsibility: The 2018 Big Data AI Landscape
http://mattturck.com/bigdata2018/ It's been an exciting, but complex year in the data world. Just as ...
- 动态更改屏幕方向LANDSCAPE与PORTRAIT 转
动态更改屏幕方向--LANDSCAPE与PORTRAIT package irdc.ex05_22; import android.app.Activity; import android.conte ...
- CERC17 Problem L - Lunar Landscape(差分,坐标系)
CERC17 Problem L - Lunar Landscape Solution 如果只有AAA,我们可以简单地使用差分解决. 加入了BBB之后,可以把单位正方形用对角线拆成四个等腰Rt,统计等 ...
- landscape 1
1. 创建出landscape的分层材质 2. 把材质添加给landscape后,可以在landscape的画刷模式下看到 3. 通过点击右侧的加号,依次添加layer后,就可以使用他们进行地形的绘制 ...
- hexo需要先编辑好html文件吗,教你定制Hexo的landscape打造自己的主题_html/css_WEB-ITnose...
我敢肯定大家不仅想拥有自己的博客,还想有一套自己的主题.目前Hexo的主题多数都是从官方主题landscape修改而成的,然而别人能修改,你也可以修改,就算你不会编程,不会web前端,跟着我做你一样可 ...
- CNCF landscape 云原生 敏捷开发
CNCF landscape 敏捷价值观和原则的开发方法包括: 极限编程(XP),Scrum,精益软件开发(Lean Software Development),动态系统开发方法(DSDM),特征驱动 ...
- 能量景观(Energy landscape)
文章目录 1. 简介 2. 应用 3. 正式定义 3.1 宏观例子 1. 简介 图 世界社会经济系统的简化能量景观,和不同细节层次的社会倾斜的动态(social tipping dynamics),突 ...
最新文章
- Gartner 「RPA市场竞争格局」:中国厂商首次进入国际视野
- Android Studio NDK 代码 Source Insight调试 (NDK 目前开发方案 | NDK 编译 | 导入 so 库 | 项目编码转换)
- 《系统集成项目管理工程师》必背100个知识点-91机房防静电的方式
- 技嘉主板GA-B85M-D3V PLUS 1150组装问题汇总
- 数据库高可用架构 转载
- 小程序影视APP/追剧吧/脱离微擎/可用火车头采集小程序影视
- 对硬盘做镜像,按位与按文件有什么区别?
- Glide-Android下高效加载多媒体文件
- 计算(a+b)*c的值
- Vue 开发环境显示log信息
- python科学计算-python科学计算
- 高等数学张宇18讲 第九讲 积分等式与积分不等式
- 8/人天,小记一次 JAVA(APP后台) 项目改造 .NET 过程(后台代码已开源于 Github)
- cmake编译时中途报错:undefined reference to ‘xxx‘.未定义引用
- java树状结构递归与非递归实现,外加sql递归实现
- 景观智慧路灯:基于景观智慧灯杆的浙江嘉兴智慧旅游景区项目分享
- Focal loss 损失函数详解
- ZFS-128bit文件系统
- [读书笔记]Core Java: Volume I - Fundamentals Chapter 8
- 使用HTML设计网页
热门文章
- 蓝的成长记——追逐DBA(11):回家后的安逸,晕晕乎乎醒了过来
- DINO:自监督ViT的新特性
- 三星6.0系统机器(亲测有效)激活XPOSED框架的流程
- matlab处理fits文件,读取 FITS 文件中的数据
- css 文本属性 文本两端对齐 单行文本间距 首行缩进
- 让微软起死回生之作:CEO纳德拉18年新书《刷新》
- 笔记本损耗60 计算机提示,笔记本电池损耗60%多怎么处理!
- 四川取消英语计算机考试,四川远程教育2019年英语考试取消了吗
- 微博Jquery案例
- 10款主流的软件测试工具,你用过吗