尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

【题解】P16955 「NLOI Round1」宇宙冷漠

【题解】P16955  「NLOI Round1」宇宙冷漠
📅 发布时间:2026/6/22 19:12:34

为啥要写线段树啊。

这个题整体的思路不就是一个类似并查集的过程吗。

首先找到第 \(i\) 个位置的父亲 \(j\),使得 \(j\) 是最小的且使第 \(j\) 个函数到第 \(j\) 个函数都共交于一点。

这样的话,看 \(l\) 和 \(r\) 是否是属于一个父亲的就行了。

为什么?

因为,如果第 \(i\) 个函数与第 \(i-1\) 函数和第 \(i-2\) 个函数交于一点,则 \(i-1\) 就满足成为 \(fa_i\) 的条件,则 \(fa_{i-1}\) 也满足成为 \(fa_i\) 的条件,所以 \(fa_i\) 是 \(fa_{i-1}\)。

如果不交于一点,则 \(fa_i\) 就是 \(i\)。

若 \(l\) 到 \(r\) 都共交于一点,则父亲都应是相等的,否则就说明中间有函数断开了。

注意的是,要判断 \(fa_{l+1}\) 是否与 \(fa_r\) 一致。

因为 \(fa_l\) 代表的是 \(l-1\) 和 \(l\)。

但我们只需关注 \(l\)。

所以必要从 \(l\) 的后头 \(l-1\) 检查。

不过,两个函数完全重合的情况需考虑,但我们考虑的只是连续的函数,所以可以像离散化一样将连续的重合的函数整合成一个。

平行也是个问题,因为你求交点时需要除斜率差,平行则说明斜率差为 \(0\),所以需要特判。

如果 \(i\) 与 \(i-1\) 是平行的,则 \(i\) 与 \(i-1\) 无交点,所以 \(fa_i=i\)。

若 \(i-1\) 与 \(i-2\) 是平行的,且经过上面的操作 \(i\) 与 \(i-1\) 不平行也不重合,则想想 \(i\) 与 \(i-1\) 必有交点,把 \(i\) 的父亲设为 \(fa_{i-1}\) 即 \(i-1\)。

#include<bits/stdc++.h>
using namespace std;
typedef int ll;
typedef __int128_t i128;
const ll N=1e6+5;
ll n,q;
struct nid {ll k,b;
} h[N],u[N];
ll p[N];
ll id[N];
ll idt[N];
int main() {ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);cin>>n>>q;ll tot=0;for(ll i=1; i<=n; i++) {cin>>h[i].k>>h[i].b;if(i==1||u[tot].k!=h[i].k||u[tot].b!=h[i].b)u[++tot]=h[i],id[i]=tot;else id[i]=tot;}idt[2]=idt[1]=1;for(int i = 3; i <= tot; ++i) {if(u[i-1].k==u[i].k){idt[i]=i;continue;}if(u[i-1].k==u[i-2].k){idt[i]=i-1;continue;}long long lhs = (long long)(u[i-1].b - u[i-2].b) * (u[i-1].k - u[i].k);long long rhs = (long long)(u[i].b - u[i-1].b) * (u[i-2].k - u[i-1].k);if(lhs == rhs) idt[i] = idt[i-1];else idt[i] = i;}while(q--) {ll l,r;cin>>l>>r;if(l==r||id[l]==id[r])cout<<"Yes\n";else if(idt[id[l]+1]==idt[id[r]]&&u[id[l]].k!=u[id[l]+1].k)cout<<"Yes\n";else cout<<"No\n";}return 0;
}

相关新闻

  • 2026年成都配眼镜多少钱?从几百到几千的真实价格区间 - 配眼镜新资讯
  • Qwen3-Coder-Next:80B参数模型如何靠MoE实现3B级推理
  • 佛山闲置旧金变现渠道,20天筛选31家无套路门店汇总 - 奢侈品交易观察员

最新新闻

  • 2026广州知识产权全维度解析:新规落地、全链条扶持、产业适配、避坑指南+本土机构TOP3推荐 - 资讯快报
  • 2026保姆级教程:视频转文字工具推荐,电脑手机免费无水印全方法
  • 东莞智能家居推荐排行:2026靠谱服务商前五榜单,避开伪智能陷阱 - 资讯快报
  • 上海正规搬家机构推荐及避坑技巧 - 资讯速览
  • 056、Zephyr RTOS内核基础:定时器与超时管理
  • OBS智能背景移除插件:零绿幕实现专业级视频抠像

日新闻

  • 2026速览惠州叛逆青少年学校前十大排名名单出炉 - 武汉中职最新信息发布
  • 2026上饶白蚁消杀哪家好?15年本土2大权威白蚁防治公司推荐(金盾虫控/青蚁卫士) - 我叫一
  • 天龙八部单机版终极数据管理工具:5个技巧快速掌握游戏数据编辑

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号