无环说明一定有拓扑排序。

我们得到拓扑排序,倒着推。注意压位。

#include<bits/stdc++.h>
#include<bitset>
using namespace std;
const int N=30010;
int h[N],e[N],ne[N],idx;
int d[N],n,m;
vector<int>ve;
bitset<N>cnt[N]; //每一个点压了N位。1表示可以到达,0表示不可以到达
void add(int a,int b)
{e[idx]=b,ne[idx]=h[a],h[a]=idx++;
}
void top_sort()
{queue<int>q;for(int i=1;i<=n;i++) if(!d[i]) q.push(i);while(q.size()){int u=q.front(); q.pop();ve.push_back(u);for(int i=h[u];i!=-1;i=ne[i]){int j=e[i];if(--d[j]==0) q.push(j);}}
}
int main(void)
{memset(h,-1,sizeof h);cin>>n>>m;for(int i=0;i<m;i++){int a,b; cin>>a>>b;d[b]++;add(a,b);}top_sort();for(int i=ve.size()-1;i>=0;i--){int u=ve[i];cnt[u][u]=1;//u到u是有一个for(int j=h[u];j!=-1;j=ne[j]){int k=e[j];cnt[u]|=cnt[k];}}for(int i=1;i<=n;i++) cout<<cnt[i].count()<<endl;//统计1的个数return 0;
}

164. 可达性统计【拓扑排序 / bitset】相关推荐

  1. Acwing 164.可达性统计(Java)

    题目描述: 给定一张 N 个点 M 条边的有向无环图,分别统计从每个点出发能够到达的点的数量. 输入格式 第一行两个整数 N,M,接下来 M 行每行两个整数 x,y,表示从 x 到 y 的一条有向边. ...

  2. AcWing 164. 可达性统计

    给定一张N个点M条边的有向无环图,分别统计从每个点出发能够到达的点的数量. 输入格式 第一行两个整数N,M,接下来M行每行两个整数x,y,表示从x到y的一条有向边. 输出格式 输出共N行,表示每个点能 ...

  3. 核弹剑仙 (拓扑排序+bitset或最短路)

    题目链接:https://ac.nowcoder.com/acm/contest/6874/F 题意: 题解:参考了大佬的代码后,得出了两种做法,第一种是拓扑排序,建图时将强的点指向弱的点,同时用bi ...

  4. bzoj 3355: [Usaco2004 Jan]有序奶牛(拓扑排序+bitset)

    3355: [Usaco2004 Jan]有序奶牛 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 56  Solved: 29 [Submit][S ...

  5. [BZOJ4484][JSOI2015]最小表示(拓扑排序+bitset)

    有一个结论:对于边<u,v>,若这是u到v的唯一路径,则这条边显然不可被删去,否则必然可以被删去. 因为若u到v还有其它路径,则必然是从u到某个点x再到v,由于最终答案中连通性不变,也就是 ...

  6. bzoj2208 [Jsoi2010]连通数 强连通分量缩点+拓扑排序+bitset

    Description 对于100%的数据,N不超过2000. Solution 容易想到要tarjan缩点按拓扑序递推,但是去重的步骤不好弄 C++STL中有bitset,用这个当成二进制按位状压即 ...

  7. 【图论专题】拓扑排序

    拓扑排序 给定一张有向无环图,若一个序列A满足图中的任意一条边(x,y)x都在y的前面呢么序列A就是图的拓扑排序 实际上拓扑排序就是满足所有的边x指向y,x一定在y的前面.这样按照拓扑排序递推,就可以 ...

  8. 0x21.搜索 - 树与图的遍历、拓扑排序

    目录 一.树与图的深度优先遍历及树的一些性质 1.树与图的深度优先遍历 2.时间戳 3.树的DFS序(树链剖分前驱知识) 4.树的深度 5.树的重心与sizesizesize 6.图的连通块划分 二. ...

  9. C语言-AOV网与拓扑排序

    邻接表: 顶点下标查找函数(LocateVex) 创建有向图的邻接表(CreateDG) 邻接表打印函数(print) 拓扑排序(TopologicalSort) AOV网与AOE网: AOV网(Ac ...

最新文章

  1. iOS开发:使用Block在两个界面之间传值(Block高级用法:Block传值)
  2. CCS MAP文件说明
  3. linuex查看繁忙_如何用九条命令在一分钟内检查Linux服务器性能?
  4. java12关键字var_Java 10:“ var”关键字
  5. [css] 如何做图片预览,如何放大一个图片?
  6. 垃圾回收 | Java垃圾回收,这杯咖啡,不仅好喝,而且实用!
  7. 《RabbitMQ 实战指南》第四章 RabbitMQ进阶(上)
  8. 在 Visual Studio .NET 中使用 SQL Server 2000 创建数据库应用程序(1)
  9. Android操作系统手机遇冷 国外辉煌国内难现
  10. opencv中Mat、CvMat和IplImage的相互转化
  11. Terrasolid Suite v015-v016 for Microstation CONNECT, V8i, V8 for Windows platforms 1CD
  12. PyQt窗口设计之Qt Designer
  13. 腾讯帝国15年争霸之路:谁说我只会抄袭,不会创新?
  14. 胶囊网络用于推荐系统问题(MIND,CARP)
  15. 保险丝的常用规格型号及主要参数说明
  16. 揭秘:古代五大美男的悲惨结局
  17. 学生家乡网页设计作品静态HTML网页—— HTML+CSS+JavaScript制作辽宁沈阳家乡主题网页源码(11页)
  18. IT职场人生系列之二十三:知识体系(专家与杂家)
  19. 深度学习大模型训练--分布式 deepspeed PipeLine Parallelism 源码解析
  20. LOVE×EVOLUTION 汉化补丁

热门文章

  1. 个性化背词软件 更新ing(9-4)
  2. Tomcat 中文乱码 设置UTF-8编码 问题解决办法
  3. bzoj2424 订货
  4. (三)页面之间的参数传递
  5. happens-before规则和指令重排
  6. Hlg 1407 【最小点权覆盖】.cpp
  7. 零起步了解RK3288环境搭建以及版本编译
  8. 波卡链Substrate (7)Grandpa + Babe
  9. Docker (1)简介
  10. (chap7 确保WEB安全的HTTPS) HTTPS通信步骤