当前位置: 首页 > news >正文

P4097【模板】李超线段树 / [HEOI2013] Segment 模板

#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-9;
int T, Lastans, n = 39989, m, Tcnt, Rt, ansid;
struct Line { double k, b; } a[1000005];
struct Tree { int ls, rs, id; } tr[10000005];
bool pd(int i, int j, int x) {if (a[i].k * x + a[i].b - a[j].k * x - a[j].b > eps)return true;if (a[j].k * x + a[j].b - a[i].k * x - a[i].b > eps)return false;return i < j;
}
void change(int &x, int l, int r, int sl, int sr, int now) {if (r < sl || sr < l)return ;if (!x)x = ++Tcnt;if (sl <= l && r <= sr) {if (pd(now, tr[x].id, l) && pd(now, tr[x].id, r)) {tr[x].id = now;return ;}if (pd(tr[x].id, now, l) && pd(tr[x].id, now, r))return ;int mid = (l + r) >> 1;if (pd(now, tr[x].id, mid))swap(now, tr[x].id);if (pd(now, tr[x].id, l))change(tr[x].ls, l, mid, sl, sr, now);if (pd(now, tr[x].id, r))change(tr[x].rs, mid + 1, r, sl, sr, now);}else {int mid = (l + r) >> 1;change(tr[x].ls, l, mid, sl, sr, now), change(tr[x].rs, mid + 1, r, sl, sr, now);}
}
void solve(int x, int l, int r, int s) {if (!x || r < s || s < l)return ;if (pd(tr[x].id, ansid, s))ansid = tr[x].id;if (l == r)return ;int mid = (l + r) >> 1;solve(tr[x].ls, l, mid, s), solve(tr[x].rs, mid + 1, r, s);
}
int main() {// freopen("test.in", "r", stdin);// freopen("test.out", "w", stdout);scanf("%d", &T);while (T--) {int id;scanf("%d", &id);if (id == 0) {int x;ansid = 0;scanf("%d", &x), x = (x + Lastans - 1) % n + 1;solve(1, 1, n, x), Lastans = ansid;printf("%d\n", ansid);}else {int sx, sy, ex, ey;scanf("%d%d%d%d", &sx, &sy, &ex, &ey);sx = (sx + Lastans - 1) % n + 1, sy = (sy + Lastans - 1) % 1000000000 + 1, ex = (ex + Lastans - 1) % n + 1, ey = (ey + Lastans - 1) % 1000000000 + 1;if (ex < sx)swap(sx, ex), swap(sy, ey);if (ex != sx)m++, a[m].k = 1.0 * (ey - sy) / (ex - sx), a[m].b = 1.0 * sy - a[m].k * sx;elsem++, a[m].k = 0, a[m].b = max(sy, ey);// a[m].k *= 10, a[m].b *= 10;change(Rt, 1, n, sx, ex, m);}}return 0;
}
http://www.rkmt.cn/news/60388.html

相关文章:

  • 2025 年打包带源头厂家最新推荐榜:ISO 认证 + 日产 20 吨级实力厂商,物流仓储优选权威榜单高亮打包带/塑钢打包带/PP 打包带/PET 打包带/纯新料打包带厂家推荐
  • MATLAB实现光谱数据预处理
  • 告别稀疏发际线!2025值得入手的防脱洗发水推荐,根源防脱告别掉发
  • 1125noip模拟赛
  • 如何通过机器学习(如K-means、SVM、决策树)与深度学习(如CNN、LSTM)模型,进行全球气候变化驱动因素的数据分析与趋势预测 - 详解
  • yymodel 某个属性当iOS以int接受 而接口返回null,json解析会崩溃不
  • 2025年穿线磁珠编带磁环制造企业权威推荐榜单:铁氧体磁环/非晶纳米晶磁环/磁环源头厂家精选
  • 2025年11月中国电线电缆厂家推荐榜单:权威评测与综合排名分析
  • 构建文明的算法:价值原语化、三值纠缠与五维追问——一种AI元人文的实践框架
  • kafka的ISR机制
  • 快速了解Linux中的lsmod命令
  • Windows Server 2022 桌面体验版采用Deployment Center 安装TeamCenter 2506 (上)
  • 2025 最新废气焚烧炉厂家推荐排行榜:聚焦化工医药农药行业,甄选技术创新与合规适配优质企业化工废气焚烧炉/农药废气焚烧炉/医药废气焚烧炉/RTO 废气焚烧炉公司推荐
  • kafka 的ack机制
  • AcWing 788:逆序对的数量 ← 树状数组 + 离散化(数组 + sort + STL map)
  • 2025广州权威的留学机构排名榜
  • 2025广州权威的留学机构排名前十
  • Vue3快速笔记
  • 详细介绍:技术实践:在基于 RISC-V 的 ESP32 上运行 MQTT over QUIC
  • 2025广州有哪些办理出国留学机构
  • 2025北京留学中介机构名单
  • odoo12 跟踪所有的模型调用的onchange 方法
  • 对于高增量数据库的解决方案记录(暂时修改)
  • MySQL权限管理的坑你踩了没有?
  • 2025 年 11 月冷却塔厂家权威推荐榜:闭式冷却塔、方形冷却塔、工业冷却塔、全钢冷却塔、凉水塔、圆形冷却塔、玻璃钢冷却塔、防腐冷却塔、冷却水塔,高效散热与持久耐用的专业之选
  • 2025北京留学中介哪些机构好一点
  • k8s chain
  • 不丢帧、低延迟!图像采集卡的 5 步工作原理,看懂就是专家
  • 2025年服装整烫专用设备定做厂家权威推荐榜单:服装小型整烫设备/服装隧道整烫设备/仙桃服装整烫设备源头厂家精选
  • Spring Data JPA 最佳实践【1/2】:实体设计指南