news 2026/9/16 7:44:26

《P3810 【模板】三维偏序 / 陌上花开》

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
《P3810 【模板】三维偏序 / 陌上花开》

题目背景

这是一道模板题,可以使用 bitset,CDQ 分治,树套树,KD-Tree 等方式解决。

题目描述

有 n 个元素,第 i 个元素有 ai​,bi​,ci​ 三个属性,设 f(i) 表示满足 aj​≤ai​ 且 bj​≤bi​ 且 cj​≤ci​ 且 j=i 的 j 的数量。

对于所有 d∈[0,n),求 f(i)=d 的数量。

输入格式

第一行两个整数 n,k,表示元素数量和最大属性值。

接下来 n 行,每行三个整数 ai​,bi​,ci​,分别表示三个属性值。

输出格式

共 n 行,第 d+1 行表示 f(i)=d 的 i 的数量。

输入输出样例

输入 #1复制

10 3 3 3 3 2 3 3 2 3 1 3 1 1 3 1 2 1 3 1 1 1 2 1 2 2 1 3 2 1 2 1

输出 #1复制

3 1 3 0 1 0 1 0 0 1

说明/提示

对于所有数据,保证 1≤n≤105,1≤ai​,bi​,ci​≤k≤2×105。

代码实现:

#include <iostream> #include <cstdio> #include <algorithm> using namespace std; const int N=1e5+10; int n,m,tn; int sz[N],res[N],cnt[N],tr[2*N]; struct nd { int x,y,z; int id; bool operator != (const nd &t) const { return (x!=t.x||y!=t.y||z!=t.z); } }inp[N],dat[N],tmp[N]; inline int lowbit(int x) { return x&(-x); } inline void upd(int x,int c) { for(int i=x;i<=m;i+=lowbit(i)) tr[i]+=c; } inline int qry(int x) { int s=0; for(int i=x;i>=1;i-=lowbit(i)) s+=tr[i]; return s; } inline void cdq(int l,int r) { if(l==r) return; int mid=(l+r)/2,p=l,q=mid+1; cdq(l,mid),cdq(mid+1,r); for(int i=l;i<=r;i++) { if((p<=mid&&dat[p].y<=dat[q].y)||q>r) upd(dat[p].z,sz[dat[p].id]),tmp[i]=dat[p++]; else res[dat[q].id]+=qry(dat[q].z),tmp[i]=dat[q++]; } for(int i=l;i<=mid;i++) upd(dat[i].z,-sz[dat[i].id]); for(int i=l;i<=r;i++) dat[i]=tmp[i]; } inline bool cmp(nd a, nd b) { if(a.x==b.x) { if(a.y==b.y) return a.z<b.z; else return a.y<b.y; } else return a.x<b.x; } int main() { scanf("%d%d",&tn,&m); for(int i=1;i<=tn;i++) scanf("%d%d%d",&inp[i].x,&inp[i].y,&inp[i].z); sort(inp+1,inp+tn+1,cmp); for(int i=1;i<=tn;i++) { if(inp[i]!=inp[i-1]) dat[++n]=inp[i],dat[n].id=n; sz[n]++; } cdq(1,n); for(int i=1;i<=n;i++) cnt[res[dat[i].id]+sz[dat[i].id]-1]+=sz[dat[i].id]; for(int i=0;i<tn;i++) printf("%d\n",cnt[i]); return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/15 14:45:31

AI 时代 人人都可以是开源贡献者

AI 时代 人人都可以是开源贡献者&#xff08;HarmonyOS 开发三方库指南&#xff09; ​ 万少&#xff1a;华为HDE、鸿蒙极客 个人主页&#xff1a;https://blog.zbztb.cn/ 2025年参与孵化了20鸿蒙应用、技术文章300、鸿蒙知识库用户500、鸿蒙免费课程2套。 如果你也喜欢交流AI和…

作者头像 李华
网站建设 2026/9/3 7:48:30

SSM应用框架实现的疫苗接种管理系统u6z9a(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面

系统程序文件列表 系统项目功能&#xff1a;用户,疫苗信息,疫苗预约,接种地点,接种信息 SSM应用框架实现的疫苗接种管理系统开题报告 一、课题研究背景与意义 1.1 研究背景 随着公共卫生体系的不断完善&#xff0c;疫苗接种作为预防和控制传染病最经济、有效的手段&#xff…

作者头像 李华
网站建设 2026/9/15 4:08:35

【程序员必看】5款国产AI大模型全方位对比:DeepSeek、豆包、Kimi、智谱清言和通义千问,谁才是你的最佳选择?(收藏版)

文章对比分析了五款国产AI大模型&#xff1a;DeepSeek(高性价比推理)、豆包(多面手)、Kimi(长文本专家)、智谱清言(知识图谱)和通义千问(行业全能手)。从特点、优势、适用场景和发展前景进行了详细阐述&#xff0c;并给出横向对比&#xff0c;帮助读者根据自身需求(专业、学术、…

作者头像 李华
网站建设 2026/9/11 18:42:58

收藏必备!AI智能体6大设计模式深度解析,从ReAct到Agentic RAG全掌握!

AI智能体设计模式决定其内部结构与行为方式。文章详细解析了六种关键模式&#xff1a;ReAct模式实现思考与行动交替&#xff1b;CodeAct模式支持直接编写执行Python代码&#xff1b;现代工具使用通过MCP连接外部服务&#xff1b;自我反思模式允许智能体审查并优化输出&#xff…

作者头像 李华
网站建设 2026/9/14 3:05:26

iSolarBP Pro:赋能设计院,如何用数智化引擎重构核心竞争力?

在“双碳”目标驱动下&#xff0c;分布式光伏市场爆发式增长&#xff0c;设计院作为产业链的关键一环&#xff0c;却面临着“项目多、时间紧、要求高、利润薄”的多重压力。传统依赖CAD手工绘图、经验估算的模式&#xff0c;已难以适应新形势下的市场竞争。iSolarBP Pro专业版&…

作者头像 李华