裝病的聚聚 codevs 5172

2021-07-22 16:30:05 字數 1405 閱讀 5538

裝病的聚聚

時間限制: 1 s

空間限制: 32000 kb

題目等級 : 鑽石 diamond

題解 題目描述 description

聚聚為了逃課推黃油,裝作一副奄奄一息的樣子,已經沒來上課好幾天了,lls知道了這個訊息怒髮衝冠,命令松鼠在最短的時間內找到聚聚,於是故事開始了……

松鼠和w聚聚同在乙個有向圖上,圖有n個頂點,m條邊將其相連,松鼠接到命令時在1號點,而w聚聚則在n點推黃油,松鼠身上有祖傳的k塊瞬移寶石,可以使他瞬間跨越一條道路,已知通過第i條路費時為ti,利用寶石可以不費時,現在要你合理利用這些寶石,幫助松鼠在最短時間內找到w聚聚,完成任務。

輸入描述 input description

第一行三個正整數n,m,k分別表示有n個頂點和m條邊和k個寶石。

接下來m行,每行三個整數a,b,t,表示從a到b有一條費時為t的邊

(注意,有向圖!!!)

輸出描述 output description

輸出一行,乙個整數表示所用最短時間

樣例輸入 sample input

5 5 1

1 2 4

1 4 10

2 3 1

3 4 2

4 5 8

樣例輸出 sample output

7資料範圍及提示 data size & hint

20%的資料:2<=n,m<=1000 k=0

另外20%的資料:2<=n,m<=500 k=1

另外20%的資料:2<=n,m<=10000 k=1

100%的資料:2<=n,m<=10000 k<=10

最短路問題,用spfa解決

設dis[i][j]表示由原點走到i節點用了j個寶石的最短路長度 dis[i][j]=min(dis[u][j]+g[u][i],dis[u][j-1],dis[i][j]) 下面附上**:

#include

#include

#include

#include

#include

#include

using

namespace

std;

int dis[10001][11];

int head[10001];

int p[10001];int n,m,k;queue

q;int pos=0;

struct edgee[1000001*3];

int add(int a,int b,int c)

int spfa()

}if (dis[v][j]>dis[u][j]+w)}}

}}

}int main()

spfa();

cout

<}

C ?取代C 的東東? C 的擴充套件語言

我看c 大部分人都還沒學會吧!微軟又在研究個新東東了,名字夠怪的,叫c 是個數學中的符號,ms 上說是作為c 的乙個擴充套件語言,關於它的語法,第一次看到,讓人看了發暈,不知在寫什麼。看下面的 片段 片段1 using microsoft.ega using system public class ...

C 基礎 C 對C的公升級

1.定義的宣告 與c語言相比,c 中更加強調語言的 實用性 所有的變數都可以在需要使用時再定義 例如 for int i 0 i 10 i 兩個計數變數都可以在使用的時候定義,這時他們的作用範圍只在這個迴圈中,迴圈結束就將被釋放 在c語言中,使用 無法獲得 register 變數的位址,是因為 變數...

C 與C的區別

l c如果不寫返回值,預設是int,而c 中不能不寫返回值 可用void表示無返回值 如func1 l int func1 在c中表示可帶任意引數的函式,這是c的漏洞,使得它避開了引數型別檢查 而c 中表示不帶引數的函式。2 標頭檔案的區別 l c 的標頭檔案去掉了c中的.h,以c字首開始。比如,變...