裸题。

#include<bits/stdc++.h>
using namespace std;
inline char nc(){static char buf[100000],*p1=buf,*p2=buf;return p1==p2&&(p2=(p1=buf)+fread(buf,1,100000,stdin),p1==p2)?EOF:*p1++;
}
inline void Read(int& x){char c=nc();for(;c<'0'||c>'9';c=nc());for(x=0;c>='0'&&c<='9';x=(x<<3)+(x<<1)+c-48,c=nc());
}
const int N=100010;
const int M=40010;
const double Eps=1e-10;
struct Line{double k,b;
}a[N];
int k,n,m,p;
int c[M<<2];
int Ans;
int x,y,z;
inline int Get1(int x){return (x+Ans-1)%39989+1;
}
inline int Get2(int x){return (x+Ans-1)%1000000000+1;
}
inline double Calc(int id,int x){return a[id].k*x+a[id].b;
}
inline double Abs(double x){return x<0?-x:x;
}
inline bool Cmp(int x,int y,int z){if(!x)return 1;if(!y)return 0;double t1=Calc(x,z),t2=Calc(y,z);if(Abs(t1-t2)<Eps)return x>y;return t1<t2;
}
void Modify(int x,int l,int r,int y){if(!c[x])c[x]=y;if(Cmp(c[x],y,l))swap(c[x],y);if(l==r||Abs(a[c[x]].k-a[y].k)<Eps)return;double pos=(a[y].b-a[c[x]].b)/(a[c[x]].k-a[y].k);if(pos<l||pos>r)return;int Mid=l+r>>1;if(pos<=Mid)Modify(x<<1,l,Mid,c[x]),c[x]=y;else Modify(x<<1|1,Mid+1,r,y);
}
void Update(int x,int l,int r,int L,int R,int y){if(l>R||r<L)return;if(l>=L&&r<=R){Modify(x,l,r,y);return;}int Mid=l+r>>1;Update(x<<1,l,Mid,L,R,y);Update(x<<1|1,Mid+1,r,L,R,y);
}
int Query(int x,int l,int r,int y){if(l==r)return c[x];int Mid=l+r>>1,t;if(y<=Mid)t=Query(x<<1,l,Mid,y);else t=Query(x<<1|1,Mid+1,r,y);if(Cmp(t,c[x],y))return c[x];return t;
}
int main(){Read(n);for(int i=1;i<=n;i++){Read(k);if(!k){Read(x);x=Get1(x);Ans=Query(1,1,M,x);printf("%d\n",Ans);}else{Read(x);Read(y);Read(z);Read(k);x=Get1(x);y=Get2(y);z=Get1(z);k=Get2(k);m++;if(x==z)a[m].k=0,a[m].b=max(y,k);elsea[m].k=(double)(y-k)/(x-z),a[m].b=-a[m].k*x+y;if(x>z)swap(x,z);Update(1,1,M,x,z,m);}}return 0;
}

[ 李超线段树 ] BZOJ3165相关推荐

  1. 【BZOJ3165】Segment(李超线段树)

    题目来源:BZOJ3165 考虑以横坐标为下标维护线段树. 在每个结点维护一个标记,表示覆盖整个结点的最高线段,注意这个标记对整个区间都有作用,无需下传. 因为只有单点询问,所以可以不用维护区间的最高 ...

  2. 【李超线段树】BZOJ3165 [Heoi2013]Segment

    题面在这里 李超线段树的裸题,不解释 示例程序: #include<cstdio> #include<cmath> #include<algorithm> usin ...

  3. 李超线段树(Li-Chao Segment Tree)

    李超线段树 李超线段树是一种用于维护平面直角坐标系内线段关系的数据结构.它常被用来处理这样一种形式的问题:给定一个平面直角坐标系,支持动态插入一条线段,询问从某一个位置 (X,+∞)(X,+\inft ...

  4. BZOJ 1568 李超线段树

    思路: 李超线段树裸题 //By SiriusRen #include <cmath> #include <cstdio> #include <cstring> # ...

  5. 【BZOJ 3165】 [Heoi2013]Segment 李超线段树

    所谓李超线段树就是解决此题一类的问题(线段覆盖查询点最大(小)),把原本计算几何的题目变成了简单的线段树,巧妙地结合了线段树的标记永久化与标记下传,在不考虑精度误差的影响下,打法应该是这样的. #in ...

  6. P4097 [HEOI2013]Segment 李超线段树

    传送门 文章目录 题意: 思路: 题意: 实现以下两个操作: (1)(1)(1)在平面上加入一条线段.记第iii条被插入的线段的标号为iii (2)(2)(2)给定一个数kkk,询问与直线x=kx=k ...

  7. 【牛客NOIP模拟】 牛牛的RPG游戏【二维偏序】【任意坐标斜率优化】【CDQ 分治】【李超线段树】

    题意: n×mn\times mn×m 的网格图,每个点有两个权值 vali,j,bufi,jval_{i,j},buf_{i,j}vali,j​,bufi,j​,从 (1,1)(1,1)(1,1) ...

  8. 【CEOI2017】Building Bridges【任意坐标斜率优化】【李超线段树】

    题意:有 nnn 个柱子,每个柱子有高度 hih_ihi​.你需要在柱子间修桥,在 i,ji,ji,j 间修桥代价为 (hi−hj)2(h_i-h_j)^2(hi​−hj​)2,桥梁只能在柱子处相交, ...

  9. 数据结构之线段树Ⅴ——(李超线段树)Robot,Product Sum,Building Bridges,Jump mission

    文章目录 Robot Product Sum Building Bridges Jump mission Robot BZOJ3938 机器人每次一旦改变速度,直到下一次改变速度为止 这一时间段内机器 ...

最新文章

  1. Nodejs Express dockerfile最佳实践
  2. Datawhale组队学习周报(第032周)
  3. 网上测试了很多关于PYTHON的WEBSOCKET样例,下面这个才成功了
  4. linux 查看lv格式,linux lv pv lv 命令
  5. 这才是真正的,坐上来,自己动!| 今日趣图
  6. 制作程序化装饰花纹图案_装饰图案
  7. 在windows环境下ftp服务器的文件上传和下载
  8. python svm 决策方程_python – 使用scikit-learn线性SVM提取决策边界
  9. Maven工具的简单介绍,以及manen与spring框架之前的优缺点,解决什么是maven、为什么要使用maven,使用maven的好处等问题
  10. html caption属性的值,如何设置caption属性
  11. 金地集团三季报:归母净利润同比降超三成,仍存债务压力
  12. python小乌龟绘制迷宫_用turtle不断的画回字迷宫
  13. 武汉大学 遥感院 数据结构实习
  14. 小黄衫获得感想及经验总结
  15. opencv自己生成标定板
  16. Android学习---zygote(上)
  17. 威威猫系列故事——吃鸡腿
  18. 课堂结对作业:二维数组(4)
  19. 家庭装修预约APP软件开发
  20. [技术经理]02 什么是技术经理?

热门文章

  1. 微信服务号开发----发送消息
  2. 计算机怎样发现路由器上u盘,路由器上USB插口的4大功能,估计你连一个都没用过...
  3. sourcemap功能简介
  4. TP-LINK路由器任意代码执行漏洞CVE-2017-9466 WR841N V8版本受影响
  5. Java数字化智慧校园平台源码,智慧学校源码+微信小程序+人脸电子班牌
  6. ps4和php,PS4《战神》通关心得分享与给新手的游玩建议
  7. “墨子号”量子科学实验卫星成果获克利夫兰奖
  8. Lighting - 光的亮度衰减
  9. 【基于stm32f103C8T6-小程序智能家居项目实战-自绘PCB到实现功能一条龙+30分钟解决-各种bug已修复】
  10. NINA项目里面已经加入架包“SLF4J: Failed to load class org.slf4j.impl.StaticLoggerBinder”