上次我讲过了kosaraju算法
这次有更好理解的算法!
暴力出奇迹!
大家来看一下这个题:
https://bbs.codeaha.com/problem-12175.html
每个星球人都梦想着成为啊哈星球中的明星,成为星球人们的偶像。啊哈星球共有N (1<= N <= 10,000)个星球人,现在告诉你M (1 <= M <=50,000) 条星球人间的关系,形如(A,B),意味着星球人A认为星球人B是它心目中的偶像,这种偶像关系可以传递,也就是说如果A认为B是它的偶像,B认为C是它的偶像,那么A也会认为C是它的偶像。你的任务是找出被所有的星球人都当做偶像的星球人的数目。
和kosaraju一样
只是这次不需要求dfs序
#include <cstdio>
#include <iostream>
#include <cstring>
#include <vector>
using namespace std;
vector <int> e[10009],re[10009];
bool book1[10009],book2[10009];
int c=0,n,m,color[10009],one=0,sum[10009],u[50009],v[50009],out[10009],flag,ans,ss,cnt;
void dfs1(int u)
{
if(book1[u]==1) return;
book1[u]=1;
for(int i=0;i<e[u].size();i+&#