Highway Project---zoj3946(最短路SPFA)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5718
题意:
有n个点 m(n,m<=10^5)条路,现在要建路,每条路连接uv两个点,所需时间是time花费是cost,现要求从0点到达其他点的,让时间和最小,当有多种选择时要求修路的总花费最小,输出最小时间及花费;
可以看成最短路问题
我们定义两个数组Time[i]表示从起点到 i 点所需的最小时间,Cost[i]表示到达 i 的那个点 u 到 i 的最小花费;其实就相当于是最短路中的dist和最小生成树中的dist
需要注意的是,本题数据超int了,所以初始化的时候要注意最大值的值;
#include<iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<queue>
#include<vector>
using namespace std;
#define N 100050
typedef long long LL;
const LL INF = (1ll<<)-;
struct node
{
int v;
LL cost, time;
node(int v0=, LL c=, LL t=) : v(v0),cost(c), time(t){}
}; vector<vector<node> >G;
int n, vis[N];
LL Cost[N], Time[N]; void SPFA()
{
for(int i=; i<n; i++)
{
Cost[i] = Time[i] = INF;
vis[i] = ;
}
Cost[] = Time[] = ; queue<int>Q;
Q.push(); while(Q.size())
{
int p = Q.front(); Q.pop(); vis[p] = ; int len = G[p].size();
for(int i=; i<len; i++)
{
node q = G[p][i];
if(Time[q.v] > Time[p]+q.time || (Time[q.v]==Time[p]+q.time&&Cost[q.v]>q.cost))
{
Time[q.v] = Time[p]+q.time;
Cost[q.v] = q.cost;
if(!vis[q.v])
{
vis[q.v] = ;
Q.push(q.v);
}
}
}
}
LL TimeSum = , CostSum = ;
for(int i=; i<n; i++)
{
TimeSum += Time[i];
CostSum += Cost[i];
}
printf("%lld %lld\n", TimeSum, CostSum);
} int main()
{
int T, m;
//cout<<INF;
scanf("%d", &T);
while(T--)
{
scanf("%d %d", &n, &m);
G.clear();
G.resize(n+); for(int i=; i<m; i++)
{
int u, v;
LL cost, time;
scanf("%d %d %lld %lld", &u, &v, &time, &cost);
G[u].push_back(node(v, cost, time));
G[v].push_back(node(u, cost, time));
} SPFA();
}
return ;
}
Highway Project---zoj3946(最短路SPFA)的更多相关文章
- ZOJ3946:Highway Project(最短路变形)
本文转载自:http://www.javaxxz.com/thread-359442-1-1.html Edward, the emperor of the Marjar Empire, wants ...
- ZOJ-3946 Highway Project (最短路)
题目大意:一张带权无向图,权有两个参数(d,c),分别表示走过这条边的时间和建造这条边的代价.要求选出一些边,使得0节点到其他点的距离之和最短,并在最短的基础上求最小代价. 题目分析:这是16年浙江省 ...
- ZOJ 3946 Highway Project 贪心+最短路
题目链接: http://www.icpc.moe/onlinejudge/showProblem.do?problemCode=3946 题解: 用dijkstra跑单元最短路径,如果对于顶点v,存 ...
- (spfa) Highway Project (zoj 3946 )
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5718 Highway Project Time Limit: 2 Seco ...
- ZOJ 3946.Highway Project(The 13th Zhejiang Provincial Collegiate Programming Contest.K) SPFA
ZOJ Problem Set - 3946 Highway Project Time Limit: 2 Seconds Memory Limit: 65536 KB Edward, the ...
- zoj 3946 Highway Project(最短路 + 优先队列)
Highway Project Time Limit: 2 Seconds Memory Limit: 65536 KB Edward, the emperor of the Marjar ...
- 最短路模板(Dijkstra & Dijkstra算法+堆优化 & bellman_ford & 单源最短路SPFA)
关于几个的区别和联系:http://www.cnblogs.com/zswbky/p/5432353.html d.每组的第一行是三个整数T,S和D,表示有T条路,和草儿家相邻的城市的有S个(草儿家到 ...
- ZOJ 3946 Highway Project(Dijkstra)
Highway Project Time Limit: 2 Seconds Memory Limit: 65536 KB Edward, the emperor of the Marjar ...
- L - Subway(最短路spfa)
L - Subway(最短路spfa) You have just moved from a quiet Waterloo neighbourhood to a big, noisy city. In ...
随机推荐
- resize2fs: Bad magic number in super-block while trying to open
I am trying to resize a logical volume on CentOS7 but am running into the following error: resize2fs ...
- 基于bootstrap的Dialog
function yms_Dialog(container_id, modal_path, handle_function) { /// <summary> /// ...
- hbase shell学习-2
一个学生成绩表的例子来演示hbase的用法. name grade course math english Tom 5 97 87 Jim 4 89 80 表的创建:语法:create '表名称',' ...
- JavaScript 事件参考手册
事件通常与函数配合使用,这样就可以通过发生的事件来驱动函数执行. 事件句柄 HTML 4.0 的新特性之一是有能力使 HTML 事件触发浏览器中的动作(action),比如当用户点击某个 HTML 元 ...
- 最新版ChemDraw 15.1 免费获取下载
ChemDraw 15.1 Pro是最新版的ChemOffice套件的个人生产力工具,它可以帮助科学家有效地捕捉和分享工作内容,通过可视化功能对结果获得更深入的了解.现在为大家带来好消息,ChemOf ...
- TCP处理主要开销
快速的网络TCP 通常受限 发送主机 与 接收主机. 而不是网络设备或协议本身的实现. TCP的处理的主要开销 分为中断操作.数据复制和协议处理. 1:中断操作 2:数据复制 3:协议处理 TCP的处 ...
- 在Extjs中动态增加控件
Ext.onReady(function () { Ext.QuickTips.init(); Ext.form.Field.prototype.msgTarget = 'side'; var aut ...
- PHP-005
MySql 表列默认时间类型设置:数据类型:timestamp,缺省值:CURRENT_TIMESTAMP
- 当div没有设置宽度,使用width的fit-content和margin:auto实现元素的水平居中
当我们做水平居中的时候,会有许多方法,margin:0 auto,或者test-align:center,以及flex布局.当元素的width不固定的时候,我们如何实现水平居中呢,代码如下: < ...
- 为什么在js当中没有var就是全局变量
因为,在js中,如果某个变量没有var声明,会自动移到上一层作用域中去找这个变量的声明语句,如果找到,就是用,如果没找到, 就继续向上寻找,一直查找到全局作用域为止,如果全局中仍然没有这个变量的声明语 ...