记录编号 |
435779 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[HEOI 2016] 树 |
最终得分 |
100 |
用户昵称 |
xzz_233 |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.152 s |
提交时间 |
2017-08-10 11:39:30 |
内存使用 |
1.81 MiB |
显示代码纯文本
- //暴力出奇迹!!!!!
- #include<cstdio>
- struct node {
- int brother,firstson,ans;
- bool T;
- } dots[100001];
- inline int gi() {
- int x=0;
- char c=getchar();
- while(c<'0' || c>'9')c=getchar();
- while(c>='0' && c<='9')x=x*10+c-'0',c=getchar();
- return x;
- }
- inline void dfs(int a,int Ans) {
- dots[a].ans=Ans;
- for(int i=dots[a].firstson; i; i=dots[i].brother)
- if(!dots[i].T)dfs(i,Ans);
- }
- int main() {
- freopen("heoi2016_tree.in","r",stdin);
- freopen("heoi2016_tree.out","w",stdout);
- int n=gi(),dt1,dt2,q=gi();
- char ch;
- for(int i=1; i<=n; i++)
- dots[i].ans=1;
- dots[1].T=1;
- for(int i=1; i<n; i++) {
- dt1=gi();
- dt2=gi();
- dots[dt2].brother=dots[dt1].firstson;
- dots[dt1].firstson=dt2;
- }
- while(q--) {
- ch=getchar();
- while(ch!='Q'&&ch!='C')ch=getchar();
- dt1=gi();
- if(ch=='Q')printf("%d\n",dots[dt1].ans);
- else {
- dots[dt1].T=1;
- dfs(dt1,dt1);
- }
- }
- return 0;
- }