L3-022 地铁一日游
2024-09-07 00:33:52
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 ;
}
最新文章
- 内存不足时,调用ajax报的错
- NSMutableURLRequest和NSURLConnection用Post方式上传照
- ajax请求,请求头是provisional are shown。请求未发送出去
- python数据库操作之pymysql模块和sqlalchemy模块(项目必备)
- 【SVN Working copy is too old (format 10, created by Subversion 1.6)】解决方式
- 【MySQL案件】ERROR 1665 (HY000)
- 第六十一节,html超链接和路径
- Linux AIDE(文件完整性检测)
- MongoDB 时差问题问题
- 关于oracle函数listagg的使用说明
- Delphi 与 Word_VBA
- vue2 broadcast和dispatch的理解
- Unix环境高级编程(六)进程控制
- Linux内核线程kernel thread详解--Linux进程的管理与调度(十)【转】
- linux下使用汇编语言编写hello world!程序
- iOS开发UIColor,CGColor,CIColor三者的区别和联系
- C++ 类模板三(类模版中的static关键字)
- Vimium、CrxMouse配置信息
- 关于修改test9ui布局的一些小笔记
- spring 笔记3: Spring 多环境配置文件切换
热门文章
- 2.11 webdriver中使用 FileUtils ()
- DVWA全级别之File Upload(文件上传)
- Python之xml读写
- 解决报错Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: TLS handshaketimeout
- kali 安装google输入法
- 计算几何-HPI
- hadoop SecondNamenode详解
- 1.3 使用jmeter进行http接口测试
- [爬坑日记] 安卓模拟器1903蓝屏 没开hyper-v
- C语言 多文件编程