題解 洛谷P1828 香甜的黃油(最短路)

2021-08-21 15:11:55 字數 1938 閱讀 4685

幾乎是一道模板的最短路問題,但我們為了記錄答案的最小值,可以暴力列舉從1-n作為出發點,記錄下每個牧場有多少頭奶牛,然後求最短路,答案就是1-n號牧場最短路*該牧場奶牛數量之和,不斷取最小值就行。這道題在洛谷上用spfa可以ac,用floyd會tle 3個點,用不加優化dijkstra也許會tle 3個,這裡把三個**都貼上來,以供參考。

ac 100:spfa

#include#include#include#include#includeusing namespace std;

const int maxn=810;

const int maxm=1460;

int n,p,m;

int head[maxn],nnext[maxm*2],to[maxm*2],length[maxm*2],team[maxn],dis[maxn];

int tot,cow[510],cnt[maxn],s=0,t=0;

bool b[maxn];

int ans=1e9,q=0;

void add(int x,int y,int l)

void spfa(int x)

dis[x]=0;

team[t]=x;

t++;

b[x]=true;

while(s!=t)

}} }

for(int i=1;i<=p;i++)

//cout<>n>>p>>m;

for(int i=1;i<=n;i++)

for(int i=1;i<=m;i++)

for(int i=1;i<=p;i++)

cout<70分 floyd:

#include#include#include#includeusing namespace std;

const int maxn=810;

const int maxm=1460;

int cow[510],cnt[maxn],dis[maxn][maxn];

int n,p,m,ans=1e9,q=0;

void floyd(int x)

ans=min(ans,q);

}int main()

for(int i=1;i<=p;i++)

for(int j=1;j<=p;j++)

if(i==j) dis[i][j]=0;

else dis[i][j]=1e9;

for(int i=1;i<=m;i++)

for(int k=1;k<=p;k++)

for(int i=1;i<=p;i++)

for(int j=1;j<=p;j++)

dis[i][j]=min(dis[i][j],dis[i][k]+dis[k][j]);

for(int i=1;i<=p;i++)

cout<70分dijkstra:

#include#include#include#include#includeusing namespace std;

const int maxn=810;

const int maxm=1460;

int dis[maxn],cow[510],cnt[maxn];

bool b[maxn];

int e[maxn][maxn];

int ans=1e9,q=0,minn,u;

int n,m,p;

void dijkstra(int x)

for(int i=1;i<=p;i++)

for(int j=1;j<=p;j++)

if(i==j) e[i][j]=0;

else e[i][j]=1e9;

for(int i=1;i<=m;i++)

for(int i=1;i<=p;i++)

cout

}

P1828 香甜的黃油 (spfa)

題目描述 農夫john知道每只奶牛都在各自喜歡的牧場 乙個牧場不一定只有一頭牛 給出各頭牛在的牧場和牧場間的路線,找出使所有牛到達的路程和最短的牧場 他將把糖放在那 題目鏈結 演算法 算出任意兩個牧場間最短距離,列舉目的地,取最小值。floyd會超時,對每個點用spfa。1 include 2 us...

題解 洛谷P1738 洛谷的資料夾

一 目錄概覽 二 題目大意 三 大致思路 四 實現 五 剖析 六 總結回顧 kkksc03想好了很多應該有的資料夾路徑名。問題是,需要是使這些資料夾都存在,需要新建幾個資料夾呢?資料夾路徑是什麼?例如 a b c,表示在根目錄下有a資料夾,在a資料夾裡有b資料夾,在b資料夾裡有c資料夾。其他路徑同理...

題解 洛谷P1443 馬的遍歷

1.注意輸出格式 printf 5d 代表左對齊,空5格。2.team陣列要開的大點。否則會wa或者re一些點。3.結構體來存team陣列,最後要判斷到不了輸出 1 好像也沒啥了。include include include include include includeusing namespa...