香甜的黄油 Sweet Butter

黄油真的是这么做的吗?!!![惶恐]
这道题是Dijkstra算法的简单变形
通过题意我们要找到一个点使奶牛所在点的路程和最短。通过Dijkstra的模板我们可以求的一点到其他任一点的最短路径,那么我们可以遍历所有点跑一边Dijkstra,每个点的最后把奶牛所在点的dis相加,最后将每个点的路程和进行比较,输出最短。
AC代码如下:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>
#include<vector>
#define INF 0x3f3f3f3f
#define MAXN 1000
using namespace std;vector<int> G[MAXN];
vector<int> M[MAXN];int cow[MAXN];
int dis[MAXN];
int done[MAXN];struct item
{int u;int dis;friend bool operator < (struct item x,struct item y){return x.dis>y.dis;}
};priority_queue<item> q;
int mn=INF;
int main()
{int n,p,c;scanf("%d%d%d",&n,&p,&c);for(int i=1;i<=n;i++){scanf("%d",&cow[i]);}for(int i=1;i<=c;i++){int x,y,z;scanf("%d%d%d",&x,&y,&z);G[x].push_back(y);M[x].push_back(z);G[y].push_back(x);M[y].push_back(z);}for(int i=1;i<=p;i++){memset(dis,0x3f,sizeof(dis));memset(done,0,sizeof(done));q.push((item){i,0});dis[i]=0;while(!q.empty()){item r;r=q.top();q.pop();int au=r.u;if(done[au]) continue;done[au]=1;for(int j=0;j<G[au].size();j++){int p=G[au][j];int c=dis[au]+M[au][j];if(dis[p]>c){dis[p]=c;q.push((item){p,c});}}}int total=0;for(int j=1;j<=n;j++){if(cow[j]==INF) continue;total=total+dis[cow[j]];}mn=min(mn,total);}printf("%d",mn);return 0;
}

转载于:https://www.cnblogs.com/LITTLESUNwl/p/10757313.html

洛谷P1828 香甜的黄油 Sweet Butter相关推荐

  1. P1828 香甜的黄油 Sweet Butter (spfa)

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

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

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

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

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

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

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

  5. 洛谷 题解 P1828 【香甜的黄油 Sweet Butter】

    潇洒の开始 第一步:食用头文件和定义变量, 变量干什么用的说的很清楚 #include<iostream> #include<cstdio> #include<cstri ...

  6. 洛谷1828 香甜的黄油

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

  7. 香甜的黄油 Sweet Butter

    https://www.luogu.org/problemnew/show/P1828 题解: C++版本一 题解:Floyd+优化+枚举 /* *@Author: STZG *@Language: ...

  8. 香甜的黄油 Sweet Butter SPFA

    以每一个点作为源点进行最短路计算,然后累加统计有牛的顶点的最短路和取其最小值,复杂度为O(pke)=21500*800=2.4 *10^6 #include<bits/stdc++.h> ...

  9. Sweet Butter 香甜的黄油

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

最新文章

  1. aspose.words for java操作文档doc,设置一级二级三级标题以及段落表格等详情
  2. 揭开知识库问答KB-QA的面纱3·信息抽取篇
  3. Lua 数据类型--8 个基本数据类型
  4. linux ntp时间同步
  5. DIY—USB学习板设计以及驱动开发
  6. 从数组创建ArrayList
  7. 品牌直播启动的三个关键点
  8. 一个大四毕业生想对自学Android的大学生说一些话
  9. 湖北省金税盘服务器链接网站,湖北省网上税务局入口:https://wsswj.hb-n-tax.gov.cn...
  10. php集成环境总结(php新手)
  11. 设计,构建线框图和对Android应用进行原型制作:第1部分
  12. Proteus和Keil两个软件的联合使用
  13. AI之Tool:GitHub Copilot(一款人工智能编程小助手—猜你想写的代码)的简介、安装、使用方法之详细攻略
  14. 欢迎关注异贝!今天异贝与您一起分享:美容行业异贝引客方案设计!
  15. 区块链之开发命令行操作模块
  16. Elliptic Labs进军国际市场, 推出Poco F4 GT游戏智能手机
  17. 如何保护您的域名系统免遭劫持
  18. Unity3D说明文档翻译-Preferences
  19. android wifi wps 流程,android中WiFi wps连接方式
  20. ipad和android触控笔不通用,电容笔能取代apple pencil在iPad上使用吗?不看后悔!

热门文章

  1. html网页如何获取后台数据库的数据(html + ajax + php + mysql)
  2. doublevalue_Java Double类doubleValue()方法与示例
  3. set和multiset集合容器
  4. c++ 怎样连接两个链表_LeetCode | 链表的入口,一文帮你搞定“环形链表”(python版,最简单解析)...
  5. dwf怎么合成一个_将ActionForm拼合成一条插入和更新语句
  6. HDU 5730——Shell Necklace
  7. java 考试复习整理——JAVA类和类成员的修饰符
  8. socekt编程-select
  9. 分布式是写出来的(一)
  10. 顺序表实现栈相关操作