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

~Rikka with Employees~ stcm

Rikka with Employees

这题好像有个哥哥叫 [Ynoi2008] stcm 来着,看起来应该比这题的限制更严。


考虑将树拍成 dfn 序,则 \(u\) 对应的子树为 \([\text{dfn}(u),\text{dfn}(u)+\text{size}(u)-1]\)。进行分治,假设分治到 \([l,r]\) 时,标记了 \([1,l-1] \cup [r+1,n]\) 中的所有点,此时我们要处理跨过 \(mid\) 的所有询问。

由于树存在偏序关系,所以跨过 \(mid\) 的询问也存在偏序关系,依次处理即可。

下面是 stcm 的代码:

//Ad astra per aspera
#include<iostream>
#include<cstdio>
#include<vector>
#include<algorithm>
using namespace std;
int fa[100010],dfn[100010],rev[100010],siz[100010],tot;
vector<int> G[100010];
void dfs(int u){tot++;dfn[u]=tot;rev[tot]=u;siz[u]=1;for(int i=0;i<G[u].size();i++){int v=G[u][i];dfs(v);siz[u]+=siz[v];}
}
struct Node{int l,r,id;
};
bool operator <(const Node &lhs,const Node &rhs){return lhs.l<rhs.l;
}
void solve(int l,int r,vector<Node> vec){if(vec.empty()){return ;}if(l==r){printf("=%d",vec[0].id);return ;}int l_mid=(l+r)>>1;int r_mid=l_mid+1;vector<Node> l_vec,r_vec,m_vec;for(int i=0;i<vec.size();i++){if(vec[i].r<=l_mid){l_vec.push_back(vec[i]);}else if(vec[i].l>=r_mid){r_vec.push_back(vec[i]);}else{m_vec.push_back(vec[i]);}}sort(m_vec.begin(),m_vec.end());int l_pre=l-1,r_pre=r+1;for(int i=0;i<m_vec.size();i++){int L=m_vec[i].l,R=m_vec[i].r,id=m_vec[i].id;while(l_pre<L-1){l_pre++;printf("+%d",rev[l_pre]);}while(r_pre>R+1){r_pre--;printf("+%d",rev[r_pre]);}printf("=%d",id);}while(l_pre>=l){printf("-");l_pre--;}while(r_pre<=r){printf("-");r_pre++;}while(l_pre<l_mid){l_pre++;printf("+%d",rev[l_pre]);}solve(r_mid,r,r_vec);while(l_pre>=l){printf("-");l_pre--;}while(r_pre>r_mid){r_pre--;printf("+%d",rev[r_pre]);}solve(l,l_mid,l_vec);while(r_pre<=r){printf("-");r_pre++;}
}
int main(){int n;while(~scanf("%d",&n)){tot=0;for(int i=1;i<=n;i++){G[i].clear();}for(int i=2;i<=n;i++){scanf("%d",&fa[i]);G[fa[i]].push_back(i);}dfs(1);vector<Node> vec;for(int i=1;i<=n;i++){vec.push_back((Node){dfn[i],dfn[i]+siz[i]-1,i});}solve(1,n,vec);printf("!\n");}return 0;
}
http://www.rkmt.cn/news/1506229.html

相关文章:

  • MPK5蛋白在植物逆境响应中的分子机制与研究进展
  • 终极无损音乐下载指南:qobuz-dl带你轻松获取24位/96kHz高解析度音频
  • MCP2517FD CAN FD控制器完整开发套件:固件+DBC+OLS逻辑分析配置一键导入
  • 终极GTA5辅助工具:YimMenu完整指南与安全实践
  • 2026 OpenClaw+CC Switch+Token173 国内稳定部署 Anthropic Fable 5 完整实操教程
  • 洛雪音乐音源终极配置指南:免费获取全网无损音乐的完整方案
  • 西安装修公司口碑盘点2026:选对品牌少踩3个坑 - 信息热点
  • 2026无锡代理记账公司靠谱排名,这些推荐榜上有名 - 信息热点
  • MPC8569E高速接口设计实战:SRIO、I2C与GPIO电气规范深度解析
  • 三分钟带你了解MPK5
  • 脚长对应鞋码怎么查?这款在线工具帮你快速换算
  • HSTracker:macOS平台终极炉石传说套牌追踪器完全指南
  • MC9S12KT256 Flash操作实战:从命令序列到ECC故障处理
  • 【兰州交通大学主办 | IEEE出版,IEEE官方认可 | 往届已见刊,会后4个月完成EI、Scopus检索 | 众多院校领导坐镇】第二届电气工程、自动化与信息科学国际学术会议(EEAIS 2026)
  • 从一次真实的HW行动复盘说起:我们是如何通过SNMP弱口令‘摸清’整个靶标网络的
  • 数据标注精度评估方法论:如何识别时序标注中的系统性偏差
  • Cursor Pro破解工具:终极免费方案解决AI编程助手试用限制
  • 杭州百达翡丽手表回收去哪里?铂金认证品牌仅此一家 - 奢侈品回收评测
  • 嵌入式硬件设计核心:MC9S12E128电气特性参数深度解析与实战避坑
  • 30VIN,0.25A,抑制输出过冲,稳压LDO,XZ6339
  • Windows开机自动运行的文件清理小工具(支持按日期/后缀/大小筛选,中英文界面一键切换)
  • 低功耗模式唤醒后程序跑飞?别只怪时钟,看看 Vcore 与 Flash 等待
  • PS3 CFW兼容性深度解析:IRISMAN系统调用架构重构与性能突破
  • 如何使用Google OR-Tools快速解决企业级优化问题:终极实战指南
  • 2026推荐:食品农产品检测,海味干货检测,干制水产品检测 - 公共场所卫生检测
  • 如何快速上手暗黑破坏神2存档编辑器:新手必备的完整操作指南
  • 083、ISP 内部流水线调度:Frame-level vs Line-level 处理的延迟与带宽差异
  • Flink CDC深度解析:构建企业级实时数据湖架构设计
  • BUCK 纹波 100mV 正常吗?别只怪电感,看看续流二极管与布局
  • 2026年亲测深圳实用杀白蚁防治优质机构推荐:白蚁防治案例分享 - 信息热点