#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <set>
using namespace std;
typedef long long ll;const int N=4e5+10,M=1e6+10,mod=998244353;int h[N],hs[N],e[M],ne[M],idx=0;  // h 原图  hs新图
void add(int h[],int a,int b){e[idx]=b;ne[idx]=h[a];h[a]=idx++;return ;}int timestamp,scc_cnt,id[N],siz[N];
int dfn[N],low[N],st[M],tt=-1;  // tarjan
bool dis[N],D[N];  // D 是 是否有无穷条; int in[N],T[N]; // in是 路径数量  T是新图入度; void tarjan(int u) // tarjan板子 ;好长
{dfn[u]=low[u]=++timestamp;st[++tt]=u;dis[u]=1;for(int i=h[u];~i;i=ne[i]){int t=e[i];if(!dfn[t]){tarjan(t);low[u]=min(low[u],low[t]);}else if(dis[t])low[u]=min(low[u],dfn[t]);}if(low[u]==dfn[u]){++scc_cnt;int y;do{y=st[tt--];id[y]=scc_cnt;dis[y]=0;siz[scc_cnt]++;}while(y!=u);}
}void bfs(int u)
{tt=-1;st[++tt]=u;in[u]=1;while(tt>=0){int x=st[tt--];          for(int i=hs[x];~i;i=ne[i]){int t=e[i];T[t]--;D[t]|=D[x];  if(in[t]<2)in[t]+=in[x];  if(!T[t])st[++tt]=t;}}
}int main()
{int t;scanf("%d",&t);while(t--){int n,m;scanf("%d%d",&n,&m);idx=timestamp=scc_cnt=0;tt=-1;for(int i=0;i<=n;i++)T[i]=in[i]=siz[i]=dis[i]=dfn[i]=low[i]=id[i]=0,h[i]=hs[i]=-1;while(m--){int a,b;scanf("%d%d",&a,&b);add(h,a,b);}tarjan(1);for(int i=1;i<=n;i++)for(int x=h[i];~x;x=ne[x]){int l=id[i],r=id[e[x]];if(i==e[x])siz[l]++;  // 自环 if(l==r)continue;add(hs,l,r);if(l)T[r]++;//要加这行 因为l=0不在新图里面; }for(int i=1;i<=scc_cnt;i++)D[i]=siz[i]>1;bfs(id[1]); for(int i=1;i<=n;i++){int ID=id[i],ans=0;if(ID)  {if(D[ID])ans=-1;else ans=in[ID]>1?2:1;}printf("%d ",ans);}puts("");}return 0;
}void add_(int &a,ll b){a=((a+b)%mod+mod)%mod;return;}

2021-09-211547G - How Many Paths?相关推荐

  1. 橘子CPS联盟操作手册2021.09

    橘子CPS联盟操作手册2021.09 目录 橘子CPS联盟操作手册2021.09 橘子CPS联盟是干嘛的 橘子CPS基本操作流程 PC端操作 1.注册 2.登陆 3.渠道管理 4.分享网站 5.分享网 ...

  2. 2021.09.27 MySQL笔记

    2021.09.27 MySQL笔记 文章目录 2021.09.27 MySQL笔记 一.展示当前存在的所有数据库 二.使用(选中)一个数据库 三.创建一个数据表 四.查询并展示该数据库内的所有数据表 ...

  3. 实习日志 (2021.09.13)

    2021.09.13星期一 今天把之前的算法题终于给弄明白了,并能够按照自己的思路去把他给完成,总结这个题目并不是很难,最重要的是要把链表给弄懂,一开始由于我对链表不是很熟悉,导致我在写该题目的时候花 ...

  4. 2021.09青少年软件编程(Python)等级考试试卷(三级)

    2021.09青少年软件编程(Python)等级考试试卷(三级) 一.单选题(共25题,每题2分,共50分) 1.使用map函数可以实现列表数据元素类型的转换,而无需通过循环.则将列表L=['1',' ...

  5. 2021.09.24—皮皮与帅帅的第二篇情话

    2021.09.24我们小情书的第二天 每天晚上,小兔子都会一个人来到溪水边,坐在地上数着星星.而且他个人也非常喜欢一闪一闪的东西.对于小兔子来说,每颗星星都是特别的,于是她就给每颗星星都起了一个可爱 ...

  6. 《惢客创业日记》2021.09.15(周三)套路的最高境界

    今天,凉粉儿给我发了一段她想的关于惢客的宣传词:"你被套路过吗?想不再被套路吗?上惢客."总结一句话是"不被套路上惢客".我觉得能把惢客跟套路联系在一起,很贴切 ...

  7. Go 1.18将原生支持fuzz test | Gopher Daily (2021.09.21) ʕ◔ϖ◔ʔ

    每日一谚:Clear is better than clever. Go技术生态 Go 1.18合并了对Fuzz测试原生支持的代码 - https://github.com/golang/go/com ...

  8. 2021.09.27-10.3 AI行业周刊(第65期):坚持的力量

    本周话题:坚持的力量 国庆节花费了13个小时,从无锡开车回老家. 原本只需要4个小时,结果生生的开了一天,虽然很累,但是回家乡的执念一直在坚持. 开车回家的一路上,一直在回想这些年坚持做的很多事情: ...

  9. 详解即将于Go 1.18加入的Go泛型特性 | Gopher Daily (2021.09.27) ʕ◔ϖ◔ʔ

    每日一谚:use errors.Is(err, pkg.ErrFoo) rather than err == pkg.ErrFoo. Go技术生态 详解即将于Go 1.18加入的Go泛型特性 - ht ...

  10. Go程序内存泄露问题快速定位 | Gopher Daily (2021.09.01) ʕ◔ϖ◔ʔ

    每日一谚:Less is more. Go技术生态 github针对go仓库提供免费的持续benchmark服务 - https://github.com/marketplace/gobencher ...

最新文章

  1. manjaro 火焰截图添加快捷键_Linux中功能强大的截图工具 - Flameshot
  2. Sharepoint学习笔记--Farm Backup Error:Administration 2010 Service is not started
  3. java ssssss_Java 时间字符串(HH:mm:ss.SSS) 转换成毫秒(milliseconds)
  4. Linux常用编辑器使用:vi、vim、nano、gedit
  5. 创新正当时 -「Innovation 2021」网易应用创新开发者大赛决赛十强正式集结
  6. 经典C语言程序100例之三零
  7. python中元组可以比较大小吗_python元组比较
  8. 产品认知:真正厉害的产品经理,都是“本质思维”的高手
  9. anaconda来创建python环境
  10. 有问有答 | AWS使用精华问答,带您开启 AWS 上的云计算之旅!
  11. Create React App 2.0 华丽登场
  12. RK3368-android8.1-每天凌晨3点自动重启机器
  13. 机器学习 -- 初识决策树
  14. 软件工程导论——软件维护
  15. matlab中axis square与axis equal区别
  16. MicroBlaze系列教程(2):AXI_INTC的使用
  17. mysql报1142错误
  18. Java保留两位小数的方法
  19. 蒙提霍尔问题:上帝视角 + 暴力数学
  20. 【Scikit-Learn 中文文档】13 集成方法 - 监督学习 - 用户指南 | ApacheCN

热门文章

  1. 可编程的智能小车,100种玩法,让孩子玩出理科编程思维
  2. 如何用Java讲一句话重复五遍_Java 0515 第二次课作业
  3. python eval函数_Python eval 函数妙用
  4. 频谱分析幅值单位_案例分享丨某水泥厂入窑斗提减速机不对中故障分析及处理...
  5. linux aemv7,无法在我的Ubuntu machin中安装“xlwings”
  6. fb静态区域_fb 静态数据
  7. mysql使用索引下推的好处_mysql的索引下推理解和实践
  8. 完美国际真数苹果_如果给你推荐一款很贵,但好用的苹果手机壳,你会买吗?...
  9. python迅雷_迅雷下载链接解析器。
  10. linux gcc出错,编译arm-linux-gcc出错