hihocoder 程式設計練習賽59第三題樹的權重

2021-08-20 00:08:11 字數 707 閱讀 6044

題目:

其實就是乙個樹的轉移中心的題。

以1為根節點做一遍dfs可以得到1到其他所有點 的距離之和。

求某點到其他點的距離之和的時候可以根據最初的情況轉移。

比如設點k是點1的子節點,w[k]=w[1]-cnt[k]+n-cnt[k],其中cnt[k]是k的子樹的節點個數(包括k本身)。當根節點由乙個點轉移到它的子節點k時,k到其子節點的距離均-1,到其他點的距離均+1。

貼**

#include 

#define ll long long

using

namespace

std;

vector

>edge;

vector

cnt;

vector

ans;

ll w=0;

int n;

void dfs1(int u,int f,ll d)

}void dfs2(int u,int f,int w)

}int main()

dfs1(1,1,0);

dfs2(1,1,w);

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

printf("%lld\n",ans[i]);

return

0;}

hihoCoder程式設計練習賽69

時間限制 5000ms 單點時限 1000ms 記憶體限制 256mb 給定乙個小寫字母字串,請判斷它是否有長度為偶數的非空連續回文子串 輸入包含多組資料。每組資料報含一行乙個小寫字母字串 s 1 s 105 對於每組資料如果存在,輸出yes,否則輸出no 樣例輸入 cabbad ababa 樣例輸...

hihoCoder程式設計練習賽11 物品價值

描述 小hi現在有n個物品,每個物品都有乙個價值。並且這n個物品總共有m個不同的屬性,每個物品都具有其中若干屬性。小ho要從中選出若干物品,滿足每個屬性都正好有奇數個物品擁有,且被選出的物品價值總和最大。你能幫助小ho完成任務麼?輸入 第一行乙個數t 10 表示資料組數。對於每一組資料 第一行兩個數...

hihoCoder 程式設計練習賽第45場

一共四道題 題目1 互補二元組 時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 描述給定n個整數二元組 x1,y1 x2,y2 xn,yn 請你計算其中有多少對二元組 xi,yi 和 xj,yj 滿足xi xj yi yj且i j。輸入第一行包含乙個整數n。以下n行每行兩個...