HDU 迷宫城堡 强连通图 kosaraju and tarjan
来源:互联网 发布:建筑施工模拟软件 编辑:程序博客网 时间:2024/04/30 20:26
kosaraju解法:
#include<iostream>
#include<stack>
#include<vector>
#include<algorithm>
#include<string.h>
#include<cstdio>
int n, m;
bool b[10002];
using namespace std;
vector<int> go[10002],goback[10002];
bool kosaraju(int k, vector<int> *go1)
{
stack<int> Q; int cont = 0;
Q.push(1); b[1] = true;
while (!Q.empty())
{
cont++;
int a = Q.top(); Q.pop();
int length = go1[a].size();
for (int i = 0; i < length; i++)
{
if (b[go1[a][i]] == true) continue;
Q.push(go1[a][i]); b[go1[a][i]] = true;
}
}
if (cont == n) return true;
return false;
}
int main()
{
while (cin >> n >> m && (n + m))
{
for (int i = 0; i < m; i++)
{
int a, b;
scanf_s("%d%d", &a, &b);
go[a].push_back(b);
}
memset(b, false, sizeof(b));
if (!kosaraju(1,go))
{
cout << "No" << endl;
for (int i = 1; i <= n; i++)
{
go[i].clear();
goback[i].clear();
}
continue;
}
memset(b, false, sizeof(b));
for (int i = 1; i <= n; i++)
{
int tt = go[i].size();
for (int j = 0; j < tt; j++)
{
goback[go[i][j]].push_back(i);
}
}
if (!kosaraju(1, goback))
{
cout << "No" << endl;
for (int i = 1; i <= n; i++)
{
go[i].clear();
goback[i].clear();
}
continue;
}
cout << "Yes" << endl;
for (int i = 1; i <= n; i++)
{
go[i].clear();
goback[i].clear();
}
}
return 0;
}
- HDU 迷宫城堡 强连通图 kosaraju and tarjan
- hdu 1269 迷宫城堡【强连通+Kosaraju】
- hdu 1269 迷宫城堡【强连通Tarjan】
- 【有向图的强连通分】HDUOJ 1269 迷宫城堡(Kosaraju算法+Tarjan算法)
- HDU-1269 迷宫城堡 (强连通分量[Kosaraju])
- HDU-#1269 迷宫城堡(Tarjan+强连通)
- hdu 1269 迷宫城堡(强连通 tarjan )
- HDU - 1269 - 迷宫城堡 (tarjan求强连通分量)
- hdu 1269 迷宫城堡(强连通分量 Tarjan算法)
- HDU 1269 迷宫城堡 [强连通分量] [Tarjan]
- HDU 1269 迷宫城堡 Tarjan强连通分量
- HDU 1269:迷宫城堡 (Tarjan强连通分量)
- HDU 1269 迷宫城堡【Tarjan强连通分量 模板】
- HDU OJ 1269 迷宫城堡【有向图强连通分量的Tarjan算法 入门】
- hdu 1269 迷宫城堡(Tarjan 图的强连通分量)
- hdu 1269 迷宫城堡 tarjan算法求有向图的强连通分量
- HDU 1269 迷宫城堡 (有向图强连通分量Tarjan)
- hdu 1269 tarjan算法 图的强连通之迷宫城堡
- spring cloud 浅析分布式事务
- 自己编写第一个属于自己的网站
- 基础练习 特殊回文数
- 商品管理模块开发
- Node.JS 使用 Express 创建 Node.js Web 项目
- HDU 迷宫城堡 强连通图 kosaraju and tarjan
- C/C++ 简单链表1
- 神经网络与深度学习_吴恩达 学习笔记(一)
- JAVA Maven SSM框架以及SpringBoot,mybatise框架整合实例开发的脚手架
- MySQL 一千个不用 Null 的理由
- Linux-004 CentOS7网络配置,添加ifconfig命令,查看ip地址、网关信息,DNS信息。
- 交叉熵代价函数
- zookeeper原理学习
- C++运算符重载函数