洛谷P1828 香甜的黄油 Sweet Butter
香甜的黄油 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相关推荐
- P1828 香甜的黄油 Sweet Butter (spfa)
题目描述 农夫John发现做出全威斯康辛州最甜的黄油的方法:糖.把糖放在一片牧场上,他知道N(1<=N<=500)只奶牛会过来舔它,这样就能做出能卖好价钱的超甜黄油.当然,他将付出额外的费 ...
- 信息学奥赛一本通 1345:【例4-6】香甜的黄油 | 洛谷 P1828 [USACO3.2]香甜的黄油 Sweet Butter
[题目链接] ybt 1345:[例4-6]香甜的黄油 洛谷 P1828 [USACO3.2]香甜的黄油 Sweet Butter [题目考点] 1. 图论 最短路径 [解题思路] 将题目叙述转为图论 ...
- 【图论】【最短路】【SPFA】香甜的黄油 Sweet Butter (luogu 1828)
香甜的黄油 Sweet Butter luogu 1828 题目大意: 有n头奶牛,他们在不同的牧场中,他们之间有一些路,现在要让他们去一个地方吃黄油,使他们的总距离最小 题目描述 农夫John发现做 ...
- [USACO3.2]香甜的黄油 Sweet Butter
香甜的黄油 1.问题分析 2.具体代码 3.总结 题目链接 1.问题分析 模拟一遍过程,就可以发现只需要先跑一遍最短路,再搜出结果就行了. 复习最短路的水题. 2.具体代码 #include < ...
- 洛谷 题解 P1828 【香甜的黄油 Sweet Butter】
潇洒の开始 第一步:食用头文件和定义变量, 变量干什么用的说的很清楚 #include<iostream> #include<cstdio> #include<cstri ...
- 洛谷1828 香甜的黄油
题目描述 农夫John发现做出全威斯康辛州最甜的黄油的方法:糖.把糖放在一片牧场上,他知道N(1<=N<=500)只奶牛会过来舔它,这样就能做出能卖好价钱的超甜黄油.当然,他将付出额外的费 ...
- 香甜的黄油 Sweet Butter
https://www.luogu.org/problemnew/show/P1828 题解: C++版本一 题解:Floyd+优化+枚举 /* *@Author: STZG *@Language: ...
- 香甜的黄油 Sweet Butter SPFA
以每一个点作为源点进行最短路计算,然后累加统计有牛的顶点的最短路和取其最小值,复杂度为O(pke)=21500*800=2.4 *10^6 #include<bits/stdc++.h> ...
- Sweet Butter 香甜的黄油
Sweet Butter 香甜的黄油 题目大意:m个点,n头奶牛,p条边,每一头奶牛在一个点上,一个点可以有多只奶牛,求这样一个点,使得所有奶牛到这个点的距离之和最小. 注释:n<=500 , ...
最新文章
- aspose.words for java操作文档doc,设置一级二级三级标题以及段落表格等详情
- 揭开知识库问答KB-QA的面纱3·信息抽取篇
- Lua 数据类型--8 个基本数据类型
- linux ntp时间同步
- DIY—USB学习板设计以及驱动开发
- 从数组创建ArrayList
- 品牌直播启动的三个关键点
- 一个大四毕业生想对自学Android的大学生说一些话
- 湖北省金税盘服务器链接网站,湖北省网上税务局入口:https://wsswj.hb-n-tax.gov.cn...
- php集成环境总结(php新手)
- 设计,构建线框图和对Android应用进行原型制作:第1部分
- Proteus和Keil两个软件的联合使用
- AI之Tool:GitHub Copilot(一款人工智能编程小助手—猜你想写的代码)的简介、安装、使用方法之详细攻略
- 欢迎关注异贝!今天异贝与您一起分享:美容行业异贝引客方案设计!
- 区块链之开发命令行操作模块
- Elliptic Labs进军国际市场, 推出Poco F4 GT游戏智能手机
- 如何保护您的域名系统免遭劫持
- Unity3D说明文档翻译-Preferences
- android wifi wps 流程,android中WiFi wps连接方式
- ipad和android触控笔不通用,电容笔能取代apple pencil在iPad上使用吗?不看后悔!
热门文章
- html网页如何获取后台数据库的数据(html + ajax + php + mysql)
- doublevalue_Java Double类doubleValue()方法与示例
- set和multiset集合容器
- c++ 怎样连接两个链表_LeetCode | 链表的入口,一文帮你搞定“环形链表”(python版,最简单解析)...
- dwf怎么合成一个_将ActionForm拼合成一条插入和更新语句
- HDU 5730——Shell Necklace
- java 考试复习整理——JAVA类和类成员的修饰符
- socekt编程-select
- 分布式是写出来的(一)
- 顺序表实现栈相关操作