COGS 2039 樹的統計

2022-04-06 22:39:34 字數 1302 閱讀 2320

2039.樹的統計

★★   輸入檔案:counttree.in   輸出檔案:counttree.out   簡單對比

時間限制:1

s   記憶體限制:128 mb

【題目描述】

關於樹的統計問題有多種多樣的版本,這裡你需要解決乙個比較簡單的問題:對於一棵包含n個節點的有根樹,將所有點從1到n編號後,對於每乙個節點v,統計出以v為根的子樹中有多少個點的編號比v小。

【輸入格式】

輸入第一行包含乙個整數n,以下n行每行包含乙個整數,其中第i行的整數表示編號為i的節點的父親節點的編號,根的父親節點編號為0。

【輸出格式】

輸出包含n行,其中第i行給出編號為i的節點的統計結果。

【樣例輸入】32

30【樣例輸出】

0 1 2

【提示】

在此鍵入。

【**】

20%的資料1<=n<=1000

100%的資料1<=n<=100000

暴力,找出所有最底下的點(也就是葉節點),有葉節點往上不斷找到祖先,如果祖先的序號比他小,那麼祖先這個點的ans就++,找這個點時可以用拓撲排序。

1 #include2 #include3

using

namespace

std;45

const

int n = 100100;6

7 queueq;

8int fa[n]; //

記錄父親

9int

ans[n];

10int ru[n]; //

記錄入度

11int

n,d,now;

1213

void

sove()

1427 ru[fa[d]]--;

28if(ru[fa[d]]==0

) q.push(fa[d]);29}

30}3132

intmain()

3342

sove();

43for(int i=1;i<=n;++i)

44 printf("

%d\n

",ans[i]);

45return0;

46 }

COGS 2039 樹的統計

輸入檔案 counttree.in輸出檔案 counttree.out簡單對比 時間限制 1 s 記憶體限制 128 mb 關於樹的統計問題有多種多樣的版本,這裡你需要解決乙個比較簡單的問題 對於一棵包含n個節點的有根樹,將所有點從1到n編號後,對於每乙個節點v,統計出以v為根的子樹中有多少個點的編...

cogs1583 POJ3237 樹的維護

輸入檔案 maintaintree.in輸出檔案 maintaintree.out簡單對比 時間限制 5 s 記憶體限制 128 mb 給你由n個結點組成的樹。樹的節點被編號為1到n,邊被編號為1到n 1。每一條邊有乙個權值。然後你要在樹上執行一系列指令。指令可以是如下三種之一 change i v...

COGS 2096 不平凡的許願樹

noip要到了,大家來到許願樹前。這個許願樹不僅僅是許願樹,還有未卜先知的功能。眾oier問許願樹 不平凡的許願樹,ccf告訴我們noip中會有兩道題目從openjudge上選擇,你能不能告訴我是哪兩道題。許願樹想了想直接說出答案並不妥 中國有句古話叫 悶聲大發財 我就什麼也不說,這是最好的。但是我...