博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1124. Mosaic(dfs)
阅读量:5265 次
发布时间:2019-06-14

本文共 1021 字,大约阅读时间需要 3 分钟。

需要想那么一点点吧 一个连通块中肯定不需要伸进手不拿的情况 不是一个肯定会需要这种情况 

然后注意一点 sum=0的时候 就输出0就可以了 不要再减一了

1 #include 
2 #include
3 #include
4 #include
5 #include
6 #include
7 using namespace std; 8 vector
ed[510]; 9 int a[510][55],vis[510],de[510];10 void dfs(int u)11 {12 int i;13 for(i = 0 ; i < (int)ed[u].size() ; i++)14 {15 int v = ed[u][i];16 if(!vis[v])17 {18 vis[v] = 1;19 dfs(v);20 }21 }22 }23 int main()24 {25 int i,j,n,m;26 int num=0;27 scanf("%d%d",&n,&m);28 for(i = 1 ; i <= n ;i++)29 for(j = 1; j <= m ; j++)30 {31 scanf("%d",&a[i][j]);32 if(a[i][j]!=i)33 {34 num++;35 de[i]++;36 ed[i].push_back(a[i][j]);37 ed[a[i][j]].push_back(i);38 }39 }40 41 int sum=0;42 for(i = 1; i <= n ; i++)43 {44 if(de[i]&&!vis[i])45 {46 sum++;47 vis[i] = 1;48 dfs(i);49 }50 }51 if(sum==0)52 printf("0\n");53 else54 printf("%d\n",sum-1+num);55 return 0;56 }
View Code

 

转载于:https://www.cnblogs.com/shangyu/p/3362126.html

你可能感兴趣的文章
数组分割问题求两个子数组的和差值的小
查看>>
composer 报 zlib_decode(): data error
查看>>
linux下WPS的使用
查看>>
Web Api 利用 cors 实现跨域
查看>>
hdu 3938 并查集
查看>>
instanceof
查看>>
《深入分析Java Web技术内幕》读书笔记之JVM内存管理
查看>>
python之GIL release (I/O open(file) socket time.sleep)
查看>>
2015/8/4 告别飞思卡尔,抛下包袱上路
查看>>
软件开发与模型
查看>>
161017、SQL必备知识点
查看>>
kill新号专题
查看>>
MVC学习系列——Model验证扩展
查看>>
C# GC 垃圾回收机制
查看>>
mysqladmin 修改和 初始化密码
查看>>
字符串
查看>>
vue2.x directive - 限制input只能输入正整数
查看>>
实现MyLinkedList类深入理解LinkedList
查看>>
自定义返回模型
查看>>
C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 客户端多网络支持
查看>>