zoj3946 Highway Project
2016-04-24 12:52
267 查看
K. Highway Project
t->测试数据组
n,m->n个点,m条可建边
x,y,d,c->x与y有可以建边,经过此边为d 时间,建边需c费用
t->测试数据组
n,m->n个点,m条可建边
x,y,d,c->x与y有可以建边,经过此边为d 时间,建边需c费用
#include <bits/stdc++.h> using namespace std; typedef long long ll; const int N=100005; const ll inf=1e12; struct node{ int v; ll dist,cost; node(int _v,ll _dist,ll _cost){ v=_v; dist=_dist; cost=_cost; } bool operator < (const node& p) const{ return dist>p.dist; } }; vector <node> v ; priority_queue <node>q; bool vis ; ll dis ,cost ; void dijkstra(int n,int s){ for(int i=0;i<n;i++){ dis[i]=inf; cost[i]=inf; } while(!q.empty()) q.pop(); q.push(node(0,0,0)); dis[0]=0; cost[0]=0; while(!q.empty()){ node p=q.top(); q.pop(); if(vis[p.v]) continue; vis[p.v]=1; // cout<<p.v<<" "<<p.dist<<" "<<p.cost<<endl; for(int i=0;i<v[p.v].size();i++){ node pp=v[p.v][i]; int to=pp.v; int _dis=pp.dist; //cout<<dis[p.v]<<endl; // cout<<p.v<<" "<<pp.v<<" "<<pp.dist<<" "<<pp.cost<<endl; if(dis[to]>dis[p.v]+_dis){ dis[to]=dis[p.v]+_dis; cost[to]=pp.cost; q.push(node(to,dis[to],cost[to])); }else if(dis[to]==dis[p.v]+_dis&&cost[to]>pp.cost){ //pp.dist=p.dist+_dis; cost[to]=pp.cost; q.push(node(to,dis[to],cost[to])); } } } ll ans1=0,ans2=0; for(int i=0;i<n;i++){ ans1+=dis[i]; ans2+=cost[i]; // cout<<dis[i]<<endl; } cout<<ans1<<" "<<ans2<<endl; } int main() { int t; scanf("%d",&t); while(t--){ int n,m; scanf("%d%d",&n,&m); int x,y,d,c; memset(v,0,(n+1)*sizeof v[0]); memset(vis,false,sizeof vis); for(int i=0;i<m;i++){ scanf("%d%d%d%d",&x,&y,&d,&c); v[x].push_back(node(y,d,c)); v[y].push_back(node(x,d,c)); } dijkstra(n,0); } }
相关文章推荐
- mysql 时间
- A+B和C,PAT 1011
- Android OkHttp完全解析 是时候来了解OkHttp了
- 一、 单例设计模式
- cocos2d-x中Texture2D::TexParams(图片平铺)一张图片铺满全屏做背景
- opencv源码解析之----hog源码分析
- 第一阶段站立会议6
- PHP 数据类型
- 【字符串】HDU5590ZYB's Biology【BestCoder Round #65】
- Ajax参数记录
- angular $apply()以及$digest()讲解
- FFmpeg-20160422-snapshot-bin
- 专题二 1012
- 第八周总结及H5、Js实现五子棋效果
- FudionCharts简单学习记录
- HDU 1236 排名(一大波输入)
- 图片拉伸的方法
- 计算机视觉目标检测的框架与过程
- C语言 结构体中的成员域偏移量
- leetcode-169. Majority Element