acwing1127 香甜的黃油

2021-10-02 17:22:29 字數 1398 閱讀 1698

香甜的黃油題目鏈結

農夫john發現了做出全威士頓康星州最甜的黃油的方法:糖。把糖放在一片牧場上,他知道 n 只奶牛會過來舔它,這樣就能做出能賣好價錢的超甜黃油。當然,他將付出額外的費用在奶牛上。農夫john很狡猾,就像以前的巴甫洛夫,他知道他可以訓練這些奶牛,讓它們在聽到鈴聲時去乙個特定的牧場。他打算將糖放在那裡然後下午發出鈴聲,以至他可以在晚上**。農夫john知道每只奶牛都在各自喜歡的牧場(乙個牧場不一定只有一頭牛)。給出各頭牛在的牧場和牧場間的路線,找出使所有牛到達的路程和最短的牧場(他將把糖放在那)。

資料保證至少存在乙個牧場和所有牛所在的牧場連通。第一行: 三個數:奶牛數 n,牧場數 p,牧場間道路數 c。

第二行到第 n+1 行: 1 到 n 頭奶牛所在的牧場號。

第 n+2 行到第 n+c+1 行:每行有三個數:相連的牧場a、b,兩牧場間距 d,當然,連線是雙向的。

共一行,輸出奶牛必須行走的最小的距離和。

1≤n≤500,

2≤p≤800,

1≤c≤1450,

1≤d≤255

這裡我直接用的spfa卡過了,但是如果資料好一點會被卡掉,用dijkstra堆優化做很穩(m∗n∗

*n*∗n

∗lgn)

#include

using namespace std;

typedef

long

long ll;

typedef pair<

int,

int> pii;

typedef

unsigned

long

long ull;

int n,m,p;

int a[

810]

,b[810];

int h[

810]

,e[3000

],ne[

3000

],w[

3000

],idx;

int d[

810]

;bool st[

810]

;void

add(

int a,

int b,

int c)

intspfa

(int start)}}

}int res=0;

for(

int i=

1;i<=n;i++

)return res;

}int

main()

for(

int i=

0;i)int res=

0x3f3f3f3f

;for

(int i=

1;i<=p;i++

) cout

}

香甜的黃油

農夫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種想法...