题目描述

农夫John发现做出全威斯康辛州最甜的黄油的方法:糖。把糖放在一片牧场上,他知道N(1<=N<=500)只奶牛会过来舔它,这样就能做出能卖好价钱的超甜黄油。当然,他将付出额外的费用在奶牛上。

农夫John很狡猾。像以前的Pavlov,他知道他可以训练这些奶牛,让它们在听到铃声时去一个特定的牧场。他打算将糖放在那里然后下午发出铃声,以至他可以在晚上挤奶。

农夫John知道每只奶牛都在各自喜欢的牧场(一个牧场不一定只有一头牛)。给出各头牛在的牧场和牧场间的路线,找出使所有牛到达的路程和最短的牧场(他将把糖放在那)

输入

第一行: 三个数:奶牛数N,牧场数(2<=P<=800),牧场间道路数C(1<=C<=1450)

第二行到第N+1行: 1到N头奶牛所在的牧场号

第N+2行到第N+C+1行: 每行有三个数:相连的牧场A、B,两牧场间距离D(1<=D<=255),当然,连接是双向的

输出

一行 输出奶牛必须行走的最小的距离和

样例输入

3 4 5
2
3
4
1 2 1
1 3 5
2 3 7
2 4 3
3 4 5

样例输出

8

提示

说明

{样例图形

P2

P1 @--1--@ C1

|

|

5  7  3

|

|     C3

C2 @--5--@

P3    P4

} {说明:

放在4号牧场最优

}

解题思路:

最短路

根据题意,本题求的是最短路,主要算法为Dijstra或Floyd(数据小)。

依次枚举把糖放在第i个牧场,到每个有奶牛的牧场的最短路径之和,取最小值,即为所求。

ps:不是所有的牧场都有奶牛,在计算最短路径和时,算的是有奶牛的牧场的最短路径和。

代码:

#include<bits/stdc++.h>
using namespace std;
const int MAXN=810;
const int MAXM=1460;
const int MAXD=510;
int cow[MAXD],cr[MAXN],dis[MAXN][MAXN];
int n,p,m,ans=1e9;
int wq=0;
void floyd(int x)
{wq=0;for(int i=1;i<=p;i++)wq+=dis[x][i]*cr[i];ans=min(ans,wq);
}
int main()
{cin>>n>>p>>m;for(int i=1;i<=n;i++){cin>>cow[i];cr[cow[i]]++;}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++){int x,y,z;cin>>x>>y>>z;dis[x][y]=z;dis[y][x]=z;}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++){floyd(i);}cout<<ans<<endl;
} 

3.2.6 Sweet Butter香甜的黄油 USACO相关推荐

  1. Sweet Butter 香甜的黄油

    Sweet Butter 香甜的黄油 题目大意:m个点,n头奶牛,p条边,每一头奶牛在一个点上,一个点可以有多只奶牛,求这样一个点,使得所有奶牛到这个点的距离之和最小. 注释:n<=500 , ...

  2. USACO 3.2.6 Sweet Butter 香甜的黄油(最短路)

    Description 农夫John发现做出全威斯康辛州最甜的黄油的方法:糖.把糖放在一片牧场上,他知道N(1<=N<=500)只奶牛会过来舔它,这样就能做出能卖好价钱的超甜黄油.当然,他 ...

  3. USACO 3.2 Sweet Butter 香甜的黄油

    Description 农夫John发现做出全威斯康辛州最甜的黄油的方法:糖.把糖放在一片牧场上,他知道N(1<=N<=500)只奶牛会过来舔它,这样就能做出能卖好价钱的超甜黄油.当然,他 ...

  4. SSL-1693 USACO 3.2 Sweet Butter 香甜的黄油 (Bellman DIJ SPFA)

    题目大意 找到一个点,使得所有的有黄牛的点到这个点的距离之和最小. 思路 SPFA算法 代码 #include<cstdio> #define INF 2147483648//初始化一个很 ...

  5. 【图论】【最短路】【SPFA】香甜的黄油 Sweet Butter (luogu 1828)

    香甜的黄油 Sweet Butter luogu 1828 题目大意: 有n头奶牛,他们在不同的牧场中,他们之间有一些路,现在要让他们去一个地方吃黄油,使他们的总距离最小 题目描述 农夫John发现做 ...

  6. 洛谷P1828 香甜的黄油 Sweet Butter

    香甜的黄油 Sweet Butter 黄油真的是这么做的吗?!!![惶恐] 这道题是Dijkstra算法的简单变形 通过题意我们要找到一个点使奶牛所在点的路程和最短.通过Dijkstra的模板我们可以 ...

  7. 信息学奥赛一本通 1345:【例4-6】香甜的黄油 | 洛谷 P1828 [USACO3.2]香甜的黄油 Sweet Butter

    [题目链接] ybt 1345:[例4-6]香甜的黄油 洛谷 P1828 [USACO3.2]香甜的黄油 Sweet Butter [题目考点] 1. 图论 最短路径 [解题思路] 将题目叙述转为图论 ...

  8. [USACO3.2]香甜的黄油 Sweet Butter

    香甜的黄油 1.问题分析 2.具体代码 3.总结 题目链接 1.问题分析 模拟一遍过程,就可以发现只需要先跑一遍最短路,再搜出结果就行了. 复习最短路的水题. 2.具体代码 #include < ...

  9. 香甜的黄油(SPFA)

    香甜的黄油(SPFA) Description 农夫John发现做出全威斯康辛州最甜的黄油的方法:糖.把糖放在一片牧场上,他知道N(1<=N<=500)只奶牛会过来舔它,这样就能做出能卖好 ...

最新文章

  1. 网易伏羲三项研究入选CVPR:AI感知表情能力将达到人类水平
  2. Fiddler的学习
  3. POJ 计算几何专项训练(1) 【2318】【2398】【3304】【2653】【1556】【1066】...
  4. 给文物安全信息化支个招
  5. flash的Socket通讯沙箱和安全策略问题
  6. python调用simulink_使用Python从dbc文件中提取simulink建模数据定义
  7. 心理学Notes:常用心理测量工具的选择
  8. 移动开发—媒体查询(Media Query)
  9. 【集群仿真】基于matlab匈牙利算法无人机队形重构集群仿真【含Matlab源码 1498期】
  10. m3u8视频下载和转码mp4
  11. 新建的module没有蓝色小块
  12. imagepreview使用案例_展示组件 ImagePreview 图片预览 - 闪电教程JSRUN
  13. Python \033显示为
  14. 以软件测试的角度测试一支笔,软件测试面试:如何测试一支笔(铅笔,钢笔,中性笔)...
  15. 在网上看别人去韩国的日记
  16. AutoIt3(AU3)开发的分辨率快速设置工具
  17. APICloud AVM框架 封装日历组件
  18. 2005莱卡我型我show里的珍贵友谊
  19. 苹果手机打开APP显示APP未受信任的解决办法
  20. 基于JAVA英语课程学习网站计算机毕业设计源码+系统+mysql数据库+lw文档+部署

热门文章

  1. jsp弹出新窗口代码
  2. STM32使用ADC+DMA进行多通道模拟量采集 (踩坑及傻瓜式解析)
  3. GaussDB数据类型介绍
  4. 通过内网连接GaussDB
  5. 武大计算机科学与技术弘毅学堂,武汉大学研究生精品课-百余新学子体验“弘毅学堂”...
  6. signature=0cbbef017ab45816d9cb00aab39ea9bf,乳腺癌术后伴发胃非霍奇金淋巴瘤一例报告
  7. 攻防世界-pwn-forgot
  8. 数据结构(C语言)第二版 第一章课后答案
  9. 沪铅上市十周年 “铅华”与本色尽显
  10. 2020 EC Final 诸事不顺记