UVa 10946 Do You What Filled? (DFS)
来源:互联网 发布:防止sql注入的原理 编辑:程序博客网 时间:2024/05/29 03:40
很显然,数据这么小,dfs必然会过的
按上下左右搜,然后搜过的标记一下,避免重复,就哦啦
代码如下:
#include <cstdio>#include <algorithm>#include <cstring>using namespace std;const int N = 55;int n, m, id;char g[N][N];bool vis[N][N];struct node { char x; int num;}ans[3000];void dfs( int u, int v ) { vis[u][v] = true; ans[id].num++; if ( u > 0 && g[u][v] == g[u-1][v] && !vis[u-1][v] ) dfs( u-1, v ); if ( u < n-1 && g[u][v] == g[u+1][v] && !vis[u+1][v] ) dfs( u+1, v); if ( v > 0 && g[u][v-1] == g[u][v] && !vis[u][v-1] ) dfs( u, v-1 ); if ( v < m-1 && g[u][v] == g[u][v+1] && !vis[u][v+1] ) dfs( u, v+1 );}bool cmp ( node a, node b ) { if ( a.num == b.num ) return a.x < b.x; return a.num > b.num; }int main(){ int pro = 1; while ( scanf("%d%d", &n, &m) != EOF && !( !m && !n ) ) { id = 0; getchar(); for ( int i = 0; i < n; getchar(), ++i ) for ( int j = 0; j < m; ++j ) scanf("%c", &g[i][j]); memset( vis, 0, sizeof(vis)); for ( int i = 0; i < n; ++i ) for ( int j = 0; j < m; ++j ) if ( g[i][j] != '.' && !vis[i][j] ) { ans[id].x = g[i][j]; ans[id].num = 0; dfs( i, j ); id++; } sort( ans, ans + id, cmp ); printf("Problem %d:\n", pro++); for ( int i = 0; i < id; ++i ) printf("%c %d\n", ans[i].x, ans[i].num); }}
- UVa 10946 Do You What Filled? (DFS)
- UVa 10946 - You want what filled?
- What Do You Like
- [转]Do What You Love
- Man,what do you know?
- What do you really have?
- Now ,what you gonna do?
- Yuanfang,what do you think ?
- UVA 10943(How do you add?)
- How do you add?(UVA 10943)
- 英语练习What do you do?
- What Do You Do When Programming Sucks
- EOJ 1154:Can you do DFS? (IDA*)
- Do you hear what I hear?
- HOW TO DO WHAT YOU LOVE
- Eating out-What do you recommend?
- do you know What is RFID?
- Work, leadership and enjoy what you do
- Sstruts1和struts2的区别
- 打造ubuntu超赞图形界面(测试环境:ubuntu12.04)
- java设计模式——抽象工厂模式
- 程序员面试什么最重要?
- 使用m2eclipse插件创建web maven项目
- UVa 10946 Do You What Filled? (DFS)
- js object
- boost库在工作(9)引用计数的智能指针shared_ptr之二
- android读取json array
- TSM实施怪异考
- 自己做了一款新浪博客自动访客工具
- sfs2x安装
- 常见开源协议介绍
- SQL查询刚插入的自增长列