日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

COGS 2274. [HEOI 2016] tree

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

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

?

這道題數(shù)據(jù)弱到炸了 。

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

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

屠龍寶刀點(diǎn)擊就送

#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; }

?

轉(zhuǎn)載于:https://www.cnblogs.com/ruojisun/p/7197479.html

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。