noip模擬賽(一)寵物之戰

2021-07-22 09:54:42 字數 2004 閱讀 2736

寵物之戰

(senso.pas/c/cpp)

【問題描述】

眾所周知,mored的寵物已經被mored奴役得體無完膚。這只寵物實在忍無可忍,把自己每天走魔法樹的經歷告訴了自己的寵物。同時他還說明了自己爬樹是多麼地慢,以至於mored每天都殘酷地訓練他爬樹。

幸運的是mored的寵物的寵物不是mored的寵物,mored的寵物深知」寵物是用來寵的而不是用來奴役的」這一點,所以mored的寵物對待自己的寵物很有愛。所以mored的寵物與其寵物商量著要推翻mored的**,方法是把mored告上法庭,就以自己每天被迫爬樹來做證據。

由於魔法樹是樹,訓練樹當然也是樹啦。

mored的訓練有著gx的文化,每天mored會把自己的寵物通靈到樹的乙個端點上,這個通靈點可能與之前的通靈點相同。然後mored命令他的寵物從這個點開始走,讓這只寵物隨便訪問自己該天

之前沒有訪問過的節點

,一直走到該天無路可走

,訓練才會結束,寵物才可以休息。

mored的寵物每天都會在這棵樹上訓練,幸運的是他每天走過的訓練路徑都不同,直到若干天後,所有可能的訓練路徑都被走遍了。

你,作為mored寵物的寵物,乙隻被mored的寵物寵著的寵物,當然想幫mored的寵物算出他總共走過的路徑長度啦。

【輸入格式】

第一行包含兩個正整數n,m,表示樹的點數與邊數。

接下來m行,每行三個正整數表示li,bi,ci分別表示樹上有一條長度為

li的連線bi,ci

兩個結點的邊

【輸出格式】

僅一行表示答案。

【輸入樣例】

12 1

13 1

24 2

25 2

【輸出樣例】

【資料範圍】

對於30%的資料n≤300

對於70%的資料n≤3,000

對於100%的資料對於所有輸入的整數均不大於100,000,輸入的樹保證連通,無重邊,無自環

【樣例解釋】

可能的訓練路徑有(1-2-4),(1-2-5),(1-3),(2-4),(2-5),(2-1-3),(3-1-2-4),(3-1-2-5)

(4-2-5),(4-2-1-3),(5-2-4),(5-2-1-3)

長度依次為3,3,1,2,2,2,4,4,4,4,4,4。和為37.

【題解】

從樣例模擬解釋中尋找規律,發現樹的每條邊會累加多次,那麼,只要求出每條邊的累計貢獻的規律即可解決題目。

而,每條邊的貢獻=該邊的左子樹的葉節點數*右子樹的節點數+該邊的右子樹的葉節點數*左子樹的節點數。

#include#include#includeusing namespace std;

typedef long long ll;

inline int read()

while(c>47&&c<58)x=x*10+c-48,c=getchar();

return x*f;

}static long long ans=0;

int d[100001],f[100001],s[100001];

int n,cnt,v[200001],first[200001],nxt[200001],dis[200001];

void link(int x,int y,int z)

void dfs(int pa,int rt)

}void solve(int pa,int rt)

}int main()

dfs(0,1);

solve(0,1);

printf("%i64d\n",ans);

fclose(stdin);

fclose(stdout);

return 0;

}

noip模擬賽(一)魔法樹

魔法樹 mahou.pas c cpp 問題描述 魔法使mored在研究一棵魔法樹。魔法樹顧名思義,這貨是一棵樹 奇葩的是魔法樹上的每一條邊都擁有乙個魔法屬性 如果不那麼奇葩就不是mored的魔法樹了。魔法使mored在研究這棵魔法樹的方法比較奇葩,每一次他會選擇一條路徑 施法。這個魔法是mored...

noip模擬賽 密碼

表示沒看懂演算法3 問題描述 有壓迫,就有反抗。mored的寵物在法庭的幫助下終於反抗了。作為乙隻聰明的寵物,他打算把魔法使mored的魔法書盜去,奪取mored的魔法能力。但mored怎麼會讓自己的魔法書輕易地被盜取?mored在魔法書上設定了乙個密碼鎖,密碼鎖上有乙個問題。施以斯臥鋪魔法吧,你有...

NOIP模擬賽 老師

題目描述 一座有n層的教學樓裡有一些學生,第i 0 i n 層有studentsi個學生。你被給定了乙個數k,如果第i層有x個學生,那麼這一層需要 x k 個老師。你可以調整每個學生的樓層,但是每個學生至多只能調整一層,就是說第i層的學生只能去第i 1層 如果有的話 第i層 第i 1層 如果i 1 ...