日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

COGS 2274. [HEOI 2016] tree

發布時間:2025/3/21 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 COGS 2274. [HEOI 2016] tree 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

★☆?? 輸入文件:heoi2016_tree.in?? 輸出文件:heoi2016_tree.out???簡單對比
時間限制:1 s?? 內存限制:128 MB

?

這道題數據弱到炸了 。

第一次做用樹刨在鏈上找 A了。

第二次邊都沒連,直接賦值找爸爸 A了。。

屠龍寶刀點擊就送

#include <ctype.h> #include <cstdio> #define M 100005void read(int &x) {x=0;bool f=0;char ch=getchar();while(!isdigit(ch)) {if(ch=='-') f=1;ch=getchar();}while(isdigit(ch)) {x=x*10+ch-'0';ch=getchar();}x=f?(~x)+1:x; } struct Edge {int next,to;Edge (int next=0,int to=0) :next(next),to(to){} }edge[M<<1]; int tim,cnt,fa[M],top[M],dep[M],belong[M],size[M],sign[M],N,Q,head[M]; void add(int u,int v) {edge[++cnt]=Edge(head[u],v);head[u]=cnt; } void dfs1(int x) {size[x]=1;dep[x]=dep[fa[x]]+1;for(int i=head[x];i;i=edge[i].next){int v=edge[i].to;if(fa[x]!=v){fa[v]=x;dfs1(v);size[x]+=size[v];}} } void dfs2(int x) {belong[x]=++tim;int t=0;if(!top[x]) top[x]=x;for(int i=head[x];i;i=edge[i].next){int v=edge[i].to;if(fa[x]!=v&&size[t]<size[v]) v=t; }if(t) top[t]=top[x],dfs2(t);for(int i=head[x];i;i=edge[i].next){int v=edge[i].to;if(fa[x]!=v&&v!=t) dfs2(v);} } int Chain_query(int x) {for(;x;x=fa[x])if(sign[x]) return x; } int main() {freopen("heoi2016_tree.in","r",stdin);freopen("heoi2016_tree.out","w",stdout);read(N);read(Q);sign[1]=1;for(int x,y,i=1;i<N;i++){read(x);read(y);fa[y]=x;} // dfs1(1); // dfs2(1);char str[5];for(int x;Q--;){scanf("%s",str+1);read(x);if(str[1]=='C') sign[x]=1;else{if(sign[x]) printf("%d\n",x);else printf("%d\n",Chain_query(x));}}return 0; }

?

轉載于:https://www.cnblogs.com/ruojisun/p/7197479.html

總結

以上是生活随笔為你收集整理的COGS 2274. [HEOI 2016] tree的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。