最小最短路径树。

\(dis[j]==dis[i]+w(i,j)\)时,从\(w(i,j')\)和\(w(i,j)\)考虑。——从0分到100分。

#include <bits/stdc++.h>
const int maxn = 10000;
const int maxm = 100000; using namespace std; int to[maxm * 2 + 10];
int w[maxm * 2 + 10];
int nex[maxm * 2 + 10];
int head[maxn + 10], cnt = 0; void addEdge(int a, int b, int c)
{
to[cnt] = b; w[cnt] = c;
nex[cnt] = head[a]; head[a] = cnt++;
to[cnt] = a; w[cnt] = c;
nex[cnt] = head[b]; head[b] = cnt++;
} int edgeVis[maxm + 10];
int dotVis[maxn + 10];
int dis[maxn + 10];
int edgePre[maxn + 10]; void spfa()
{
memset(edgeVis, 0, sizeof(edgeVis));
memset(dotVis, 0, sizeof(dotVis));
memset(dis, 0x3f, sizeof(dis));
memset(edgePre, -1, sizeof(edgePre));
queue<int> q;
dis[1] = 0;
q.push(1);
dotVis[1] = 1;
while (!q.empty())
{
int x = q.front(); q.pop();
dotVis[x] = 0;
for (int i = head[x]; i != -1; i = nex[i])
{
int l = to[i];
if (dis[l] > dis[x] + w[i])
{
dis[l] = dis[x] + w[i];
if (edgePre[l] != -1)
edgeVis[edgePre[l]] = 0;
edgePre[l] = i / 2;
edgeVis[edgePre[l]] = 1;
if (!dotVis[l])
{
q.push(l);
dotVis[l] = 1;
}
}
else if (dis[l] == dis[x] + w[i])
{
if (w[edgePre[l] * 2] > w[i])
{
edgeVis[edgePre[l]] = 0;
edgePre[l] = i / 2;
edgeVis[edgePre[l]] = 1;
}
}
}
}
} int main()
{
int n, m;
scanf("%d%d", &n, &m); memset(head, -1, sizeof(head));
for (int i = 1, a, b, c; i <= m; i++)
{
scanf("%d%d%d", &a, &b, &c);
addEdge(a, b, c);
} spfa(); int ans = 0;
for (int i = 0; i <= cnt - 1; i += 2)
{
if (edgeVis[i / 2])
{
ans += w[i];
}
} printf("%d\n", ans); return 0;
}

CCF-CSP题解 201609-4 交通规划的更多相关文章

  1. CCF CSP 201609-4 交通规划

    CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201609-4 交通规划 问题描述 G国国王来中国参观后,被中国的高速铁路深深的震撼,决定为自 ...

  2. CCF 201609-4 交通规划

    问题描述 试题编号: 201609-4 试题名称: 交通规划 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 G国国王来中国参观后,被中国的高速铁路深深的震撼,决定为自己的国家 ...

  3. CCF 交通规划(Dijkstra+优先队列)

    交通规划 问题描述 G国国王来中国参观后,被中国的高速铁路深深的震撼,决定为自己的国家也建设一个高速铁路系统. 建设高速铁路投入非常大,为了节约建设成本,G国国王决定不新建铁路,而是将已有的铁路改造成 ...

  4. CCF CSP 201509-4 高速公路

    CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201509-4 高速公路 问题描述 某国有n个城市,为了使得城市间的交通更便利,该国国王打算在 ...

  5. CCF CSP 201703-3 Markdown

    CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201703-3 Markdown 问题描述 Markdown 是一种很流行的轻量级标记语言(l ...

  6. CCF CSP 201312-3 最大的矩形

    CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201312-3 最大的矩形 问题描述 在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i( ...

  7. CCF CSP 201609-3 炉石传说

    CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201609-3 炉石传说 问题描述 <炉石传说:魔兽英雄传>(Hearthston ...

  8. CCF CSP 201403-3 命令行选项

    CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201403-3 命令行选项 问题描述 请你写一个命令行分析程序,用以分析给定的命令行里包含哪些 ...

  9. CCF CSP 201709-4 通信网络

    CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201709-4 通信网络 问题描述 某国的军队由N个部门组成,为了提高安全性,部门之间建立了M ...

  10. CCF CSP 201409-3 字符串匹配

    CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201409-3 字符串匹配 问题描述 给出一个字符串和多行文字,在这些文字中找到字符串出现的那 ...

随机推荐

  1. 快速遍历OpenCV Mat图像数据的多种方法和性能分析 | opencv mat for loop

    本文首发于个人博客https://kezunlin.me/post/61d55ab4/,欢迎阅读! opencv mat for loop Series Part 1: compile opencv ...

  2. 从壹开始 [ Ids4实战 ] 之六 ║ 统一角色管理(上)

    前言 书接上文,咱们在上周,通过一篇<思考> 性质的文章,和很多小伙伴简单的讨论了下,如何统一同步处理角色的问题,众说纷纭,这个我一会儿会在下文详细说到,而且我最终也定稿方案了.所以今天咱 ...

  3. CSV数据存取

    CSV数据的读取十分地简单 分为两部分 读 读取csv文件可以使用csv模块下的reader(f)以及DictReader(f) mport csv with open("text.csv& ...

  4. 洛谷P1426-小鱼会有危险吗

    原题链接: https://www.luogu.org/problem/P1426 题面简述: 有一次,小鱼要从A处沿直线往右边游,小鱼第一秒可以游7米,从第二秒开始每秒游的距离只有前一秒的98%98 ...

  5. JSONPath入门之Snack3篇

    Snack3 for java 一个微型JSON框架 基于jdk8,60kb.有序列化反序列化.解析和转换.支持 Json path 查询. <dependency> <groupI ...

  6. django的开发环境

    推荐linux系统(因为程序员大佬都是用的linux) 虚拟机:vmware  或者virtualbox(官网下载) linux:Ubuntu 使用双系统也可以 虚拟化技术: 1.虚拟机  (全套的系 ...

  7. HTML标签-->HTML5新增

    HTML的Form新增属性 <form method="post" name="myForm"> <p> 邮箱:<input ty ...

  8. Echarts自定义折线图例,增加选中功能

    用Echarts图表开发,原本的Echarts图例不一定能满足我们的视觉要求. 下面是Echarts 折线图自定义图例,图例checked选中,相应的折线线条会随之checked,其余未选中的图例对应 ...

  9. Spring Boot中@ConditionalOnProperty使用详解

    在Spring Boot的自动配置中经常看到@ConditionalOnProperty注解的使用,本篇文章带大家来了解一下该注解的功能. Spring Boot中的使用 在Spring Boot的源 ...

  10. 批量注释 control+/

    批量注释 control+/ You can comment and uncomment lines of code using Ctrl+斜杠.Ctrl+斜杠 comments or uncomme ...