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

题解:AT_abc405_f [ABC405F] Chord Crossing

【搬运于 2026-4-26】【原文写于 2025-5-12】

更 luogu 的体验

题外话,因为做过类似题目又忘记了数据范围,赛时用莫队导致超过了时限。

本题考虑使用树状数组。

对于一条线段,如果它的左端点或右端点在某一线段内,但两端点并不同时出现在这条线段内,则两个线段相交。

拆环为链,从左到右处理。将 \(M\) 条线按左端点排序,每条线段的右端点加入树状数组。

先不考虑两端点同时出现在某一条线段内的情况。设某条要查询线段区间为 \([l,r]\),处理到 \(l\) 的时候,对答案有贡献的为在 \(l\) 右侧的树状数组种的右端点,因为其左端点一定小于 \(l\)。对于 \(r\) 同理。

现在考虑两端点同时出现在某一条线段内的情况。在处理到 \(l\) 的时候,对于 \(r\) 右侧的树状数组内的右端点是非合法情况,可以顺便处理掉。因为处理到 \(l\)\(r\) 时这些非合法情况都算进去了,因此要减去两次。

#include <bits/stdc++.h>
using namespace std;
struct dat{int y,z,id;
};
vector<dat> v[2000010];
int tr[2000010],que[200010];
int n,m;
void add(int x,int y){for(; x <= 2 * n; x += (x & -x))tr[x] += y;
}
int sum(int x){int res = 0;for(; x; x -= (x & -x))res += tr[x];return res;
}
int main(){scanf("%d%d",&n,&m);for(int i = 1; i <= m; i++){int x,y;scanf("%d%d",&x,&y);v[x].push_back({y,0,0});}int q;scanf("%d",&q);for(int i = 1; i <= q; i++){int x,y;scanf("%d%d",&x,&y);v[x].push_back({x,1,i});v[x].push_back({y,-2,i});v[y].push_back({y,1,i});}int tot = 0;for(int i = 1; i <= 2 * n; i++){if(i % 2){for(int j = 0; j < v[i].size(); j++){int y = v[i][j].y,z = v[i][j].z,id = v[i][j].id;que[id] += z * (tot - sum(y));//tot是已经加入的总点数,sum(y)是在y左侧的点数,tot-sum(y)就是在y右侧的点数。}}else{for(int j = 0; j < v[i].size(); j++){int y = v[i][j].y,z = v[i][j].z,id = v[i][j].id;tot++;add(y,1);}}}for(int i = 1; i <= q; i++){printf("%d\n",que[i]);}return 0;
}
http://www.jsqmd.com/news/702891/

相关文章:

  • 告别卡顿!这样给你的Windows 11虚拟机分配硬件资源,性能直接起飞
  • 给娃报名蓝桥等考,这500块到底值不值?一篇讲透Scratch/Python/C++全组别18级规划
  • 从人口普查Excel数据到Power BI仪表盘:一步步教你做可视化分析
  • ROFL播放器:英雄联盟回放文件的终极解析与播放指南
  • 分析节假日寄加急文件,上海地区哪些快递品牌正常发且靠谱 - 工业设备
  • ThinkPad双风扇智能控制终极指南:如何让Windows 10/11笔记本散热更高效更安静
  • 汽车诊断工程师必看:UDS 0x83服务(访问时序参数)的四种模式到底怎么用?
  • 避坑指南:在Ubuntu 20.04上编译VINS-Fusion时,如何解决Ceres库的C++14编译错误?
  • 终极指南:3分钟掌握Blender UV Squares插件,一键规整UV网格布局
  • 2026年了解中通快递市场份额占比,看看其在农村服务能力和满意度提升策略 - 工业推荐榜
  • WindowResizer:Windows窗口强制调整大小的终极解决方案
  • VideoDownloadHelper:轻松下载网页视频的浏览器扩展工具
  • 给SiC MOSFET做‘体检’:聊聊短路测试那点事儿(双脉冲/非线性元件法)
  • 如何让老旧Mac重获新生:OpenCore Legacy Patcher完全指南
  • 深聊2026年幸运瞳智慧视力训练仪招募代理,哪个区域更合适? - myqiye
  • UV Squares终极指南:3分钟学会Blender UV网格化神奇技巧
  • 技术解密:Noto Emoji 跨平台表情符号渲染架构
  • 别再死记硬背了!用C#写个Modbus调试助手,搞定上位机通信面试题
  • Qwen3-4B-Thinking部署案例:政务热线AI坐席原型系统——Chainlit语音转文字+vLLM应答
  • Venera漫画应用:如何构建智能漫画源更新与自动化管理方案
  • 如何用VinXiangQi象棋AI连线工具提升你的对弈水平:三步快速上手指南
  • 从DOS到2024:3dMax 30年版本变迁史,聊聊你入坑的那个‘经典’版本
  • 苏教版绝对值的意义
  • 安卓13时代,如何绕过应用检测?深入AOSP源码修改定位与设备信息的实战指南
  • 2026实测:网文写手的救命神器,这几款顶配 AI 真的能写长篇?
  • 中兴光猫深度管理:5分钟解锁zteOnu隐藏功能,告别Web界面限制
  • 5分钟彻底告别AWCC!Dell G15散热控制神器tcc-g15终极指南
  • 不只是抓包:用mitmproxy+MuMu模拟器,5分钟搭建你的第一个移动端API测试环境
  • 如何用WechatBot在5分钟内打造你的专属微信智能助手:终极免费指南
  • AI驱动的零信任安全架构与NVIDIA Morpheus实战