CodeForces 170 A. Learning Languages //搜索
来源:互联网 发布:心动网络青春篮球官网 编辑:程序博客网 时间:2024/05/29 12:17
这道题出看思路很简单,就是将能够沟通的人合并都一起,但是判断两个人能不能沟通有点麻烦,所以在实现上出了点问题,一直没解决。
我想的是先开个二维数组来直接储存信息(行储存该人会的语言,列储存的是该人),然后在搜索的同时标记,可是感觉很难实现。看来下别人的代码,根据一个二维数组,来建一个人与人之间能不能交流的二维数组,这样直接就可以遍历来。
下面是代码:
#include<stdio.h>#include<string.h>#define MAXN 105int map[MAXN][MAXN],record[MAXN][MAXN];int visit[MAXN];int n,m,cnt;void dfs(int v){ if(!visit[v]) { visit[v]=1; for(int i=1;i<=n;++i) if(map[v][i]) dfs(i); }}int main(){ int flag; //freopen("a.txt","r",stdin); //freopen("b.txt","w",stdout); while(scanf("%d%d",&n,&m)!=EOF) { cnt=0; memset(map,0,sizeof(map)); memset(visit,0,sizeof(visit)); memset(record,0,sizeof(record)); flag=0; for(int i=1;i<=n;++i) { int N,t; scanf("%d",&N); if(N==0) ++flag; for(int j=1;j<=N;++j) { scanf("%d",&t); record[i][t]=1; } } if(flag==n) printf("%d\n",flag); else { // tag who and who can communicate with each other //it can be more quick! for(int i=1;i<=n;++i) { for(int j=1;j<=n;++j) { for(int k=1;k<=m;++k) { if(record[i][k]&&record[j][k]) map[i][j]=1; } } } // dfs the map! for(int i=1;i<=n;++i) { if(!visit[i]) { ++cnt; dfs(i); } } printf("%d\n",cnt-1); } } //fclose(stdin); //fclose(stdout); return 0;}
写来这道题,感觉自己有多垃圾来。。囧!
- CodeForces 170 A. Learning Languages //搜索
- [Codeforces] 277A - Learning Languages
- codeforces 277 A Learning Languages
- 【Codeforces Round #170】Codeforces 277A Learning Languages
- 【Codeforces Round #170 Div. 1】 227A Learning Languages
- CodeForces-Learning Languages
- codeforce round 170 A. Learning Languages
- A. Learning Languages
- CodeForces 277A Learning Languages 并查集
- CodeForces 277A Learning Languages (并查集)
- CodeForces 277A Learning Languages (并查集)
- Codeforces 278C. Learning Languages
- Codeforces 170C Learning Languages (并查集求连通分支)
- Codeforces Round #170 (Div. 2)---C. Learning Languages(并查集)
- Codeforces 278C. Learning Languages 图的遍历
- Codeforces 278C Learning Languages(并查集)
- codeforces 278C. Learning Languages(并查集)
- Codeforces 278C Learning Languages【并查集】水题
- Hibernate3.x教程(一) Hibernate介绍及配置
- debian命令集(四)
- servlet中的filter怎么获取FilterConfig对象
- hdu1196
- java读写文件
- CodeForces 170 A. Learning Languages //搜索
- Vim插入模式下的技巧
- OCP考题解析_043: 会话时区和ORA_SDTZ环境变量
- Windows7 Embedded 安装笔记
- 第三十四期机器学习之多媒体方向的思考 余凯老师
- 代理模式
- 有抱负的程序员应看的10个TED演讲
- 下载和编译Android源码问题集(持续更新)
- 面向对象分析和设计与设计模式之间的配合讲解