有一棵由n個結點構成的樹,每一條邊上都有其對應的權值。現在給定起點,求從該點出發的一條路徑(至少有一條邊)使得這條路徑上的權值之和最大,並輸出這個最大值。
第一行乙個正整數t,代表資料組數。每組資料第一行兩個正整數n(2<=n<=10^5),s(1<=s<=n),分別表示樹結點數目以及給定的起點,點的編號從1至n。接下來m行,每行三個整數x,y,z,(1<=x,y<=n,|z|<=1000),代表編號為x和y的點之間有一條權值為z的雙向邊。
每組資料輸出一行,即所找到路徑的最大權值(格式參見樣例)。
23 11 2 10
1 3 5
5 51 5 70
4 3 100
5 3 -10
2 5 60
case #1: 10這題思路比較明確,由指定點出發深度優先遍歷,無路可走的時候就可以結束,將當前路徑權值參與比較選出最大的。我做這道題的時候卻一波三折,主要是在糾結結點的儲存問題,因為題目要求點的數目較多,直接設定二維陣列儲存會報錯,然後我改用vector弄個二維陣列,卻還是報錯,又改用結構體,結構體元素中有個鄰居陣列,點的數目有100000,也只好給鄰居陣列也設定大小100000,然後再用vector,還是報錯,,,,所幸最後終於弄對了,出現這種情況的根本原因還是自己太菜了,對stl使用不熟練,不靈活。case #2: 90
#include#include
#include
using namespace std;
struct edge;
vectorve[100002];
int n,s;
bool visi[100002];
long long int maxa=0;
void dfs(int s,int ans)
int main()
dfs(s,0);
cout<<"case #"<} system("pause");
return 0;
}
CSU暑期集訓day06 平衡等式
寫乙個程式要求當輸入在整數範圍內的乙個整數r後,計算機便會檢查,在下式 處能否填上 或 號湊成相應等式。如能湊成,則印出所有這些等式的個數。注意,考慮符號的優先順序。1 2 3 4 5 6 7 8 9 r 只有一行,就是乙個整數r。只有一行,就是使等式成立的個數。遍歷每乙個位置可以放的符號的所有情況...
ACM暑期集訓day02 修路
前段時間,某省發生乾旱,b山區的居民缺乏生活用水,現在需要從a城市修一條通往b山區的路。假設有a城市通往b山區的路由m條連續的路段組成,現在將這m條路段承包給n個工程隊 n m 300 為了修路的便利,每個工程隊只能分配到連續的若干條路段 當然也可能只分配到一條路段或未分配到路段 假設每個工程隊修路...
暑期集訓Day 20 24 總結 (資料結構)
轉眼間,暑期訓練已經過了大半了。這半個多月以來也做了很多題,不過還是個菜雞。上乙個專題是字串專題,不過因為那個專題的題目沒有寫多少,所以。放到以後等做的題多一些再更新吧 這兩天學資料結構確實收穫不少,雖說之前對線段樹,bit這些早有耳聞,不過也僅僅是限於了解的層面,沒有像最近幾天系統的訓練過。漲了很...