题意:有N个牛,围在一水池边,它们用绳子互相绑着(有方向的)。如果绳子的方向一致,它们就能顺时针转,问有多少组牛可以跳舞。
思路:简单有向图的强连通分量。求出强连通分量,且强连通分量里的点数大于等于2的块就能跳舞。
//836K 79MS
#include
#include
#include
using namespace std;
const int VM = 10005;
const int EM = 50005;
struct Edge
{
int to,nxt;
}edge[EM];
int head[VM],vis[VM],dfn[VM],low[VM];
int stack[VM+10],belong[VM];
int scc,cnt,top,ep;
void addedge (int cu,int cv)
{
edge[e......
阅读全文