Codeforces Round #346 (Div. 2)(E)dfs
来源:互联网 发布:守望先锋数据app 编辑:程序博客网 时间:2024/05/01 13:19
题意: 有n个点,m条边,开始这些边是无向边,让你确定这些边的方向,使得最后至少有多少个点入度为0
题解:没有形成环的点形成的联通图,至少有一个入度为0的点,那么就是去判断是环,如果形成环就是0,否则至少有一个入度为0的点,那么最好使用dfs判断是否有环。复杂度O(n+m)
#include<cstdio> #include<cstring> #include<cstdlib> #include<cmath> #include<iostream> #include<algorithm> #include<vector> #include<map> #include<set> #include<queue> #include<string> #include<bitset> #include<utility> #include<functional> #include<iomanip> #include<sstream> #include<ctime> using namespace std;#define N int(1e5+10) #define inf int(0x3f3f3f3f) #define mod int(1e9+7) typedef long long LL;int vis[N];vector< vector<int> >g;int flag;void dfs(int x, int fa){if (vis[x]){flag = 1;return;}vis[x] = 1;for (int i = 0; i < g[x].size(); i++){if (g[x][i] == fa)continue;dfs(g[x][i], x);}}int main(){#ifdef CDZSC freopen("i.txt", "r", stdin);//freopen("o.txt","w",stdout); int _time_jc = clock();#endif int n, m,x,y;while (~scanf("%d%d", &n, &m)){int ans = 0;memset(vis, 0, sizeof(vis));g.clear();g.resize(n + 10);for (int i = 0; i < m; i++){scanf("%d%d", &x, &y);g[x].push_back(y);g[y].push_back(x);}for (int i = 1; i <= n; i++){flag = 0;dfs(i, -1);ans += !flag;}printf("%d\n", ans);#ifdef CDZSCprintf("time:%d\n", clock() - _time_jc);#endif}return 0;}
0 0
- Codeforces Round #346 (Div. 2) E (dfs)
- Codeforces Round #346 (Div. 2)(E)dfs
- Codeforces Round #364 (Div. 2) E DFS
- Codeforces Round #346 (Div. 2)E. New Reform 乱搞dfs
- Codeforces Round #256 (Div. 2)E(DFS暴搜)
- Codeforces Round #318 [RussianCodeCup Thanks-Round] (Div. 2) E DFS
- Codeforces Round #309 (Div. 2) E DFS 染色 + 快速乘
- Codeforces Round #364 (Div. 2) E. Connecting Universities 贪心 + dfs
- Codeforces Round #364 (Div. 2) E. Connecting Universities【两次dfs】
- Codeforces Round #394 (Div. 2)-E. Dasha and Puzzle(dfs)
- Codeforces Round #199 (Div. 2) E. Xenia and Tree (非正规解法 分情况dfs)
- Codeforces Round #297 (Div. 2) E. Anya and Cubes (双向DFS)
- Codeforces Round #375 (Div. 2) -- E. One-Way Reform(dfs求欧拉回路)
- Codeforces Round #429 (Div. 2)-(DFS)
- Codeforces Round #442 (Div. 2)-E-Danil and a Part-time Job(DFS序+线段树区间更新)
- Codeforces Round #442 (Div. 2) E. Danil and a Part-time Job (dfs序+线段树)
- Codeforces Round #225 (Div. 2)(B思维题,E:dfs+树状数组)
- Codeforces Round #297 (Div. 2) 525E Anya and Cubes(dfs)
- MATLAB中快速删除矩阵中满足条件的行列
- 弹出提醒对话框
- C# 面向对象,字符串中取数组
- 单链表的实现
- BUG Conclusion
- Codeforces Round #346 (Div. 2)(E)dfs
- 杭电ACM1008
- Android酷炫实用的开源框架(UI框架)
- POJ3301
- OpenGL(二)
- 使用RAC的项目升级到Xcode7.3时报错
- Android 看IntentService源码延伸
- python之js/url/python互动
- 位运算