题意
有一些双向边连接的点,现在要把每条边变成单向边,问最少有多少点没有入度
思路
1.可以建成一个有向图,可能有k个联通块,如果一个联通块没有环,就说明这个联通块,至少有一个城市单独的,因此就化成找联通块和环的问题
2.联通块的话可以用并查集来维护,然后用cir[maxn]数组来标记是否有环,如果这个联通块的根节点存在环,那么该联通块不存在单独的城市,如果不存在环的话ans++,最后的ans就是答案;
这道貌似是签到题。。好吧过于菜导致签到失败
代码
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
const int maxn=1e5+7;
int par[maxn];
bool cir[maxn];
v