【题目背景】
“你在平原上走着走着,突然迎面遇到一堵墙,这墙向上无限高,向下无限深,向
左无限远,向右无限远,这墙是什么?”——《流浪地球》原著
我们带着地球去流浪了,为了处理流浪过程中可能会发生的危机,联合政府找到
你,希望你能协助完成 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)-图论最短路径的更多相关文章

  1. CCF CSP 认证

    参加第八次CCF CSP认证记录 代码还不知道对不对,过两天出成绩. 成绩出来了,310分. 100+100+100+10+0: 考试13:27开始,17:30结束,提交第4题后不再答题,只是检查前四 ...

  2. 【生活】记第一次参加CCF CSP认证

    2018年03月18日 CCF CSP认证 三月份的这次csp认证,我之前是没报名的,一来自己还没什么准备,二来去年的那次认证我也没参加,开考前的一个礼拜,从朋友那得知,这次学校团体报名的名额还没报满 ...

  3. CCF CSP认证考试在线评测系统

    关于 CCF CSP 认证考试在线评测系统 CCF CSP 认证考试简介 CCF 是中国计算机学会的简称.CCF 计算机软件能力认证(简称 CCF CSP 认证考试)是 CCF 于 2014 年推出, ...

  4. CCF CSP认证考试试题

    1. 201803-1 跳一跳 试题编号: 201803-1 试题名称: 跳一跳 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 近来,跳一跳这款小游戏风靡全国,受到不少玩家的 ...

  5. poj1985&&第四次CCF软件认证第4题 求树的直径

    Cow Marathon Time Limit: 2000MS   Memory Limit: 30000K Total Submissions: 4216   Accepted: 2137 Case ...

  6. CCF CSP/CCSP报名费优惠的方法以及常见疑问

    目录 1. 本文地址 2. 认证作用 2.1. 高校认可 2.2. 赛事认可 2.3. 企业认可 3. 报名费价格及获取优惠的方法 3.1. CCF CSP 3.2. CCF CCSP 4. 语言与I ...

  7. CCF CSP 201604-2 俄罗斯方块

    CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201604-2 俄罗斯方块 问题描述 俄罗斯方块是俄罗斯人阿列克谢·帕基特诺夫发明的一款休闲游 ...

  8. CCF CSP 201703-5 引水入城(50分)

    CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201703-5 引水入城 问题描述 MF城建立在一片高原上.由于城市唯一的水源是位于河谷地带的 ...

  9. CCF CSP 201512-3 画图

    CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201512-3 画图 问题描述 用 ASCII 字符来画图是一件有趣的事情,并形成了一门被称为 ...

随机推荐

  1. CentOS6.7 mysql5.6.33修改数据文件位置

    问题:mysql存放的数据文件,分区容量较小,目前已经满,导致mysql连接不上, 解决方案: 1.删除分区里一个不需要用的数据,如:日志文件等(解决不了根本问题) 2.对某个磁盘扩容 3.修改数据存 ...

  2. 用nginx缓存静态文件

        这篇教程说明你应该怎样配置 nginx.设置 HTTP 头部过期时间,用 Cache-Control 中的 max-age 标记为静态文件(比如图片. CSS 和 Javascript 文件) ...

  3. 【Web】一个非常简单的移动web消息框

    适用:h5+jquery,移动网页最佳 最近在写个简单的公众号页面,前端验证时有些信息要提示,很简单的需求实在不想找啥现成的轮子,又不至于用alert这么粗暴,遂写了个非常简单的消息框,效果如图: 特 ...

  4. npm安装项目出错

    F:\ajax>npm install iview --savenpm WARN saveError ENOENT: no such file or directory, open 'F:\aj ...

  5. 《Redis入门指南》第2版 读书笔记

    读第二遍了,感觉和几年前读时的收获不一样了.送上门来当树洞的独自承担一切 Redis以简洁为美Redis通信协议是Redis客户端与Redis之间交流的语言,通信协议规定了命令和返回值的格式.Redi ...

  6. HQL: The Hibernate Query Language

    Chapter 14. HQL: The Hibernate Query Language 14.1. Case Sensitivity 14.2. The from clause 14.3. Ass ...

  7. JS for循环有关变量类型的问题/魔兽世界样式的tooltip

    <script> var num = 100; for (var i=num-5;i<num+5;i++){ // console.log(typeof(i)); console.l ...

  8. JavaScript设计模式 Item 6 --单例模式Singleton

    单例模式的定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点. 单例模式是一种常用的模式,有一些对象我们往往只需要一个,比如线程池.全局缓存.浏览器的window对象.在js开发中,单例模式的 ...

  9. Java 读书笔记 (十七) Java 重写(Override)与重载(Overload)

    重写(Override) 重写是子类对父类的允许访问的方法的实现过程重新编写,返回值和形参都不能改变,即外壳不变,核心重写. // 如果重写不是相当于重新定义了一个方法?那为什么不直接写,还要exte ...

  10. windows.go

    func LockFile(file *os.File) error { h, err := syscall.LoadLibrary("kernel32.dll") if err ...