ZOJ-1119
来源:互联网 发布:mac gdb 动态调试程序 编辑:程序博客网 时间:2024/06/05 19:14
给一个全连通图然后割顶后求剩下的连通分支个数,测试数据很水,给的图应该是连通的,然后遍历每个顶点,去掉这个顶点后做DFS求连通分支个数,如果大于1就打印分支个数,否则割顶后还是连通的。。由于偷看了测试数据,发现数据量超小。。每个点的邻接边就开了10个大小,好猥琐的感觉
#include<stdio.h>#include<string.h>static int fail, visit[1001], size[1001], adj[1001][10];static void dfs(int now){visit[now] = 1;int i;for (i = 0; i < size[now]; i++)if (!visit[adj[now][i]] && adj[now][i] != fail)dfs(adj[now][i]);}int main(){int n, m, c = 0;while (scanf("%d", &n), n){if (c)putchar('\n');printf("Network #%d\n", ++c);memset(size, 0, sizeof(size));scanf("%d", &m);adj[n][size[n]++] = m;adj[m][size[m]++] = n;while (scanf("%d", &n), n){scanf("%d", &m);adj[n][size[n]++] = m;adj[m][size[m]++] = n;}int i, j, count, flag = 1;for (i = 1; i <= 1000; i++)if (size[i]){memset(visit, 0, sizeof(visit));fail = i;count = 0;for (j = 1; j <= 1000; j++)if (j != i && size[j] && !visit[j]){count++;dfs(j);}if (count > 1){printf(" SPF node %d leaves %d subnets\n", i, count);flag = 0;}}if (flag)puts(" No SPF nodes");}return 0;}
0 0
- Zoj 1119
- ZOJ-1119
- ZOJ - 1119 SPF
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- Visual C++中DDB与DIB位图编程全攻略
- OpenCV学习笔记(4)之鼠标事件
- 缓解疲劳的方法
- 利用Node.js与PDFKIT 生成PDF文件
- 零拷贝技术
- ZOJ-1119
- 微软面试心得总结
- GitHub上最流行的10000个Java都使用了哪些库?
- 【解惑】 中断线程Interrupted的用处
- Objective-C - NSString 和 NSDate相互转换
- hdu2844多重背包简单应用
- nyoj214
- 【Spring】几种RPC模型的使用与比较——Hessian/Burlap
- 编译时控制台报出“error: Apostrophe not preceded by \ ”