時間限制:1000 ms | 記憶體限制:65535 kb
難度:3
描述
bob 一家人要去下館子,為什麼呢?因為他姑姑的大爺的叔叔的孫子的表叔的嬸嬸的兒子來了,親戚來了當然要下館子,可是bob家在偏僻的小山屯,飯店在城裡啊
距離老遠了。。。。。
於是他們決定坐車去,可是家裡面就有一輛車啊,還是個拖拉機。。。。。。
並且,山路不好走啊,不能過超過這條路的載客量,於是不得不再回去一趟。。。。。。
比如,在下面的地圖,假設bob家在1號村莊,飯店在7號村莊,其中一條邊表示給條路上的最大載客量
現在bob要將他的親戚以及家人99人(不包含bob)送到城裡面,選擇的最好路線是1->2->4->7
並且往返5次。。。。。現在我們請你幫忙計算bob將親戚以及家人送到城鎮裡面所用的最少往返次數。。。
輸入
輸入包含若干組資料,每組資料的第一行有兩個整數n(n<=100)和r,分別表示村莊的數量,和道路的數量,接下來的r行每行有三個整數
u,v,w;表示u號村莊到v號村莊有一條路以及這條路的最大載客量為w,
隨後的一行三個數x,y,d,表示bob的家在x號村莊,飯店在y號村莊以及bob和他親戚的總人數
輸出
輸出最少的往返的次數,如果到達不了請輸出-1;
樣例輸入
7 10樣例輸出1 2 30
1 3 15
1 4 10
2 4 25
2 5 60
3 4 40
3 6 20
4 7 35
5 7 20
6 7 30
1 7 99
5上傳者acm_王亞龍
解題:試了幾種姿勢,發現求最短路比較好,不過要注意起點等於終點這種坑爹情況。
1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #includeview code11 #include
12 #include 13
#define ll long long
14#define pii pair15
#define inf 0x3f3f3f3f
16using
namespace
std;
17const
int maxn = 110;18
struct
arc25
};26 arc e[maxn*maxn];
27int
head[maxn],tot,n,m,s,t,d[maxn];
28bool
done[maxn];
29void add(int u,int v,int
cost)
33void
dijkstra()
38 priority_queue< pii,vector< pii >,less< pii > >q;
39 d[s] =inf;
40q.push(make_pair(d[s],s));
41while(!q.empty())51}
52}53}
54int
main()
63 scanf("
%d %d %d
",&s,&t,&w);
64if(s ==t)
68dijkstra();
69if(d[t] <= 1) puts("-1"
);70
else74}
75return0;
76 }
nyist 組隊賽(三)
本次比賽是浙江省賽的題,做了5 道題感覺水平有點次啊,讓我感到差距太大,自己需要學的知識好有很多 比賽前10分鐘我來晚了隊友等著我讀題,當我來的時候,當時別人已經把a題給a出來了,a題就是乙個大水題,1分鐘讀題 2分鐘 接著就是c題2分鐘讀題 n分鐘思考 2分鐘 n 20 也是乙個水題,接著g題,模...
nyist 組隊賽(四)
本次已是第四次組隊賽了,感覺狀態不太好,隊友之間配合的不是那麼默契,a,b,c,g,f,h題都是比較水的題目,不過在做題的過程中 總是讓人感覺出乎意外,第一題即wa了一次,緊接著第二題wa了3次,英文水平還是太差啊,需惡補一下,就因為前兩題的判斷失誤,導致f題這麼水 的題,都不敢輕易地寫 比人家慢了...
nyist 小光棍數
描述 最近topcoder的xd遇到了乙個難題,倘若乙個數的三次方的後三位是111,他把這樣的數稱為小光棍數。他已經知道了第乙個小光棍數是471,471的三次方是104487111,現在他想知道第m m 10000000000 個小光棍數是多少?輸入 有多組測試資料。第一行乙個整數n,表示有n組測試...