Aizu - 2249
注意先保证距离最短,再来判断价格
邻接矩阵回朝内存 ,要用邻接表的
#include<bits/stdc++.h>
using namespace std;
#define inf 0x3f3f3f
struct ac{
int v,dis,cost;
};
int n,m;
int dis[];
int cost[];
int vis[];
vector<ac>rode[];
void djst()
{
memset(dis,inf,sizeof(dis));
memset(cost,inf,sizeof(cost));
memset(vis,,sizeof(vis));
dis[]=;
cost[]=;
while()
{
int k=-,dmin=inf,cmin=inf;
for(int j=;j<=n;j++)
{
if(!vis[j])
{
if(dis[j]<dmin)
k=j,dmin=dis[j],cmin=cost[j];
else if(dis[j]==dmin)
{
if(cost[j]<cmin)
k=j,dmin=dis[j],cmin=cost[j];
}
}
}
if(k==-) return ;
vis[k]=; for(int i=;i<rode[k].size();i++)
{
int j=rode[k][i].v;
if(!vis[j])
{
if(dis[k]+rode[k][i].dis<dis[j])
{
dis[j]=dis[k]+rode[k][i].dis;
cost[j]=rode[k][i].cost;
}
else if(dis[k]+rode[k][i].dis==dis[j]&&cost[j]>rode[k][i].cost)
{
cost[j]=rode[k][i].cost;
}
}
}
}
}
int main()
{
while(cin>>n>>m)
{
if(n+m==) break;
for(int i=;i<=m;i++)
{
int a,c,b,d;
cin>>a>>b>>c>>d;
ac tt;
tt.v=b,tt.dis=c,tt.cost=d;
rode[a].push_back(tt);
tt.v=a;
rode[b].push_back(tt);
}
djst();
int ans=;
for(int i=;i<=n;i++){
rode[i].clear();
ans+=cost[i];
}
cout<<ans<<endl;
}
return ;
}
Aizu - 2249的更多相关文章
- Aizu 2249 & cf 449B
Aizu 2249 & cf 449B 1.Aizu - 2249 选的边肯定是最短路上的. 如果一个点有多个入度,取价值最小的. #include<bits/stdc++.h> ...
- Aizu - 2249 Road Construction
题目:给出若干个建筑之间的一些路,每条路都有对应的长度和需要的花费,问在保证源点1到其他个点的距离最短的情况下,最少的花费是多少/ 思路:和一般的最短路问题相比,多了一个 数组id[i],用来记录到达 ...
- 【Aizu - 2249】Road Construction(最短路 Dijkstra算法)
Road Construction Descriptions Mercer国王是ACM王国的王者.他的王国里有一个首都和一些城市.令人惊讶的是,现在王国没有道路.最近,他计划在首都和城市之间修建道路, ...
- Aizu-2249 Road Construction(dijkstra求最短路)
Aizu - 2249 题意:国王本来有一个铺路计划,后来发现太贵了,决定删除计划中的某些边,但是有2个原则,1:所有的城市必须能达到. 2:城市与首都(1号城市)之间的最小距离不能变大. 并且在这2 ...
- AOJ 2249 Road Construction(Dijkstra+优先队列)
[题目大意] http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=2249 [题目大意] 一张无向图,建造每条道路需要的费用已经给出, 现 ...
- LOJ#2249 Luogu P2305「NOI2014」购票
几乎肝了半个下午和整个晚上 斜率优化的模型好多啊... LOJ #2249 Luogu P2305 题意 给定一棵树,第$ i$个点如果离某个祖先$ x$的距离不超过$ L_i$,可以花费$ P_i· ...
- Aizu 0525 Osenbei 搜索 A
Aizu 0525 Osenbei https://vjudge.net/problem/Aizu-0525 题目: IOI製菓では,創業以来の伝統の製法で煎餅(せんべい)を焼いている.この伝統の製法 ...
- UVA 1394 And Then There Was One / Gym 101415A And Then There Was One / UVAlive 3882 And Then There Was One / POJ 3517 And Then There Was One / Aizu 1275 And Then There Was One (动态规划,思维题)
UVA 1394 And Then There Was One / Gym 101415A And Then There Was One / UVAlive 3882 And Then There W ...
- LOJ 2249: 洛谷 P2305: 「NOI2014」购票
题目传送门:LOJ #2249. 题意简述: 有一棵以 \(1\) 号节点为根节点的带边权的树. 除了 \(1\) 号节点的所有节点上都有人需要坐车到达 \(1\) 号节点. 除了 \(1\) 号节点 ...
随机推荐
- Subnet Routing Examples
Routing Table Each row in routing table contains: Destination IP address IP address of next-hop rout ...
- 类似QQ的聊天工程
首先建立一个html:<!DOCTYPE html><html lang="en"><head> <meta charset=" ...
- C#中小写人民币转大写
/// <summary> /// 转换成大写人民币 /// </summary> /// <param name="myMoney">< ...
- mysql 8.0.12 日常出错
最近不知道怎么回事,数据库老是会输出一个: [Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and co ...
- linux中删除文件内空白行的几种方法。
linux中删除文件内空白行的几种方法 有时你可能需要在 Linux 中删除某个文件中的空行.如果是的,你可以使用下面方法中的其中一个.有很多方法可以做到,但我在这里只是列举一些简单的方法. 你可能已 ...
- ATM购物作业
一. 基本需求 模拟实现一个ATM + 购物商城程序 额度 15000或自定义 实现购物商城,买东西加入 购物车,调用信用卡接口结账 可以提现,手续费5% 支持多账户登录 支持账户间转账 记录日常消费 ...
- SQL Server 2012 - 数据更新操作
SELECT * FROM dbo.Student; --1, 插入数据 Insert ,逗号分隔可以同时插入多条 INSERT dbo.Student ( StuID, Class, StuName ...
- 怎么将oracle的sql文件转换成mysql的sql文件
怎么将sql文件导入PowerDesigner中的方法(将oracle的sql文件转换成mysql的sql文件)呢? 怎么将xx.sql文件的数据库结构导入powerdesigner 的方法呢? 现讲 ...
- 《黑客攻防技术宝典Web实战篇@第2版》读书笔记1:了解Web应用程序
读书笔记第一部分对应原书的第一章,主要介绍了Web应用程序的发展,功能,安全状况. Web应用程序的发展历程 早期的万维网仅由Web站点构成,只是包含静态文档的信息库,随后人们发明了Web浏览器用来检 ...
- js实现99乘法表的编写(双层for循环与递归方法)
双层for循环实现方法: function nine (num) { ; i <= num; i++){ var str = ''; ; k <= num; k++){ if(i > ...