裝病的聚聚
時間限制: 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字首開始。比如,變...