problem description
度度熊國王率領著喵哈哈族的勇士,準備進攻嘩啦啦族。
嘩啦啦族是乙個強悍的民族,裡面有充滿智慧型的謀士,擁有無窮力量的戰士。
所以這一場戰爭,將會十分艱難。
為了更好的進攻嘩啦啦族,度度熊決定首先應該從內部瓦解嘩啦啦族。
第一步就是應該使得嘩啦啦族內部不能同心齊力,需要內部有間隙。
嘩啦啦族一共有n個將領,他們一共有m個強關係,摧毀每乙個強關係都需要一定的代價。
現在度度熊命令你需要摧毀一些強關係,使得內部的將領,不能通過這些強關係,連成乙個完整的連通塊,以保證戰爭的順利進行。
請問最少應該付出多少的代價。
input
本題包含若干組測試資料。
第一行兩個整數n,m,表示有n個將領,m個關係。
接下來m行,每行三個整數u,v,w。表示u將領和v將領之間存在乙個強關係,摧毀這個強關係需要代價w
資料範圍:
2<=n<=3000
1<=m<=100000
1<=u,v<=n
1<=w<=1000
output
對於每組測試資料,輸出最小需要的代價。
sample
sample input211213
3125
1242
33sample output
13
題意:
給出乙個圖,破壞圖中的某些邊,將乙個點分離出去。破壞每條邊的代價是與這個點相連的邊的權值和,問要將此圖中的任意一點分離出去,最小代價是多少。(語言表達有點問題,湊合看吧)
思路:
這才是真正的簽到題,不過出題率有點低,估計很多dalao們直接去做dp,做完之後就沒看別的,然後後面的看到dp出題率最高,出題數也最多就直接去搞dp了,然後都忽略了這個大水題。
明確題意之後就特別簡單了,直接定義乙個陣列記錄與每個點相連的邊的權值和,然後遍歷找最小就行了。
我猜坑點在是重邊情況,如果是有重邊的話,必須兩條邊都破壞才能分離出這個點,所以重邊是需要重複計算的。還有可能就是對題意理解不太明確,要求是乙個點孤立,並不是將圖分成兩個部分。比如1和2之間權值是10,2和3之間權值是5,3和4之間權值是10,那麼最小代價應該是10,將第乙個點或者最後乙個點分離出去,並不是把2和3之間那條邊破壞。
可能出題率低在這裡吧。其他是真的沒有什麼坑。**也超級簡單。
**:
#include #include#include
#include
using
namespace
std;
intmain()
sort(sum+1, sum+n+1
); cout
<1]<}
return0;
}
2015百度之星資格賽1002
problem description 列變位法是古典密碼演算法中變位加密的一種方法,具體過程如下 將明文本元分割成個數固定的分組 如5個一組,5即為金鑰 按一組一行的次序整齊排列,最後不足一組不放置任何字元,完成後按列讀取即成密文。比如 原文 123456789 金鑰 4 變換後的矩陣 1234 ...
2015百度之星資格賽1002
題目名稱 列變位法解密 problem description 列變位法是古典密碼演算法中變位加密的一種方法,具體過程如下 將明文本元分割成個數固定的分組 如5個一組,5即為金鑰 按一組一行的次序整齊排列,最後不足一組不放置任何字元 完成後按列讀取即成密文。比如 原文 123456789 金鑰 4 ...
百度之星資格賽
1001 給你1 n這n個數字,公升序排列,接下來按照陣列a進行位置變換,a i 代表第i個數字會變到a i 位置上,a中的數字也是從1 n。現在問有多少個不同的陣列能滿足做一次變換和做三次變換結果相同。我們可以這樣分析,x y是唯一的到y的途徑,假設x y為第一次變換,因此在第三次變換的時候任然為...