USACO Section 3.2: Sweet Butter
这题我自己是用邻接矩阵+dijskstra方法来求的,第九个例子TLE。网上看了别人的代码,是用邻接表+BFS来完成。
这里可以学到两个小技巧,邻接表的表示方法和INT_MAX的表示方法。
/*
ID:yingzho1
LANG:C++
TASK:butter
*/
#include<fstream>
#include<cstring>
#include<queue>
#include <limits>
using namespace std;
ifstream fin("butter.in");
ofstream fout("butter.out");
;
struct vertex
{
int end,len;
};
vertex adj[MAX][MAX];
}, cowpos[]={}, n, p, c;
};
int distances[MAX];
int search(int start)
{
memset(pushed, , sizeof(pushed));
; k <= p; k++)
distances[k] = numeric_limits<int>::max();
queue<int> Q;
Q.push(start);
pushed[start] = true;
distances[start] = ;
while(!Q.empty())
{
int x = Q.front();
Q.pop();
pushed[x] = false;
; j < cnt[x]; j++)
{
if(distances[x]+adj[x][j].len < distances[adj[x][j].end])
{
distances[adj[x][j].end] = distances[x]+adj[x][j].len;
if(!pushed[adj[x][j].end])
{
Q.push(adj[x][j].end);
pushed[adj[x][j].end] = true;
}
}
}
}
;
; i<=n; i++)
{
;
else ans+=distances[cowpos[i]];
}
return ans;
}
int main()
{
memset(cnt, , sizeof(cnt));
fin>>n>>p>>c;
; i<=n; i++)
fin>>cowpos[i];
, s, t, value; i <= c; i++)
{
fin>>s>>t>>value;
adj[s][cnt[s]].end = t; adj[s][cnt[s]].len = value; cnt[s]++;
adj[t][cnt[t]].end = s; adj[t][cnt[t]].len = value; cnt[t]++;
}
int res, mins = numeric_limits<int>::max();
; i <= p; i++)
{
res = search(i);
) mins = res;
}
fout<<mins<<endl;
;
}
USACO Section 3.2: Sweet Butter的更多相关文章
- 【USACO 3.2】Sweet Butter(最短路)
题意 一个联通图里给定若干个点,求他们到某点距离之和的最小值. 题解 枚举到的某点,然后优先队列优化的dijkstra求最短路,把给定的点到其的最短路加起来,更新最小值.复杂度是\(O(NElogE) ...
- USACO 3.2.6 Sweet Butter 香甜的黄油(最短路)
Description 农夫John发现做出全威斯康辛州最甜的黄油的方法:糖.把糖放在一片牧场上,他知道N(1<=N<=500)只奶牛会过来舔它,这样就能做出能卖好价钱的超甜黄油.当然,他 ...
- 洛谷P1828 香甜的黄油 Sweet Butter
P1828 香甜的黄油 Sweet Butter 241通过 724提交 题目提供者JOHNKRAM 标签USACO 难度普及+/提高 提交 讨论 题解 最新讨论 我的SPFA为什么TLE.. 为 ...
- Sweet Butter 香甜的黄油
Sweet Butter 香甜的黄油 题目大意:m个点,n头奶牛,p条边,每一头奶牛在一个点上,一个点可以有多只奶牛,求这样一个点,使得所有奶牛到这个点的距离之和最小. 注释:n<=500 , ...
- 【香甜的黄油 Sweet Butter】
[香甜的黄油 Sweet Butter] 洛谷P1828 https://www.luogu.org/problemnew/show/P1828 JDOJ 1803 https://neooj.com ...
- P1828 香甜的黄油 Sweet Butter 最短路 寻找一个点使得所有点到它的距离之和最小
P1828 香甜的黄油 Sweet Butter 闲来无事 写了三种最短路(那个Floyed是不过的) 题目描述 农夫John发现做出全威斯康辛州最甜的黄油的方法:糖.把糖放在一片牧场上,他知道N(1 ...
- USACO Section 3.2 香甜的黄油 Sweet Butter
本题是多源最短路问题 但使用弗洛伊德算法会超时 而因为边数目比较少 所以用队列优化后的迪杰斯特拉算法可以通过 #include<iostream> #include<cstring& ...
- USACO Section 1.3 题解 (洛谷OJ P1209 P1444 P3650 P2693)
usaco ch1.4 sort(d , d + c, [](int a, int b) -> bool { return a > b; }); 生成与过滤 generator&& ...
- USACO Section 3.3: Riding the Fences
典型的找欧拉路径的题.先贴下USACO上找欧拉路径的法子: Pick a starting node and recurse on that node. At each step: If the no ...
随机推荐
- js判断浏览器滚动条是否拉到底
$(window).scroll(function(){ // 当滚动到最底部以上n像素时, 加载新内容 if ($(document).height() - $(this).scrollTop() ...
- CentOS6.5 安装JDK1.7详细步骤参考
一般情况下,我们都要将linux自带的OPENJDK卸载掉,然后安装SUN的JDK. 首先查看Linux自带的JDK是否已安装. 输入如下命令,查看已经安装的JAVA版本信息. 输入如下命令,查看JD ...
- hdu 1043 Eight 经典八数码问题
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1043 The 15-puzzle has been around for over 100 years ...
- 【BZOJ】【2661】【Beijing WC2012】连连看
网络流/费用流/二分图最大权匹配 拆点费用流求最大权匹配……为什么我拿zyf和Hzwer的代码也交不过去……WA了那么多次……so sad 求路过的神牛指导啊>_<万分感谢 //BZOJ ...
- __int64 与long long 的区别 分类: Brush Mode 2014-08-14 10:22 64人阅读 评论(0) 收藏
//为了和DSP兼容,TSint64和TUint64设置成TSint40和TUint40一样的数 //结果VC中还是认为是32位的,显然不合适 //typedef signed long int ...
- NYOJ-289 苹果 289 AC(01背包) 分类: NYOJ 2014-01-01 21:30 178人阅读 评论(0) 收藏
#include<stdio.h> #include<string.h> #define max(x,y) x>y?x:y struct apple { int c; i ...
- silverlight的第一个程序
摘要:silverlight是微软公司全力打造的一种跨平台.跨浏览器的RIA新技术,silverlight以XAML为界面呈现语言,支持2D矢量图形.动画.数据绑定.控件风格与模板.LINQ.WCF. ...
- PowerDesigner(九)-模型文档编辑器(生成项目文档)(转)
模型文档编辑器 PowerDesigner的模型文档(Model Report)是基于模型的,面向项目的概览文档,提供了灵活,丰富的模型文档编辑界面,实现了设计,修改和输出模型文档的全过程. 模型文 ...
- HTTP常见返回代码(HTTP Status codes)的分类和含义
HTTP错误主要分成三类:用户设备问题.Web服务器问题和连接问题.当客户端向Web服务器发送一个HTTP请求时,服务器都会返回一个响应代码.而这些响应代码主要分成五类. HTTP状态码中定义了5大类 ...
- POJ 1936
#include<iostream> #include<string> using namespace std; int main() { //freopen("ac ...