网站的制作流程郑州网站推广电话
news/
2025/10/4 2:14:53/
文章来源:
网站的制作流程,郑州网站推广电话,wordpress摘要调用,网站开发哪里有题目#xff1a;https://www.luogu.org/problemnew/show/P4115 论文#xff1a;https://wenku.baidu.com/view/1bc2e4ea172ded630b1cb602.html 重链剖分#xff0c;分别用线段树维护每条重链。线段树叶子的信息是该点轻孩子的信息#xff1b;线段树区间的信息是考虑重链的一…题目https://www.luogu.org/problemnew/show/P4115 论文https://wenku.baidu.com/view/1bc2e4ea172ded630b1cb602.html 重链剖分分别用线段树维护每条重链。线段树叶子的信息是该点轻孩子的信息线段树区间的信息是考虑重链的一个区间以及附带的轻孩子们的信息。 修改一个点改它所在的重链的信息。祖先的每条重链都有一个点的 “轻孩子信息” 改变了改一下那个位置的值更新它的线段树再用该重链的信息作为轻孩子更新更上面的重链。 本题每个点要维护的是 “向下以白点为端点的最长链” 和 “向下以白点为端点的次长链” 。用可删堆维护。 线段树区间维护 “从左边开始、以白点结束的最长链” 、 “从右边开始、以白点结束的最长链” 、 “中间一条两端点都是白点的最长链” 。前两个信息是为了更新第三个信息。 每条重链的答案放进全局可删堆中。 注意求 “次长链” 的时候自己是先把堆顶拿出来再看剩下的堆的堆顶。要注意再看之前先用删除堆更新一下 预处理的时候自己想一个一个插入。在 pshp 的时候要用到兄弟的 fl , fr , pr , sc 等信息。所以得先把线段树整个建出来不能有些孩子是空的就开始 pshp 。 #includeiostream
#includecstdio
#includecstring
#includealgorithm
#includequeue
#define ls Ls[cr]
#define rs Rs[cr]
using namespace std;
int rdn()
{int ret0;bool fx1;char chgetchar();while(ch9||ch0){if(ch-)fx0;chgetchar();}while(ch0ch9)retret*10ch-0,chgetchar();return fx?ret:-ret;
}
int Mx(int a,int b){return ab?a:b;}
int Mn(int a,int b){return ab?a:b;}
const int N1e55,M2e55,INF1e9,Lm-1e8;
int n,hd[N],xnt,to[M],nxt[M],w[M]; bool col[N];
int siz[N],son[M],dep[N],fa[N],fw[N],top[N];
int dis[N],dp2[N],lm[N],tot,rt[N],Ls[M],Rs[M];
int dy[N],fl[M],fr[M],mx[M],pr[M],sc[M];
priority_queueint q[N],dq[N],ans,dans;
int Dis(int x,int y){return dp2[y]-dp2[x];}
void frs(int x)
{while(dq[x].size()q[x].top()dq[x].top())q[x].pop(), dq[x].pop();
}
void pshp(int cr)
{pr[cr]pr[ls]; sc[cr]sc[rs];fl[cr]Mx(fl[ls],Dis(pr[cr],pr[rs])fl[rs]);fr[cr]Mx(fr[rs],Dis(sc[ls],sc[cr])fr[ls]);mx[cr]Mx(Dis(sc[ls],pr[rs])fr[ls]fl[rs],Mx(mx[ls],mx[rs]));
}
void build(int l,int r,int cr)
{crtot;fl[cr]fr[cr]mx[cr]-INF;pr[cr]dy[l]; sc[cr]dy[r];if(lr)return; int midlr1;build(l,mid,ls); build(mid1,r,rs);
}
void updt(int l,int r,int cr,int p,int k)
{if(lr){fl[cr]fr[cr]dis[k]; pr[cr]sc[cr]k;if(!q[k].size()){ mx[cr]-INF; return;}q[k].pop(); frs(k);//int d2-INF;if(q[k].size())d2q[k].top();if(!col[k])mx[cr]Mx(dis[k]d2,Mx(dis[k],d2));//col[k] not col[cr]!!else mx[cr]dis[k]d2;q[k].push(dis[k]);return;}int midlr1;if(pmid)updt(l,mid,ls,p,k); else updt(mid1,r,rs,p,k);pshp(cr);
}
void add(int x,int y,int z)
{to[xnt]y;nxt[xnt]hd[x];hd[x]xnt;w[xnt]z;}
void dfs(int cr,int f)
{dep[cr]dep[f]1; dp2[cr]dp2[f]fw[cr];fa[cr]f; siz[cr]1;for(int ihd[cr],v;i;inxt[i])if((vto[i])!f){fw[v]w[i]; dfs(v,cr); siz[cr]siz[v];if(siz[v]siz[son[cr]])son[cr]v;}
}
int Ps(int cr){return dep[cr]-dep[top[cr]]1;}
void dfsx(int cr,int f)
{if(son[cr])top[son[cr]]top[cr],dfsx(son[cr],cr);for(int ihd[cr],v;i;inxt[i])if((vto[i])!fv!son[cr]){top[v]v;dfsx(v,cr);if(fl[rt[v]]Lm)q[cr].push(fl[rt[v]]w[i]);}if(!col[cr])q[cr].push(0);if(q[cr].size())dis[cr]q[cr].top(); else dis[cr]-INF;int pPs(cr),tptop[cr];if(plm[tp]){lm[tp]p;for(int ip,kcr;i;i--,kfa[k])dy[i]k;build(1,p,rt[tp]);}updt(1,lm[tp],rt[tp],p,cr);if(tpcr)ans.push(mx[rt[cr]]);
}
void chg(int cr)
{col[cr]!col[cr];if(!col[cr])q[cr].push(0); else dq[cr].push(0);int xtop[cr]; frs(cr);if(q[cr].size())dis[cr]q[cr].top(); else dis[cr]-INF;dans.push(mx[rt[x]]);if(fa[x])dq[fa[x]].push(fl[rt[x]]fw[x]);updt(1,lm[x],rt[x],Ps(cr),cr);ans.push(mx[rt[x]]);if(fa[x])q[fa[x]].push(fl[rt[x]]fw[x]);while(fa[x]){crfa[x]; xtop[cr]; frs(cr);if(q[cr].size())dis[cr]q[cr].top(); else dis[cr]-INF;dans.push(mx[rt[x]]);if(fa[x])dq[fa[x]].push(fl[rt[x]]fw[x]);updt(1,lm[x],rt[x],Ps(cr),cr);ans.push(mx[rt[x]]);if(fa[x])q[fa[x]].push(fl[rt[x]]fw[x]);}
}
int main()
{nrdn();for(int i1,u,v,z;in;i){urdn();vrdn();zrdn();add(u,v,z);add(v,u,z);}dfs(1,0); top[1]1; dfsx(1,0);int Qrdn(); char ch;int x;while(Q--){cinch;if(chA){while(dans.size()ans.top()dans.top())ans.pop(),dans.pop();if(ans.top()Lm)puts(They have disappeared.);else printf(%d\n,ans.top());}else{ xrdn(); chg(x);}}return 0;
} 转载于:https://www.cnblogs.com/Narh/p/10776851.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/926517.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!