NYOJ 641 摧毁网络

摧毁网络

时间限制:1000 ms  |  内存限制:65535 KB

难度:2

描述

告诉你一个惊天的秘密,其实吧,小蜗牛是一个高级特工。他拥有特工的应该有所有本领。现在他来到了一个小镇,他的任务就是要切断一个恐怖组织的整个通信网络。但是恐怖分子没有想象中的那么白痴,恐怖分子把自己的网络混杂在了民用的网络中,现在小蜗牛必须弄清楚到底有多少的网络,才可以采取必要的行动。从组织那他拿到了小镇的网络分布地图,每户居民都有固定的编号。

输入
输入有多组。

每组数据的第一行都给一个N(0<=N<=1000)表示有N户居民,给一个M代表有M条线路。接下来的M行每行都给两个数,代表线路连通的两户居民编号。可能一户居民跟多户居民都有连通的线路。

输出
对于每组样例,输出有小镇多少个网络。
样例输入
4 2
1 3
4 3
3 3
1 2
1 3
2 3
5 2
1 2
3 5
样例输出
2
1
3
我用的深搜!可是时间和空间耗费都非常大!
AC码:
#include<stdio.h>
#include<string.h>
int G[1001][1001],visit[1001];
int n;
void DFS(int x)
{
	int i;
	visit[x]=1;
	for(i=1;i<=n;i++)
	{
		if(!visit[i]&&G[x][i]&&(i!=x))
		{
			DFS(i);
		}
	}
}
int main()
{
	int m,i,count,a,b;
	while(~scanf("%d%d",&n,&m))
	{
		memset(G,0,sizeof(G));
		memset(visit,0,sizeof(visit));
		for(i=0;i<m;i++)
		{
			scanf("%d%d",&a,&b);
			G[a][b]=G[b][a]=1;
		}
		count=0;
		for(i=1;i<=n;i++)
		{
			if(!visit[i])
			{
				DFS(i);
				count++;
			}
		}
		printf("%d\n",count);
	}
	return 0;
}

NYOJ 641 摧毁网络

时间: 2024-10-11 19:49:21

NYOJ 641 摧毁网络的相关文章

NYOJ 120 校园网络

校园网络 时间限制:3000 ms  |  内存限制:65535 KB 难度:5 描述 南阳理工学院共有M个系,分别编号1~M,其中各个系之间达成有一定的协议,如果某系有新软件可用时,该系将允许一些其它的系复制并使用该软件.但该允许关系是单向的,即:A系允许B系使用A的软件时,B未必一定允许A使用B的软件. 现在,请你写一个程序,根据各个系之间达成的协议情况,计算出最少需要添加多少个两系之间的这种允许关系,才能使任何一个系有软件使用的时候,其它所有系也都有软件可用. 输入 第一行输入一个整数T,

NYOJ 199 无线网络覆盖【简单题】

大一的时候不敢写这题,今晚看了一下,感觉挺简单的,顺着思路下下来 就可以了,数学题,将数据化简一下就可以了 无线网络覆盖 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 我们的乐乐同学对于网络可算得上是情有独钟,他有一个计划,那就是用无线网覆盖郑州大学. 现在学校给了他一个机会,因此他要购买很多的无线路由.现在他正在部署某条大道的网络,而学校只允许把他的无线路由器放在路的正中间.我们默认这条大道是笔直的并且它在任何地方的宽度都一样.并且所有的路由器的覆盖面积是相同的

nyoj 199 无线网络覆盖

无线网络覆盖 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 我们的乐乐同学对于网络可算得上是情有独钟,他有一个计划,那就是用无线网覆盖郑州大学. 现在学校给了他一个机会,因此他要购买很多的无线路由.现在他正在部署某条大道的网络,而学校只允许把他的无线路由器放在路的正中间.我们默认这条大道是笔直的并且它在任何地方的宽度都一样.并且所有的路由器的覆盖面积是相同的.现在乐乐计算出这条大道的长和宽,以及路由器的覆盖半径,想请你帮忙,帮他计算出他最少要购买的路由器的数量.

nyoj 199-无线网络覆盖 (ceil())

199-无线网络覆盖 内存限制:64MB 时间限制:3000ms 特判: No 通过数:4 提交数:13 难度:3 题目描述: 我们的乐乐同学对于网络可算得上是情有独钟,他有一个计划,那就是用无线网覆盖郑州大学. 现在学校给了他一个机会,因此他要购买很多的无线路由.现在他正在部署某条大道的网络,而学校只允许把他的无线路由器放在路的正中间.我们默认这条大道是笔直的并且它在任何地方的宽度都一样.并且所有的路由器的覆盖面积是相同的.现在乐乐计算出这条大道的长和宽,以及路由器的覆盖半径,想请你帮忙,帮他

NYOJ题目170网络的可靠性

------------------------------- 无论哪一个坏掉了都能连通意味着不能存在只有一根线(度为1)的基站,所以统计一下度为1的点,然后为了节省将它们两两相连,如果是奇数的话剩下的那个没配对的就随便连连喽~ AC代码: 1 import java.util.Scanner; 2 3 public class Main { 4 5 public static void main(String[] args) { 6 7 Scanner sc=new Scanner(Syste

nyoj 170 网络的可靠性

网络的可靠性 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 A公司是全球依靠的互联网解决方案提供商,也是2010年世博会的高级赞助商.它将提供先进的网络协作技术,展示其"智能+互联"的生活概念,同时为参观者提供高品质的个人体验和互动,以"信息通信,尽情城市梦想"为主题贯穿.借助奇幻的剧场大屏幕和特效,展现信息通信技术的应用前景,通过生动形象的故事,向观众展示沟通无限制的未来社会前景. 为此,A公司为世博园的N个区域建立了视频通信系统,

[河南省ACM省赛-第三届] 网络的可靠性 (nyoj 170)

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=170 根据题意,需要找到度数为1的结点个数,如下图: #include<iostream> #include<cstdio> #include<cstring> #include<vector> using namespace std; #define N 10002 vector<int> g[N]; int main() { freo

nyoj 网络的可靠性(。。。)

... 一开始吓着了  结果不就是找度为1的节点么.. 1 #include<iostream> 2 #include<cstdio> 3 #include<cstdlib> 4 #include<cstring> 5 #include<string> 6 #include<queue> 7 #include<algorithm> 8 #include<map> 9 #include<iomanip>

网络基础篇----计算机网络基本概述(1)

享受生活  热爱挑战                                                                刘明远分享    一   计算机网络基本概述(1) 每章一段话: 不要让自己闲下来,给自己找些事情做.哪怕是看看书. 正文   (提示:本章内容比较无聊,最好当看故事一样来看,不必记下只需了解,内容基础) 1什么是计算机网络 号称新的"电力火花"是以计算机.通信.信息技术为支撑的计算机网络技术. 计算机网络将两台或多台计算机通过电缆或网络设