最小邊權和

2021-07-31 14:05:11 字數 564 閱讀 6573

有一張n個點m條邊的有向圖,每條邊有乙個互不相同的邊權w,有q個詢問,要求你從點a經過不超過c條邊到點b,要求經過的邊權遞增並和盡量小,求出最小的邊權和,如果沒有合法方案則輸出-1。

按邊權從小到大加入做floyd即可。

#include

#include

#define fo(i,a,b) for(i=a;i<=b;i++)

using namespace std;

const int maxn=150+10,maxm=5000+10,inf=100000000;

struct dong e[maxm];

int f[maxn][maxn][maxn];

int i,j,k,l,t,n,m,q,x,y,z,ans;

bool cmp(dong a,dong b)

fo(i,1,n)

fo(j,1,n)

fo(k,1,n)

f[i][j][k]=min(f[i][j][k],f[i][j][k-1]);

while (q--)

}

樹上最小邊覆蓋問題

1077.皇宮看守 對於一條邊,可以由父節點覆蓋,或者子節點覆蓋,f u 0 表示該節點不放士兵,f u 1 表示該節點放士兵.當該節點不放時,只有由所有子節點放的情況轉移 當該節點放時,可以由子節點放或不放的情況轉移而來 includeusing namespace std const int n...

UVA 10099 最大的最小邊。。

題目連線 這個題很yd,之前一直不知道導遊還要佔乙個容量,所以連樣例都搞不懂。悲催。解法是利用floyd演算法,最後求出那條邊之後再做一下出發就ok了 我的 include include includeusing namespace std int n,m int dis 105 105 int ...

HDU 1350 最小邊覆蓋

將某個人的行程視為二分圖中的乙個節點,用結構體記錄每個節點的資訊 起點時間,終點時間,位置 然後對於每個節點,看它結束後能否提前趕到其他節點,能的話就加邊。然後就用二分圖匹配,算出最小邊覆蓋就可以了。為什麼是最小邊覆蓋,因為乙個計程車走一條邊,囊括所有節點的最少的邊數就是我們要求的最少計程車數。記得...