A.二叉树的的根

题目:http://www.contesthunter.org/contest/CH%20Round%20%2349%20-%20Streaming%20%234%20(NOIP 模拟赛Day2)/二叉树的根

题解:自己yy一下就出来了。。。

如果有度数超过3的节点,则不可能成为2叉树,直接输出0即可

否则,树中度数为1和2的点都可以作为根

代码:

 1 var i,n,x,y,tot:longint;
 2     a,d:array[0..150000] of longint;
 3 procedure init;
 4  begin
 5    readln(n);
 6    for i:=1 to n-1 do
 7     begin
 8       readln(x,y);inc(d[x]);inc(d[y]);
 9     end;
10  end;
11 procedure main;
12  begin
13    tot:=0;
14    for i:=1 to n do
15     if d[i]>=4 then begin writeln(0);exit;end
16     else if d[i]<=2 then begin inc(tot);a[tot]:=i;end;
17    writeln(tot);
18    write(a[1]);
19    for i:=2 to tot do write(' ',a[i]);
20  end;
21 
22 begin
23   init;
24   main;
25 end.     
View Code

相关文章:

  • 2022-12-23
  • 2021-06-01
  • 2021-09-10
  • 2021-11-01
  • 2021-10-16
  • 2021-11-16
  • 2021-11-17
  • 2022-02-22
猜你喜欢
  • 2021-07-19
  • 2022-01-07
  • 2022-12-23
  • 2022-01-17
  • 2021-06-18
  • 2021-07-23
  • 2021-10-24
相关资源
相似解决方案