博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[NOI2015]软件包管理器
阅读量:4634 次
发布时间:2019-06-09

本文共 1569 字,大约阅读时间需要 5 分钟。

题目:BZOJ4196、洛谷P2146、codevs4621、UOJ#128。

题目大意:有一些软件,编号0~n,它们之间有依赖关系,装编号为ai软件先要装编号为i的软件(编号为0的除外),卸载编号为i的软件必须先卸载编号为ai的软件(编号为0的除外)。它们的关系形成树形图。现在有m个任务,每次让你下载或卸载一个软件,问你本次操作一共新下载/卸载了多少软件。

解题思路:树链剖分。用线段树维护每个节点。

对于下载任务,就是将节点0到p修改成1,并统计修改了多少,对每条经过的链区间修改查询即可。

对于卸载任务,就是将以p为根的子树中所有节点修改为0,并统计修改了多少,对整个子树的区间修改查询即可。

C++ Code:

#include
#include
#include
#define N 100005#define mem(a) memset(&a,0,sizeof a)int n,fa[N],sz[N],head[N],cnt,son[N],dep[N],idx,dfn[N],d[N<<2],tag[N<<2],top[N];struct edge{ int to,nxt;}e[N<<1];inline int readint(){ char c=getchar(); for(;!isdigit(c);c=getchar()); int d=0; for(;isdigit(c);c=getchar()) d=(d<<3)+(d<<1)+(c^'0'); return d;}void dfs(int now){ sz[now]=1; for(int i=head[now];i;i=e[i].nxt) if(!dep[e[i].to]){ dep[e[i].to]=dep[now]+1; dfs(e[i].to); sz[now]+=sz[e[i].to]; if(!son[now]||sz[e[i].to]>sz[son[now]])son[now]=e[i].to; }}void dfs2(int now){ dfn[now]=++idx; if(son[now])top[son[now]]=top[now],dfs2(son[now]); for(int i=head[now];i;i=e[i].nxt) if(dep[now]
>1,le=o<<1,rr=o<<1|1; if(tag[o]==1){ d[le]=mid-l+1; d[rr]=r-mid; tag[le]=tag[rr]=1; tag[o]=0; }else if(tag[o]==-1){ d[le]=d[rr]=0; tag[le]=tag[rr]=-1; tag[o]=0; } if(L<=mid)ans=add_T(l,mid,le,L,R); if(mid
>1,le=o<<1,rr=o<<1|1; if(tag[o]==1){ d[le]=mid-l+1; d[rr]=r-mid; tag[le]=tag[rr]=1; tag[o]=0; }else if(tag[o]==-1){ d[le]=d[rr]=0; tag[le]=tag[rr]=-1; tag[o]=0; } if(L<=mid)ans=del_T(l,mid,le,L,R); if(mid

 

转载于:https://www.cnblogs.com/Mrsrz/p/7778801.html

你可能感兴趣的文章
Eclipse高级使用技巧
查看>>
第2章 数字之魅——快速寻找满足条件的两个数
查看>>
study of javaserver faces lifecycle
查看>>
转 单实例的写法
查看>>
【BZOJ4254】Aerial Tramway 树形DP
查看>>
安装Node.js和npm
查看>>
预祝大家2011农历新年快乐,宏“兔”大展,心想事成~
查看>>
笔记本中美化代码的方法
查看>>
账簿与平衡段关联表
查看>>
1837Balance
查看>>
文件基本处理
查看>>
js之base64上传图片
查看>>
[转载]使用Vitamio打造自己的Android万能播放器(7)——在线播放(下载视频)...
查看>>
23期PHP基础班第四天
查看>>
DockPanel 类
查看>>
CF1082G Petya and Graph(最小割,最大权闭合子图)
查看>>
贝克汉姆-囚
查看>>
JavaScript数据类型
查看>>
Handle/Body pattern(Wrapper pattern)
查看>>
冷知识 —— 地理
查看>>