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

题解:P9464 [EGOI 2023] Padel Prize Pursuit / 追梦笼式网球

目前暂无修正。

选手无法观察到树形结构,于是选手写了比较没脑子的可持久化线段树做法。

我们考虑第 \(i\) 个奖牌会到哪里去,发现每个关系 \((X,Y)\) 意思是此时 \(Y\) 的奖牌会被 \(X\) 赢走,即奖牌此时到 \(Y\) 后会往 \(X\) 走。我们可以暴力地每个点开一个桶,下标 \(j\) 记录接下来奖牌会在第 \(j\) 个人总共停留 \(buk[j]\) 晚,每次转移 \(X\) 的桶复制给 \(Y\) 即可。

由于对不同的 \(Y\) 停留在 \(X\) 的时间不一样,还需要在 \(buk[X]\) 的位置加上当前时间与上一次 \(X\) 作为 \(Y'\) 出现的时间的差。注意:如果一个 \(Y\) 获得了多个 \(X\) 给的桶,那么只有最新的是有效的,这样是 \(O(nm)\) 的。

考虑优化这一过程,把这个桶变成动态开点线段树,找 \(\max\) 是容易的,复制的话我们采用类似可持久化线段树的思想,每次 \(rt[Y]\) 直接在 \(rt[X]\) 的基础上修改,多开 \(O(\log n)\) 个点,每次第 \(i\) 块奖牌查询直接在 \(rt[Y]\) 线段树上二分最大是哪个人。时间复杂度和空间复杂度都是 \(O(m\log n)\)

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N=2e5+5;
int n,m,X[N],Y[N],ans[N];
int ncnt,rt[N],lasr[N];
struct Node{int lc,rc,mx;}t[N<<5];
#define ls t[p].lc
#define rs t[p].rc
#define mid ((l+r)>>1)
void pushup(int p){t[p].mx=max(t[ls].mx,t[rs].mx);
}
void modify(int o,int &p,int l,int r,int pos,int v){p=++ncnt;t[p]=t[o];if(l==r){t[p].mx+=v;return ;}if(pos<=mid)modify(t[o].lc,ls,l,mid,pos,v);else modify(t[o].rc,rs,mid+1,r,pos,v);pushup(p);
}
int query(int p,int l,int r){if(!p)return 0;if(l==r)return l;if(t[ls].mx>=t[rs].mx)return query(ls,l,mid);return query(rs,mid+1,r);
}
#undef ls
#undef rs
#undef mid
int main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin>>n>>m;for(int i=1;i<=m;i++){int x,y;cin>>x>>y;x++;y++;X[i]=x;Y[i]=y;}for(int i=1;i<=n;i++)lasr[i]=m+1;for(int i=m;i>=1;i--){int x=X[i],y=Y[i];modify(rt[x],rt[y],1,n,x,lasr[x]-i);ans[query(rt[y],1,n)]++;lasr[y]=i;}for(int i=1;i<=n;i++)cout<<ans[i]<<' ';return 0;
}
http://www.jsqmd.com/news/19480/

相关文章:

  • 软件工程课程第二次团队作业
  • AGC 板刷记录2
  • 2025 年涿州装修公司最新推荐榜,深度解析企业服务能力与市场口碑优势
  • 结对编程项目总结
  • 刘强东带火数字人直播?商业化逐步成熟,逐渐取代真人带货!zhibo175
  • Hive事务管理详解:从ACID原理到UPDATE/DELETE实战 - 实践
  • TabControl控件
  • 权威调研榜单:硬质合金挤压模具厂家TOP3综合实力深度解析
  • 详细介绍:【Linux指南】gdb进阶技巧:断点高级玩法与变量跟踪实战
  • Nacos 3.1.0 正式发布,支持 A2A 注册中心与 MCP 注册协议增强
  • 2025 年点火器厂家最新推荐排行榜:综合评估高能 / 自动 / 防爆等多类型产品,精选优质品牌
  • VS2026 使用 WebDeploy 发布到 IIS - Jeff
  • 2025 激光灯厂家最新推荐榜:全方位测评核心实力与潜力,甄选优质供应商实用指南
  • SpringBoot3 集成Junit4 - 实践
  • 详细介绍:Spark Shuffle:分布式计算的数据重分布艺术
  • 2025 年火焰检测器生产厂家最新推荐权威排名:涵盖防爆 / 一体化 / 紫外线 / 离子 / 红外线 / 红紫外复合 / 智能型,多维度解析助力企业精准选型
  • 排序算法的介绍
  • 调理neovide之 自定义keymap-不用starter-template的话,直接init.lua中改
  • MyEMS:用开源撕开能源管理 “黑箱”,让节能不再 “凭感觉”
  • FPGA控制RGMII接口PHY芯片基础
  • kettle基本操作4:使用日期字段增量数据同步
  • 冰川之国破例:冰岛首次发现蚊子,气候变化敲响警钟
  • 成语趣有奖微信小程序管理系统:趣味与变现兼具的优质选择
  • 2025 年钛棒厂家最新推荐权威榜单:深度解析国内头部厂家国际市场开拓成绩及产品优势钛螺丝/加工件/医用/合金/异形件钛棒厂家推荐
  • 掌门社交电商系统:赋能本地生活的三方共赢新生态
  • 就餐宝微信小程序:重塑企业食堂管理新生态
  • 2025 年度茶叶行业优质厂家权威榜单:最新推荐全解析,小青柑 / 普洱等好茶选品指南
  • 如何解除百度网盘下载限速
  • 分布式专题——33 一台新机器进行Web页面请求的历程 - 指南
  • 开源隐私计算框架SecretFlow | 基于隐语的金融全链路场景介绍和应用实践