L3-022 地铁一日游
floyd算法建立新图,dfs标记~
#include<bits/stdc++.h>
using namespace std;
const int maxn=;
const int inf=1e9;
int d[maxn][maxn];
vector<int> g[maxn];
bool visit[maxn];
bool isend[maxn];
int N,M,K;
void floyd () {
for (int k=;k<=N;k++)
for (int i=;i<=N;i++)
for (int j=;j<=N;j++)
if (i!=j) d[i][j]=min(d[i][j],d[i][k]+d[k][j]);
}
void dfs (int s) {
visit[s]=true;
for (int i=;i<g[s].size();i++) {
if (visit[g[s][i]]==false) {
dfs (g[s][i]);
}
}
}
int main () {
scanf ("%d %d %d",&N,&M,&K);
int u,v,distance;
for (int i=;i<=N;i++)
for (int j=;j<=N;j++)
d[i][j]=inf;
for (int i=;i<M;i++) {
scanf ("%d",&u);
isend[u]=true;
while () {
scanf ("%d %d",&distance,&v);
d[u][v]=min(d[u][v],distance);
d[v][u]=d[u][v];
u=v;
char ch=getchar ();
if (ch=='\n') break;
}
isend[u]=true;
}
floyd ();
for (int i=;i<=N;i++) {
unordered_map<int,int> pos;
for (int j=;j<=N;j++) {
if (i!=j&&d[i][j]>pos[d[i][j]/K+]&&d[i][j]!=inf)
pos[d[i][j]/K+]=d[i][j];
}
for (int j=;j<=N;j++)
if (i!=j) {
if (d[i][j]==pos[d[i][j]/K+]||(isend[j]==true&&d[i][j]!=inf))
g[i].push_back(j);
}
}
int q;
scanf ("%d",&q);
int s;
for (int i=;i<q;i++) {
scanf ("%d",&s);
fill (visit,visit+maxn,false);
dfs (s);
int flag=;
for (int j=;j<=N;j++) {
if (visit[j]==true) {
if (flag!=) printf (" ");
printf ("%d",j);
flag++;
}
}
printf ("\n");
}
return ;
}
L3-022 地铁一日游的更多相关文章
- PTA刷题笔记
PTA刷题记录 仓库地址: https://github.com/Haorical/Code/tree/master/PTA/GPLT 两周之内刷完GPLT L2和L3的题,持续更新,包括AK代码,坑 ...
- 基于ionic+angulajs的混合开发实现地铁APP
基于ionic+angulajs的混合开发实现地铁APP 注:本博文为博主原创,转载时请注明出处. 项目源码地址:https://github.com/zhangxy1035/SubwayMap 一. ...
- 配置 L3 agent - 每天5分钟玩转 OpenStack(99)
上一节我们介绍了路由服务(Routing)的基本功能,今天教大家如何配置. Neutron 的路由服务是由 l3 agent 提供的. 除此之外,l3 agent 通过 iptables 提供 fir ...
- Python写地铁的到站的原理简易版
Python地铁的到站流程及原理(个人理解) 今天坐地铁看着站牌就莫名的想如果用Python写其工作原理 是不是很简单就小试牛刀了下大佬们勿喷纯属小弟个人理解 首先来看看地铁上显示的站牌如下: 就想这 ...
- Neutron 理解 (6): Neutron 是怎么实现虚拟三层网络的 [How Neutron implements virtual L3 network]
学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...
- 理解 OpenStack 高可用(HA)(2):Neutron L3 Agent HA 之 虚拟路由冗余协议(VRRP)
本系列会分析OpenStack 的高可用性(HA)概念和解决方案: (1)OpenStack 高可用方案概述 (2)Neutron L3 Agent HA - VRRP (虚拟路由冗余协议) (3)N ...
- 洛谷P1710 地铁涨价
P1710 地铁涨价 51通过 339提交 题目提供者洛谷OnlineJudge 标签O2优化云端评测2 难度提高+/省选- 提交 讨论 题解 最新讨论 求教:为什么只有40分 数组大小一定要开够 ...
- 假期实践作业:从IT角度看地铁
实习时间:2016/02/23——2016/02/26 实习地点:京港地铁14号线 实习报告: 大学四年过得真快,转眼就大三了,大学前两年半的生活可谓多姿多彩,从不懂计算机到对编程感兴趣,期待得最多的 ...
- 结对编程-地铁续(有种上个学期OO的既视感)
我们组比较特殊..三人结对 github:https://github.com/qingchanghan/WPFUI_Metro po一张照片: 石浩然,韩青长.陈彦吉 (台式机真的很高端,分屏贼帅) ...
随机推荐
- Uncaught TypeError: Cannot read property 'addEventListener' of null
<script type="text/javascript"> var body1=document.getElementById('#body') </scri ...
- Tomcat无法成功启动——双击startup.bat闪退
使用的Tomcat是免安装版本的.因为在启动tomcat是需要读取环境变量和配置信息,缺少了这些信息,就不能登记环境变量,导致了tomcat的闪退. 解决办法: 1:在已解压的tomcat的bin文件 ...
- 题解【洛谷P4588】[TJOI2018]数学计算
题目描述 小豆现在有一个数\(x\),初始值为\(1\).小豆有\(Q\)次操作,操作有两种类型: \(1\;m\):\(x=x\times m\)输出\(x\%mod\); \(2\;pos\):\ ...
- Educational Codeforces Round 82 (Rated for Div. 2)D(模拟)
从低位到高位枚举,当前位没有就去高位找到有的将其一步步拆分,当前位多余的合并到更高一位 #define HAVE_STRUCT_TIMESPEC #include<bits/stdc++.h&g ...
- testng如何实现并发
参考: https://www.cnblogs.com/znicy/p/6534893.html
- YAML(YML)语法详解
ansible playbook是由yaml(yml)语法书写,结构清晰,可读性强,所以必须掌握yaml(yml)基础语法 语法 描述 锁进 YAML使用固定的缩进风格表示层级结构,每个缩进由两个空 ...
- How To Use These LED Garden Lights
Are you considering the lighting options for the outdoor garden? Depending on how you use it, LED ga ...
- 关于我 & 关于这个博客
关于我 OIer,初一在读,蒟蒻,普及组选手,只拿过两次PJ2=,实乃菜也 喜欢数学,OI,OI 上主要研究高级数据结构(如平衡树)和一些不那么暴力的算法(如分块) 打不动 CF . 关于这个博客 是 ...
- Oracle中的数据迁移到Mysql数据库中的方式Navicat premium工具
1.安装 Navicat premium工具 2.破解 Navicat premium工具 3.连接需要相互迁移的两个库Mysql和Oracle(可以是远程的或者本机的数据库都是可以的) 4.连接上之 ...
- Django项目报错: 禁止访问(403),CSRF验证失败,相应中断
如果想要取消表单的CSRF防护,可以在模板上删除{% csrf_token %}, 并且在相应的视图函数中添加装饰器@csrf_exempt, 代码如下: from django.views.deco ...