第16次CCF CSP认证-第5题-317 号子任务(subtask317)-图论最短路径
【题目背景】
“你在平原上走着走着,突然迎面遇到一堵墙,这墙向上无限高,向下无限深,向
左无限远,向右无限远,这墙是什么?”——《流浪地球》原著
我们带着地球去流浪了,为了处理流浪过程中可能会发生的危机,联合政府找到
你,希望你能协助完成 317 号子任务:制定应急预案。
【题目描述】
地球的表面有 n 个据点,这些据点之间存在 m 条双向道路。
这些据点中,有的是建立在行星发动机之下,受到行星发动机的保护(行星发动机
据点),而其他据点则没有行星发动机的保护(普通据点,比如燃料采集据点/科研据点
等)。
当发生危机的时候,没有行星发动机的保护是非常危险的,所以每个人都需要赶到
最近的行星发动机据点寻求庇护,然而行星发动机据点也不一定安全,再加上行星发动
机据点容量有限,所以有些时候得去第二近或者第三近的行星发动机据点。
联合政府找到你,希望你能够计算出每个据点最近的 k 个行星发动机据点,为了
简化问题,你只需要输出每个据点到最近 k 个行星发动机据点的最短距离之和,如果
某个据点能够到达的行星发动机据点不足 k 个,则输出其能到达的所有行星发动机的
最短距离之和。
【输入格式】
从标准输入读入数据。
输入的第一行包含三个用空格隔开的整数 n, m, k ,含义见题目᧿述,保证 1 ≤ n ≤
104, 0 ≤ m ≤ 104, 1 ≤ k ≤ 102。据点依次编号为 1 到 n 。
第二行包含 n 个整数依次表示每个据点的类型,每个数为 1 或 0 (1 表示对应据
点为行星发动机据点,0 表示普通据点)。
接下来 m 行,每行三个整数 u, v,w 表示有一条长度为 w 的双向道路连接 u 号据点
和 v 号据点,1 ≤ u, v ≤ n, 1 ≤ w ≤ 103 。
可能有重边和自环。
【输出格式】
输出到标准输出。
输出 n 行,每行输出一个整数表示答案(见题目᧿述)
【样例 1 输入】
7 6 2
1 0 1 0 1 1 0
1 4 1
1 2 3
2 4 4
2 3 5
2 5 7
6 7 5
【样例 1 输出】
8
8
10
10
0
5
【样例 1 解释】
该样例的输入对应的图如下,其中红色点是行星发动机据点,白色点是普通据点。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
;
const int inf=9e7;
ll ans[amn];
int typ[amn],e[amn][amn],k,n,m;
int main()
{
cin>>n>>m>>k;
; i<=n; i++)
{
; j<=n; j++)
{
;
else e[i][j]=inf;
}
}
; i<=n; i++)
{
int tt;
cin>>tt;
typ[i]=tt;
}
int u,v,w;
; i<=m; i++)
{
cin>>u>>v>>w;
e[u][v]=w;
e[v][u]=w;
}
; c<=n; c++)
{
; i<=n; i++)
{
; j<=n; j++)
if(e[i][k]<inf&&e[k][j]<inf&&e[i][j]>e[i][c]+e[c][j])
e[i][j]=e[i][c]+e[c][j];
}
}
// cout<<endl<<endl;///查看图的最短路径(调试用)
// for(int i=1; i<=n; i++)
// {
// for(int j=1; j<=n; j++)
// {
// printf("%10d",e[i][j]);
// }
// cout<<endl<<endl;
// }
; i<=n; i++)
{
;
memset(ans,,sizeof(ans));
; j<=n; j++)
{
if(e[i][j]<inf&&typ[j])
{
ans[top++]=e[i][j];
}
}
sort(ans,ans+top);
ll sum=;
; i<k&&i<top; i++)
{
sum+=ans[i];
}
cout<<sum<<endl;
}
;
}
/*
样例
7 6 2
1 0 1 0 1 1 0
1 4 1
1 2 3
2 4 4
2 3 5
2 5 7
6 7 5
*/
第16次CCF CSP认证-第5题-317 号子任务(subtask317)-图论最短路径的更多相关文章
- CCF CSP 认证
参加第八次CCF CSP认证记录 代码还不知道对不对,过两天出成绩. 成绩出来了,310分. 100+100+100+10+0: 考试13:27开始,17:30结束,提交第4题后不再答题,只是检查前四 ...
- 【生活】记第一次参加CCF CSP认证
2018年03月18日 CCF CSP认证 三月份的这次csp认证,我之前是没报名的,一来自己还没什么准备,二来去年的那次认证我也没参加,开考前的一个礼拜,从朋友那得知,这次学校团体报名的名额还没报满 ...
- CCF CSP认证考试在线评测系统
关于 CCF CSP 认证考试在线评测系统 CCF CSP 认证考试简介 CCF 是中国计算机学会的简称.CCF 计算机软件能力认证(简称 CCF CSP 认证考试)是 CCF 于 2014 年推出, ...
- CCF CSP认证考试试题
1. 201803-1 跳一跳 试题编号: 201803-1 试题名称: 跳一跳 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 近来,跳一跳这款小游戏风靡全国,受到不少玩家的 ...
- poj1985&&第四次CCF软件认证第4题 求树的直径
Cow Marathon Time Limit: 2000MS Memory Limit: 30000K Total Submissions: 4216 Accepted: 2137 Case ...
- CCF CSP/CCSP报名费优惠的方法以及常见疑问
目录 1. 本文地址 2. 认证作用 2.1. 高校认可 2.2. 赛事认可 2.3. 企业认可 3. 报名费价格及获取优惠的方法 3.1. CCF CSP 3.2. CCF CCSP 4. 语言与I ...
- CCF CSP 201604-2 俄罗斯方块
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201604-2 俄罗斯方块 问题描述 俄罗斯方块是俄罗斯人阿列克谢·帕基特诺夫发明的一款休闲游 ...
- CCF CSP 201703-5 引水入城(50分)
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201703-5 引水入城 问题描述 MF城建立在一片高原上.由于城市唯一的水源是位于河谷地带的 ...
- CCF CSP 201512-3 画图
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201512-3 画图 问题描述 用 ASCII 字符来画图是一件有趣的事情,并形成了一门被称为 ...
随机推荐
- React从入门到放弃之前奏(2):React简介
本系列将尽可能使用ES6(ES2015)语法.所以均在上节webpack的基础上做开发. React是Facebook开发的一款JS库,因为基于Virtual DOM,所以响应速度快,以及支持跨平台. ...
- Java 实现 HttpClients+jsoup,Jsoup,htmlunit,Headless Chrome 爬虫抓取数据
最近整理一下手头上搞过的一些爬虫,有HttpClients+jsoup,Jsoup,htmlunit,HeadlessChrome 一,HttpClients+jsoup,这是第一代比较low,很快就 ...
- jQuery学习之旅 Item7 区别this和$(this)
刚开始以为this和$(this)就是一模子刻出来.但是我在阅读时,和coding时发现,总不是一回事,这里就谈谈this与$(this)的区别. 1.jQuery中this与$(this)的区别 $ ...
- Java之增强的for 循环
3. 增强for循环 1) 作用: 对存储对象的容器进行迭代 2) jdk5以前怎么迭代 3) 增强for循环迭代数组 String [] arr = {"a", "b ...
- MySQL 在线更改 Schema 工具
MySQL在线更改schema的工具很多,如Percona的pt-online-schema-change. Facebook的 OSC 和 LHM 等,但这些都是基于触发器(Trigger)的,今天 ...
- 「CodeChef Dec13 REALSET」 Petya and Sequence 循环卷积
题目大意: 传送门 T组询问. 每组给一个数组,询问该数组是否循环移位线性无关,输出YES或NO. 题解: LCA冬令营有讲……然而当时…… 并不知道如何计算一个数组是否循环移位线性无关……网上也没有 ...
- BZOJ_4530_[Bjoi2014]大融合_LCT
BZOJ_4530_[Bjoi2014]大融合_LCT Description 小强要在N个孤立的星球上建立起一套通信系统.这套通信系统就是连接N个点的一个树. 这个树的边是一条一条添加上去的.在某个 ...
- BZOJ_1923_[Sdoi2010]外星千足虫_高斯消元+bitset
BZOJ_1923_[Sdoi2010]外星千足虫_高斯消元 Description Input 第一行是两个正整数 N, M. 接下来 M行,按顺序给出 Charles 这M次使用“点足机”的统计结 ...
- Luogu_2597_[ZJOI2012]灾难 倍增lca + 构造
Luogu_2597_[ZJOI2012]灾难 倍增lca + 构造 题意: 我们用一种叫做食物网的有向图来描述生物之间的关系:一个食物网有N个点,代表N种生物,如果生物x可以吃生物y,那么从y向x连 ...
- POJ_2104_K-th Number_主席树
POJ_2104_K-th Number_主席树 题意:给定一个长度为n的序列,m次询问区间第k小 分析: 主席树模板 主席树可以理解成为n棵权值线段树的前缀和 但我们不能建n棵线段树,只需要对于每个 ...