题意:给你一个有向图,和两个点x,y。你要判断一个点能不能到达另一个点。
题解:
用tarjan跑强连通然后缩点建图,然后在新图上dfs出一个点能到达和被到达的点。跑出一个邻接矩阵来,如果矩阵全1则可以,否则不可以。比赛时是Case后面加了个#号,是很悲伤的。
下面是ac代码:

#include<cstdio>
#include<iostream>
#include<cstring>
#include <map>
#include <queue>
#include <set>
#include <cstdlib>
#include <cmath>
#include <algorithm>
#include <vector>
#include <string>
#include <list>
#include <bitset>
#include <array>
#include <cctype>
#include <time.h>#pragma GCC optimize(2)void read_f() { freopen("1.in", "r", stdin); freopen("1.out", "w", stdout); }
void fast_cin() { std::ios::sync_with_stdio(false); std::cin.tie(); }
void run_time() { std::cout << "ESC in : " << clock() * 1000.0 / CLOCKS_PER_SEC << "ms" << std::endl; }
template <typename T>
bool bacmp(const T & a, const T & b) { return a > b; }
template <typename T>
bool pecmp(const T & a, const T & b) { return a < b; }#define ll long long
#define ull unsigned ll
#define _min(x, y) ((x)>(y)?(y):(x))
#define _max(x, y) ((x)>(y)?(x):(y))
#define max3(x, y, z) ( max( (x), max( (y), (z) ) ) )
#define min3(x, y, z) ( min( (x), min( (y), (z) ) ) )
#define pr(x, y) (make_pair((x), (y)))
#define pb(x) push_back(x);
using namespace std;const int N = 1e5+5;
int n, m, cnt;
int he[N], ver[N], ne[N], tot;
int dfn[N], low[N], Belong[N], bcnt;
int st[N], ins[N], top;
void add(int x, int y)
{ver[++tot] = y;ne[tot] = he[x];he[x] = tot;
}
void tarjan(int x)
{dfn[x] = low[x] = ++cnt;ins[x] = 1;st[++top] = x;for (int i = he[x]; i; i = ne[i]){int y =ver[i];if (!dfn[y]){tarjan(y);low[x] = min(low[x], low[y]);}else if (ins[y]) low[x] = min(low[x], dfn[y]);}if (dfn[x] == low[x]){bcnt++;int y;do{y = st[top--];ins[y] = 0;Belong[y] = bcnt;} while(y != x);}
}
int d[N], c[N];
int mp[2300][2300];
int the[N], tver[N], tne[N], ttot;
int arv[2300][2300];
void init(int n)
{top = cnt = bcnt = 0;tot = 1, ttot = 1;for (int i = 0; i <= n; i++){he[i] = 0, ins[i] = 0, d[i] = 0, c[i] = 0, dfn[i] = 0, low[i] = 0;the[i] = 0;}for (int i = 0; i <= n; i++)for (int j = 0; j <= n; j++)mp[i][j] = arv[i][j] = 0;
}void tadd(int x, int y)
{tver[++ttot] = y;tne[ttot] = the[x];the[x] = ttot;
}
void dfs(int s, int x)
{arv[s][x] = arv[x][s] = 1;for (int i = the[x]; i; i = tne[i]){int y = tver[i];dfs(s, y);}
}
int main()
{int t; cin >> t;int t0 = 1;while(t--){int n, m; scanf("%d%d", &n, &m);init(n);while(m--){int x, y;scanf("%d%d", &x, &y);add(x, y);}printf("Case %d: ", t0++);for (int i = 1; i <= n; i++) if (!dfn[i])tarjan(i);for (int i = 1; i <= n; i++){for (int j = he[i]; j; j = ne[j]){int  y =ver[j];if (Belong[i] != Belong[y] && mp[Belong[i]][Belong[y]] == 0){mp[Belong[i]][Belong[y]] = 1;d[Belong[i]]++;c[Belong[y]]++;tadd(Belong[i], Belong[y]);}}}for (int i = 1; i <= bcnt; i++)dfs(i, i);bool flag = 0;for (int i = 1; i <= bcnt; i++)for (int j = 1; j <= bcnt; j++)if (arv[i][j] == 0) {flag = 1; break;}puts(flag ? "The Burning Shadow consume us all" : "Kalimdor is just ahead");}return 0;
}

Trajan/强连通(石油大学组队赛 B: Thrall’s Dream)相关推荐

  1. 西安石油大学计算机类分专业,西安石油大学2019年分专业录取分数解读

    原标题:西安石油大学2019年分专业录取分数解读 西安石油大学是一所以石油化工为特色的大学,由陕西省和中石油.中石化.中海油三家大型央企共建.西安石油大学的本科生升学率在同层次的大学中还算是比较高的, ...

  2. 【调剂】东北石油大学计算机科学与技术专业接收调剂

    公众号[计算机与软件考研]每天都会发布最新的计算机考研调剂信息! 点击公众号界面左下角的调剂信息或者公众号回复"调剂"是计算机/软件等专业的所有调剂信息集合,会一直更新的. 东北石 ...

  3. 东北石油大学计算机考研分数线,2020东北石油大学考研分数线已公布

    2020考研国家线已公布,考研调剂系统5月20日左右开通,4月26日至30日,中国研究生招生信息网将组织举办"2020年研考招生复试网上咨询"活动,届时相关招生单位将在线解答考生咨 ...

  4. 东北石油计算机类专业分数线,2018年东北石油大学各省录取分数线汇总

    分数线是我们填报志愿时所要参考的关键依据之一,今天小编就为大伙整理2018年东北石油大学在各省的录取分数线汇总,期待能够帮到大伙. 2018年东北石油大学在各省的录取分数线是多少省(市.区)科类专业名 ...

  5. 经典大学课程:石油大学教学视频

    石油大学的教学视频,简单易懂,条理清楚,讲述生动活泼,教师十分敬业,建议初学者选用. 科建流媒体播放器Scenic Player 1.20.1927 http://download.collegeso ...

  6. 【调剂】2020年东北石油大学非常规油气研究院--赵小青老师课题组招生

    点击文末的阅读原文或者公众号界面左下角的调剂信息或者公众号回复"调剂"是计算机/软件等专业的所有调剂信息集合,会一直更新的. 一,东北石油大学简介 东北石油大学(原名东北石油学院. ...

  7. 2020计算机考研扩招,官|东北石油大学计算机学院2020研究生调剂·增额扩招

    好消息!东北石油大学计算机与信息技术学院发布2020 东北石油大学计算机与信息技术学院2020研究生调剂(增额扩招后) 东北石油大学计算机科学与技术.软件工程.电子信息专业(下设计算机技术.软件工程两 ...

  8. 【调剂】东北石油大学地球科学学院地震资料处理团队接受调剂研究生

    点击文末的阅读原文或者公众号界面左下角的调剂信息或者公众号回复"调剂"是计算机/软件等专业的所有调剂信息集合,会一直更新的. 一,东北石油大学简介 东北石油大学(原名东北石油学院. ...

  9. 东北石油大学本科毕业论文答辩PPT模板

    模板介绍 精美PPT模板设计,东北石油大学本科毕业论文答辩PPT模板.一套高校PPT幻灯片模板,内含蓝色多种配色,精美风格设计,动态播放效果,精美实用. 一份设计精美的PPT模板,可以让你在汇报演讲时 ...

  10. 辽宁抚顺石油大学计算机招聘信息,辽宁抚顺石油大学2017年录取分数线

    技校网专门为您推荐的类似问题答案 问题1: 西安石油大学2010年专科录取分数线 以往都是接近二本线,估计今年应该在二本线上,今年二本补录没有降分,我很多同学过线了都没有被录走,今年石油专科应该还很火 ...

最新文章

  1. 西瓜创客+Leangoo敏捷实践企业案例分享
  2. u盘被分区之后怎么合并linux,U盘格式化做启动盘后从16GB变成200MB的解决方法
  3. 是什么造成了网管员的低工资?
  4. 数据库-优化-案例-count()函数的优化
  5. 使用 Git Extensions 简单入门 Git
  6. JDK 11:新的默认收集方法toArray(IntFunction)
  7. yum mysql 5.1 innodb_Yum升级mysql5.1到5.6
  8. delphi函数,识别字符集编码
  9. 2万8千张图片如何用python组成一张(简洁明了附源码)
  10. linux 分区个数限制,硬盘分区个数限制
  11. java 返回值给c_Java有陷阱,用时需谨慎——慎用入参做返回值
  12. 汇编编程环境-MASM6.15版下载
  13. 电脑html游戏,电脑网页游戏排行榜
  14. python 主线程_Python 主线程捕获子线程异常
  15. Spring框架 @ResponseBody注解 编码问题: 论设置 Accept 的重要性
  16. jquery 下载 安装 浏览器支持
  17. 作为前端程序员,你不能不知道的这个小技巧
  18. 《MySQL从入门到精通》读书笔记
  19. 驭见新知 | 给无人车戴上VR眼镜是种什么体验?
  20. linux v4l2-ctl,V4L2总结

热门文章

  1. 用Excel制作甘特图并管理项目
  2. spring批量写入mysql数据库_spring boot 向数据库写入海量数据
  3. SPF算法简单解析过程
  4. 运放技术——压摆率和上升时间
  5. Linux服务器清理磁盘
  6. 借助科技的力量,让物联网更好的服务鱼虾养殖业
  7. 细粒度粗粒度_粗粒度基准
  8. vnc远程控制软件官网,值得一用的5款vnc远程控制软件官网
  9. 搭建亿万级别短信服务发送平台
  10. 如何分析软件安全性需求