題目描述 description
農夫john發現做出全威士頓康星州最甜的黃油的方法:糖。把糖放在一片牧場上,他知道n(1<=n<=500)只奶牛會過來舔它,這樣就能做出能賣好價錢的超甜黃油。當然,他將付出額外的費用在奶牛上。
農夫john很狡猾。他知道他可以訓練這些奶牛,讓它們在聽到鈴聲時去乙個特定的牧場。他打算將糖放在那裡然後下午發出鈴聲,以至他可以在晚上擠奶。
農夫john知道每只奶牛都在各自喜歡的牧場呆著(乙個牧場不一定只有一頭牛)。給出各頭牛在的牧場和牧場間的路線,找出使所有牛到達的路程和最短的牧場(他將把糖放在那)。
輸入描述 input description
第一行: 三個數:奶牛數n,牧場數p(2<=p<=800),牧場間道路數c(1<=c<=1450).
第二行到第n+1行: 1到n頭奶牛所在的牧場號.
第n+2行到第n+c+1行: 每行有三個數:相連的牧場a、b,兩牧場間距(1<=d<=255),當然,連線是雙向的.
輸出描述 output description
一行 輸出奶牛必須行走的最小的距離和.
樣例輸入 sample input
3 4 5
2 3
4 1 2 1
1 3 5
2 3 7
2 4 3
3 4 5
樣例圖形
p2 p1 @–1–@ c1
\ |\
\ | \
5 7 3
\ | \
| \ c3
c2 @–5–@
p3 p4
樣例輸出 sample output 8
資料範圍及提示 data size & hint
見描述【2017.10.20考試t3】
floyd在codevs上可以過233.但是本地會超時。
陣列開到800以上
floyd:
#include
#include
#include
#include
using
namespace
std;
const
int maxn=500+1;
int a[maxn][maxn],s[maxn],d[maxn];
int n,p,m,ans;
int main()
for(int i=1;i<=p;i++)
a[i][i]=0;
for(int k=1;k<=p;k++)
for(int i=1;i<=p;i++)
for(int j=1;j<=p;j++)
for(int j=1;j<=p;j++)
for(int i=1;i<=n;i++)
for(int j=1;j<=p;j++)
printf("%d\n",ans);
return
0;}
spfa 香甜的黃油
農夫john發現做出全威士頓康星州最甜的黃油的方法 糖。把糖放在一片牧場上,他知道n 1 n 500 只奶牛會過來舔它,這樣就能做出能賣好價錢的超甜黃油。當然,他將付出額外的費用在奶牛上。農夫john很狡猾。像以前的巴甫洛夫,他知道他可以訓練這些奶牛,讓它們在聽到鈴聲時去乙個特定的牧場。他打算將糖放...
XYNU 香甜的黃油
偶係渣渣輝.蛤蛤蛤.今天集訓滴第二次比賽.過程有點刺.刺.刺激.qaq我們經歷了第三第四第五第七又爬回第三滴痛苦滴趕腳.還經歷了最後剩的題壓根不會寫 但是排名還不算考後的絕望 隊友說 你要是排名靠後又都不會寫那才是最絕望的 過程很坎坷,所幸結局還是闊以滴 就是對題目的理解程度還是很低 個人認為見得題...
Sweet Butter 香甜的黃油
題目大意 m個點,n頭奶牛,p條邊,每一頭奶牛在乙個點上,乙個點可以有多隻奶牛,求這樣乙個點,使得所有奶牛到這個點的距離之和最小。注釋 n 500 m 800 p 1450 連邊的牧場之間的距離d 255 想法 顯然,這是乙個最短路問題,有兩種途徑 1.跑多源最短路。2.跑m遍單源最短路。第1種想法...