题目描述
在幻想乡,上白泽慧音是以知识渊博闻名的老师。春雪异变导致人间之里的很多道路都被大雪堵塞,使有的学生不能顺利地到达慧音所在的村庄。因此慧音决定换一个能够聚集最多人数的村庄作为新的教学地点。人间之里由N个村庄(编号为1…N)和M条道路组成,道路分为两种一种为单向通行的,一种为双向通行的,分别用1和2来标记。如果存在由村庄A到达村庄B的通路,那么我们认为可以从村庄A到达村庄B,记为(A,B)。当(A,B)和(B,A)同时满足时,我们认为A,B是绝对连通的,记为<A,B>。绝对连通区域是指一个村庄的集合,在这个集合中任意两个村庄X,Y都满足<X,Y>。现在你的任务是,找出最大的绝对连通区域,并将这个绝对连通区域的村庄按编号依次输出。若存在两个最大的,输出字典序最小的,比如当存在1,3,4和2,5,6这两个最大连通区域时,输出的是1,3,4。

输入格式
第1行:两个正整数N,M

第2…M+1行:每行三个正整数a,b,t, t = 1表示存在从村庄a到b的单向道路,t = 2表示村庄a,b之间存在双向通行的道路。保证每条道路只出现一次。

输出格式
第1行: 1个整数,表示最大的绝对连通区域包含的村庄个数。

第2行:若干个整数,依次输出最大的绝对连通区域所包含的村庄编号。

注意low的意义QWQ

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <map>
using namespace std;
const int M=105000;
const int N=5005;
int n,m,tot,idx,top,cnt,t,head[M],to[M],nex[M],dfn[N],sta[N],bel[N],low[N],siz[N];
bool vis[N];
int a,b;
inline int read(){int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;
}
inline void add(int x,int y){++tot;nex[tot]=head[x];to[tot]=y;head[x]=tot;
}
int tarjan(int u){dfn[u]=low[u]=++idx;vis[u]=1;sta[++top]=u;for(int i=head[u];i;i=nex[i]){int dmf=to[i];if(!dfn[dmf]){tarjan(dmf);low[u]=min(low[u],low[dmf]);}else if(vis[dmf]) low[u]=min(low[u],low[dmf]);}if(low[u]==dfn[u]){vis[u]=0;bel[u]=++cnt;siz[cnt]++;while(sta[top]!=u){bel[sta[top]]=cnt;siz[cnt]++;vis[sta[top--]]=0; }top--;}
}
int main(){n=read();m=read();for(int i=1;i<=m;i++){a=read();b=read();t=read();if(t==1)add(a,b);else if(t==2) add(b,a),add(a,b);}for(int i=1;i<=n;i++){if(!dfn[i]){tarjan(i);}}int maxx=0;for(int i=1;i<=cnt;i++)maxx=max(maxx,siz[i]);printf("%d\n",maxx);bool flag=0;int bee=0;for(int i=1;i<=n;i++){if(siz[bel[i]]==maxx&&!flag){flag=1;bee=bel[i];break;}}for(int i=1;i<=n;i++){if(bel[i]==bee)printf("%d ",i); }return 0;
}

写在最后:我想上lgr

洛谷P1726 上白泽慧音相关推荐

  1. 洛谷 P1726 上白泽慧音

    洛谷 P1726 上白泽慧音 Description 在幻想乡,上白泽慧音是以知识渊博闻名的老师.春雪异变导致人间之里的很多道路都被大雪堵塞,使有的学生不能顺利地到达慧音所在的村庄.因此慧音决定换一个 ...

  2. 【tarjan强连通分量】洛谷P1726 上白泽慧音

    [tarjan强连通分量]洛谷P1726 上白泽慧音 题目传送门 妥妥的强连通模板啊(详细解释戳这里) #include <bits/stdc++.h> #define MAXN 5005 ...

  3. [Tarjan] 洛谷 P1726 上白泽慧音

    题目描述 在幻想乡,上白泽慧音是以知识渊博闻名的老师.春雪异变导致人间之里的很多道路都被大雪堵塞,使有的学生不能顺利地到达慧音所在的村庄.因此慧音决定换一个能够聚集最多人数的村庄作为新的教学地点.人间 ...

  4. CODEVS——T1332 上白泽慧音 || 洛谷——P1726 上白泽慧音

    http://codevs.cn/problem/1332/ || https://www.luogu.org/problem/show?pid=1726#sub  时间限制: 1 s  空间限制: ...

  5. 洛谷1726 上白泽慧音

    洛谷1726 上白泽慧音 本题地址: http://www.luogu.org/problem/show?pid=1726 题目描述 在幻想乡,上白泽慧音是以知识渊博闻名的老师.春雪异变导致人间之里的 ...

  6. 洛谷1726 上白泽慧音 tarjan模板

    题目描述 在幻想乡,上白泽慧音是以知识渊博闻名的老师.春雪异变导致人间之里的很多道路都被大雪堵塞,使有的学生不能顺利地到达慧音所在的村庄.因此慧音决定换一个能够聚集最多人数的村庄作为新的教学地点.人间 ...

  7. 洛谷-1726 上白泽慧音

    题目描述 在幻想乡,上白泽慧音是以知识渊博闻名的老师.春雪异变导致人间之里的很多道路都被大雪堵塞,使有的学生不能顺利地到达慧音所在的村庄.因此慧音决定换一个能够聚集最多人数的村庄作为新的教学地点.人间 ...

  8. C++ P1726 上白泽慧音

    题目:P1726 上白泽慧音 学习了强联通分量(scc),找了个裸题,用tarjan算法AC了,Dalao勿喷啊! -_-|| # include <iostream> # include ...

  9. P1726 上白泽慧音

    题目描述 在幻想乡,上白泽慧音是以知识渊博闻名的老师.春雪异变导致人间之里的很多道路都被大雪堵塞,使有的学生不能顺利地到达慧音所在的村庄.因此慧音决定换一个能够聚集最多人数的村庄作为新的教学地点.人间 ...

最新文章

  1. linux6.5 sftp,CentOS下实现SFTP CHROOT的几种方法
  2. 第二次爬虫,更加熟练啦
  3. python中Json、os、sys、hashlib等内置模块
  4. rmse多少算效果好_关键词SEO优化带来流量有多少?如何做SEO优化效果好?
  5. gen_fsm之门禁管理
  6. 互联网晚报 | 1月11日 星期二 | 恒大集团退租深圳总部大楼;荣耀发布首款折叠旗舰手机;虎牙拿下5年LPL独播权...
  7. python连接数据库设置编码_Python学习18-连接数据库
  8. 终结者:终止线程循环的方式
  9. IPv6/IPv4是什么?IPv4和IPv6有什么区别?
  10. laravel框架中Cache缓存类中的原子锁
  11. java List复制:浅拷贝与深拷贝
  12. 个人开发者的项目如何接入支付宝登录功能(保姆级教学)(Java的后台为例,其他语言类似)
  13. 开源工作流可以解决什么问题?
  14. photoshop插画插件_一键生成2.5D风格插画的PS插件
  15. Android_Butterfly_动画
  16. 知识点滴 - 图形界面控件
  17. 【5】基于VS2017的MFC平台与OpenCV4.0.1联合小案列
  18. 惠普UMPC与时尚融合
  19. 独角兽企业麒麟合盛入驻郑东新区设立五大中心
  20. 阿里技术女神的成长之路(有生活素颜照哦)

热门文章

  1. PSP上所有模拟器的使用方法
  2. 指数平滑法,二次指数平滑法(Holt’s linear trend method),季节性预测算法(Holt-Winters’ seasonal method)
  3. SQL 中的 NULL 原来是这么回事
  4. 贝岭ADC(BL1063/BLAD16J125)使用和配置问题
  5. 大数据可视化当当网图书结课代码流程
  6. 人脸识别是否具有安全隐患?
  7. USB Type-C 电力传输电路设计-主机端Type-C保护方案
  8. [ZZULI]1114~
  9. 为什么可以开根号判断素数,求1-100的素数
  10. Qt介绍1---QPA(Qt Platform Abstraction)