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 ;
}

最新文章

  1. 内存不足时,调用ajax报的错
  2. NSMutableURLRequest和NSURLConnection用Post方式上传照
  3. ajax请求,请求头是provisional are shown。请求未发送出去
  4. python数据库操作之pymysql模块和sqlalchemy模块(项目必备)
  5. 【SVN Working copy is too old (format 10, created by Subversion 1.6)】解决方式
  6. 【MySQL案件】ERROR 1665 (HY000)
  7. 第六十一节,html超链接和路径
  8. Linux AIDE(文件完整性检测)
  9. MongoDB 时差问题问题
  10. 关于oracle函数listagg的使用说明
  11. Delphi 与 Word_VBA
  12. vue2 broadcast和dispatch的理解
  13. Unix环境高级编程(六)进程控制
  14. Linux内核线程kernel thread详解--Linux进程的管理与调度(十)【转】
  15. linux下使用汇编语言编写hello world!程序
  16. iOS开发UIColor,CGColor,CIColor三者的区别和联系
  17. C++ 类模板三(类模版中的static关键字)
  18. Vimium、CrxMouse配置信息
  19. 关于修改test9ui布局的一些小笔记
  20. spring 笔记3: Spring 多环境配置文件切换

热门文章

  1. 2.11 webdriver中使用 FileUtils ()
  2. DVWA全级别之File Upload(文件上传)
  3. Python之xml读写
  4. 解决报错Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: TLS handshaketimeout
  5. kali 安装google输入法
  6. 计算几何-HPI
  7. hadoop SecondNamenode详解
  8. 1.3 使用jmeter进行http接口测试
  9. [爬坑日记] 安卓模拟器1903蓝屏 没开hyper-v
  10. C语言 多文件编程