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 地铁一日游的更多相关文章

  1. PTA刷题笔记

    PTA刷题记录 仓库地址: https://github.com/Haorical/Code/tree/master/PTA/GPLT 两周之内刷完GPLT L2和L3的题,持续更新,包括AK代码,坑 ...

  2. 基于ionic+angulajs的混合开发实现地铁APP

    基于ionic+angulajs的混合开发实现地铁APP 注:本博文为博主原创,转载时请注明出处. 项目源码地址:https://github.com/zhangxy1035/SubwayMap 一. ...

  3. 配置 L3 agent - 每天5分钟玩转 OpenStack(99)

    上一节我们介绍了路由服务(Routing)的基本功能,今天教大家如何配置. Neutron 的路由服务是由 l3 agent 提供的. 除此之外,l3 agent 通过 iptables 提供 fir ...

  4. Python写地铁的到站的原理简易版

    Python地铁的到站流程及原理(个人理解) 今天坐地铁看着站牌就莫名的想如果用Python写其工作原理 是不是很简单就小试牛刀了下大佬们勿喷纯属小弟个人理解 首先来看看地铁上显示的站牌如下: 就想这 ...

  5. Neutron 理解 (6): Neutron 是怎么实现虚拟三层网络的 [How Neutron implements virtual L3 network]

    学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...

  6. 理解 OpenStack 高可用(HA)(2):Neutron L3 Agent HA 之 虚拟路由冗余协议(VRRP)

    本系列会分析OpenStack 的高可用性(HA)概念和解决方案: (1)OpenStack 高可用方案概述 (2)Neutron L3 Agent HA - VRRP (虚拟路由冗余协议) (3)N ...

  7. 洛谷P1710 地铁涨价

    P1710 地铁涨价 51通过 339提交 题目提供者洛谷OnlineJudge 标签O2优化云端评测2 难度提高+/省选- 提交  讨论  题解 最新讨论 求教:为什么只有40分 数组大小一定要开够 ...

  8. 假期实践作业:从IT角度看地铁

    实习时间:2016/02/23——2016/02/26 实习地点:京港地铁14号线 实习报告: 大学四年过得真快,转眼就大三了,大学前两年半的生活可谓多姿多彩,从不懂计算机到对编程感兴趣,期待得最多的 ...

  9. 结对编程-地铁续(有种上个学期OO的既视感)

    我们组比较特殊..三人结对 github:https://github.com/qingchanghan/WPFUI_Metro po一张照片: 石浩然,韩青长.陈彦吉 (台式机真的很高端,分屏贼帅) ...

随机推荐

  1. PLSQL Developer12注册码

    product code: 4vkjwhfeh3ufnqnmpr9brvcuyujrx3n3le serial Number:226959 password: xs374ca 绝对靠谱

  2. Spring Boot项目指定启动后执行的操作

    Spring Boot项目指定启动后执行的操作: (1)实现CommandLineRunner 接口 (2)重写run方法 (3)声明执行顺序@Order(1),数值越小,优先级越高 (4)如果需要注 ...

  3. selenium的错误截图

    在自动化测试过程中,测试执行期间需要收集获取截图信息,一方面为了错误调试代码,一方面也为了和开发沟通, 获取当前的截图 save_screenshot是获取当前截图的方法,以百度首页为例,打开百度首页 ...

  4. input file弹出框选择文件后缀限制

    在页面选择文件时的弹出框默认显示的是所有类型的文件,有时候文件太多不好选择,我们就要过滤掉不想展示的文件,这是需要用到input的accept属性,只有在type="file"才有 ...

  5. The Reason Why Cosmetic Airless Bottles Are Widely Used

    The contents of the Cosmetic Airless Bottles    can be isolated from the air, to prevent the product ...

  6. JAVA中对null进行强制类型转换

    今天很好奇,对null进行强转会不会抛错.做了如下测试得到的结果是,如果把null强转给对象,是不会抛异常的,本身对象是可以为null的.但是如果是基本类型,比如 int i = (Integer)o ...

  7. mybatis--多对多关联

    mybatis3.0 添加了association和collection标签专门用于对多个相关实体类数据进行级联查询,但仍不支持多个相关实体类数据的级联保存和级联删除操作.因此在进行实体类多对多映射表 ...

  8. hibernate和mybatis出现配置文件xml的文件报错Multiple annotations found at this line(转)

    hibernate中的xml配置文件Multiple annotations found at this line,出现这个红叉报错,直接是把 <?xml version="1.0&q ...

  9. cnblogs在手机端显示的一些坑

    目前在网上搜了个博皮,很高大上,感兴趣的朋友可以看一下,但是在手机端显示这些html5代码有很多缺陷: 1. h1.h2只能显示一行,如果字数太多,则会被隐藏 就像你现在看到的,h1原本内容为: 目前 ...

  10. 题解 SP8284 WEIGHT - Weighted Sum

    SP8284 WEIGHT - Weighted Sum 题意描述 给出长度为n(n<=1e6)的序列A, A中元素可能为正数,可为负数或0,.让你构造一个长度为n的序列W,给这些整数A赋权,使 ...