潇洒の开始

第一步:食用头文件和定义变量,

变量干什么用的说的很清楚

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n,p,c,i,j,x,y,t,min1,head,tail,tot,u;
int a[][],b[],dis[],num[],w[][],team[];//team为队列,dis为距离,num为邻接点个数,a存相邻点
bool exist[];//exist是存在的意思,确定某个元素是否存在
int main()

第二步:正常的输入

    cin>>n>>p>>c;//奶牛数,牧场数,牧场间的道路数
for(i=; i<=p; i++)
{
b[i]=;
num[i]=;
for(j=; j<=p; j++)
w[i][j]=0x7fffffff/;//第i到第j个牧场的路程初始化为无穷
}

将两点之间的距离变为超大超大的数,酱紫好比较的啦

第三步:正常的输入加存储

for(i=; i<=n; i++)
cin>>b[i];//输入奶牛所在的牧场号
for(i=; i<=c; i++) //邻接矩阵存储,采用循环队列能够降低队列大小,队列长度只需开到2*n+5即可。
{
cin>>x>>y>>t;//相连牧场AB和两牧场间的距离
w[x][y]=t;//保存x到y间的距离
a[x][++num[x]]=y;//存相邻点,在num原有的基础上加一,并将y点存入
a[y][++num[y]]=x;//存相邻点,在num原有的基础上加一,并将x点存入
w[y][x]=w[x][y];//因为是双向连通的,所以两牧场间的距离相等
}

详细解释代码里面说的很清楚了,在啰嗦一下,双向的很重要

用地接斯科拉的哥们们注意了。

第四步:初始化minn

min1=0x7fffffff/3;//初始化min

最后一步:gao chao 预警

for(i=; i<=p; i++)
{
for(j=; j<=p; j++) dis[j]=0x7fffffff/;
//memset(team,0,sizeof(team)); //队列数组初始化
//memset(exist,false,sizeof(exist)); //exist标志初始化
dis[i]=;
team[]=i;
head=;
tail=;
exist[i]=true; //起始点入队
while(head!=tail)
{
head++;
head=((head-)%)+; //循环队列处理
u=team[head];
exist[u]=false;
for(j=; j<=num[u]; j++) //num数组储存的为当前点所相邻的点的个数
if (dis[a[u][j]]>dis[u]+w[u][a[u][j]])
{
dis[a[u][j]]=dis[u]+w[u][a[u][j]];
if (!exist[a[u][j]])//如果该点没有被拿出,就进行处理
{
tail++;
tail=((tail-)%)+;
team[tail]=a[u][j];
exist[a[u][j]]=true;//拿出该数
}
}
}
tot=;
for(j=; j<=n; j++)
tot+=dis[b[j]];//累加路程并计算
if (tot<min1) min1=tot;//找最小
}
cout<<min1;
return ;

初始化我是去掉了,因为定义在int main()外面是不需要再次清零的

然后就是类似手打的队列,挨个比较找到小的就马上替换,重要的是没有被用过就处理

再就是挨个比较找最小值就好了

完整代码:

完整代码

完美の结束

(这是我之前做的题,现在才拿出来写题解忘得差不多了,写的不好请多多谅解QWQ) (看的这么累,不点个赞再走)

洛谷 题解 P1828 【香甜的黄油 Sweet Butter】的更多相关文章

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

    P1828 香甜的黄油 Sweet Butter 241通过 724提交 题目提供者JOHNKRAM 标签USACO 难度普及+/提高 提交  讨论  题解 最新讨论 我的SPFA为什么TLE.. 为 ...

  2. P1828 香甜的黄油 Sweet Butter 最短路 寻找一个点使得所有点到它的距离之和最小

    P1828 香甜的黄油 Sweet Butter 闲来无事 写了三种最短路(那个Floyed是不过的) 题目描述 农夫John发现做出全威斯康辛州最甜的黄油的方法:糖.把糖放在一片牧场上,他知道N(1 ...

  3. P1828 香甜的黄油 Sweet Butter

    对于这道洛谷ac而我整了一下午的codevs的题,我也是很绝望啊. 原因是队列数组开小了我勒个去???我说STL怎么能过 题目描述 农夫John发现做出全威斯康辛州最甜的黄油的方法:糖.把糖放在一片牧 ...

  4. [最短路]P1828 香甜的黄油 Sweet Butter

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

  5. [LUOGU] P1828 香甜的黄油 Sweet Butter

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

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

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

  7. 【香甜的黄油 Sweet Butter】

    [香甜的黄油 Sweet Butter] 洛谷P1828 https://www.luogu.org/problemnew/show/P1828 JDOJ 1803 https://neooj.com ...

  8. 洛谷 P1828 【香甜的黄油 Sweet Butter】

    这道题应该就是模板题了吧qwq. 统计每一个牧场的放糖的情况,选择最优的即可 有亿点水的绿题. #include <bits/stdc++.h> using namespace std; ...

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

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

随机推荐

  1. jQuery中的几个案例:隔行变色、复选框全选和全不选

    1 表格隔行变色 1 技术分析: 1 )基本过滤选择器: odd: even: 2 )jq添加和移除样式: addClass(); removeClass(); 2 代码实现 <script s ...

  2. Navicat导出数据库设计文档

    前言:仅支持单表导出 导出sql: SELECT TABLE_NAME 表名, COLUMN_NAME 列名, COLUMN_TYPE 数据类型, COLUMN_KEY 主键, IF(IS_NULLA ...

  3. 【TBarCode SDK教程】TBarCode SDK 如何在 Microsoft Office 中工作?

    使用条形码软件组件 TBarCode SDK,你可以在 Microsoft Office 中快速且简便地创建各种条形码.都不需要任何编程的技巧,只需要点击几次鼠标就可以将TBarCode SDK集成到 ...

  4. 在DoNetMVC中使用控制反转和依赖注入【DI】

    本次是在MVC5中使用Autofac 第一步:程序包管理器控制台 Install-Package Autofac.MVC5 引入nuget包 这样成功之后,会在引用中出现两个DLL,分别是Autofa ...

  5. echarts Y轴名称显示不全(转载)

    转载来源:https://blog.csdn.net/qq8241994/article/details/90720657今天在项目的开发中遇到的一个问题,echarts Y轴左侧的文字太多了,显示不 ...

  6. 原生php phpmailer 发送邮件 email

    首先去github下载phpmailer https://github.com/PHPMailer/PHPMailer/ 取得里面的src文件夹中的文件 然后demo如下 首先引用命名空间 use那里 ...

  7. Python Image库简单处理图像

    直接列举几个常用的函数,可在 http://effbot.org/imagingbook/image.htm 中查看更多相关函数. from PIL import Image import numpy ...

  8. MySQL/MariaDB数据库的查询缓存优化

    MySQL/MariaDB数据库的查询缓存优化 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL架构 Connectors(MySQL对外提供的交互接口,API): ...

  9. Python入门篇-数据结构树(tree)篇

    Python入门篇-数据结构树(tree)篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.树概述 1>.树的概念 非线性结构,每个元素可以有多个前躯和后继 树是n(n& ...

  10. ITIL 4Foundation认证

    2019年5月参加了ITIL 4Foundation培训和认证.最新的ITIL4版本中,结合了Lean.Agile和DevOps的思想.经过学习后,在思想上有很大的收货. 在此记录自己的成长.