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 ...
随机推荐
- 【Mongo】数据备份与还原
http://blog.51yip.com/nosql/1573.html mongorestore -d 数据库名 -c 集合名 --drop **.bson
- jQuery使用cookie与json简单实现购物车功能
本文实例讲述了jQuery使用cookie与json简单实现购物车的方法.分享给大家供大家参考,具体如下: 1.生成一个cookie 用来存储商品的id String类型 2.添加商品id的时候 把 ...
- C语言中FILE是结构体,文件类型的指针
c语言文件类型指针 我们在定义文件类型指针变量后,称作该指针指向该文件,但本质上,它不是指向一个存储文件信息的结构型变量么?那么我们在用各个函数对所谓的“文件指针”进行操作时,本质上是不是函数通过获取 ...
- JBPM4.4_jBPM4.4的流程定义语言(设计流程)
1. jBPM4.4的流程定义语言(设计流程) 1.1. process(流程) 是.jpdl.xml的根元素,可以指定的属性有: 属性名 作用说明 name 流程定义的名称,用于显示. key 流程 ...
- ELK5.X使用X-Pack配置密码
一.前言 前面使用ELK5.X+logback搭建日志平台,但是,当访问kibana 时,直接就可以访问了,如果设置登录名和密码,是不是更好呢?答案是肯定的,这里使用X-Pack来配置登录名和密码. ...
- HTML节点树
在 HTML 中,所有标签定义的内容都是节点: 整个文档是一个文档节点 每个HTML元素是元素节点 HTML元素内的文本是文本节点 每个HTML属性是属性节点 注释是注释节点 这些节点构成了一个 HT ...
- Java自动类型转换
■ 自动类型转换:容量小的数据类型可以自动转换为容量大的数据类型. ■ 特例:可以讲整型常量直接赋给byte,short,char等类型变量,而不需要强制类型转换,只要不超出其表数范围. ■ 强制类型 ...
- 设计模式之装饰模式(Java实现)
“怎么了,鱼哥?” “唉,别提了,网购了一件衣服,结果发现和商家描述的差太多了,有色差就算了,质量还不好,质量不好就算了,竟然大小也不行,说好的3个X,邮的却是一个X的,不说了,退货去.你先开讲吧,你 ...
- 银联支付-产品测试sdk使用流程
准备工作: 到https://open.unionpay.com/ajweb/help/file/techFile?productId=66下载开发文档和sdk 下载之后进行解压将Java Versi ...
- LeetCode——Basic Calculator
Description: Implement a basic calculator to evaluate a simple expression string. The expression str ...