POJ 1154题解,此题不难理解方法就是DFS,属于水题。不过有一些细节要注意。...
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<string.h> 4 #include<iostream> 5 6 using namespace std; 7 8 char map[30][30]; 9 int vis[30]; 10 int dir[4][2] = {1,0,-1,0,0,-1,0,1}; //搜索的四个方向,这里用数组表示,为了下面表示方便11 int ans, row, col, loc; //loc表示搜索的深度。12 13 int Inmap(int nr,int nc) //判断搜索的条件,也可直接写在DFS内,这里为了避免一行的代码过于冗长。14 {15 if (nr >= 0 && nr < row && nc >= 0 && nc < col)16 {17 return 1;18 }19 return 0;20 }21 void DFS(int r,int c) //无返回值就用void.22 {23 int i,nr,nc;24 if (loc > ans)25 {26 ans=loc;//对ans的值进行更新,它的值就是搜索的深度。27 }28 29 for ( i=0;i<4;i++)30 {31 nr=r+dir[i][0];32 nc=c+dir[i][1];33 if (Inmap(nr,nc) && !vis[map[nr][nc]-'A'])34 {35 vis[map[nr][nc]-'A']=1;//将访问过的字符标记为1,相同的字符就不会再被标记。36 loc++;//深度加137 DFS(nr,nc);38 vis[map[nr][nc]-'A']=0;回溯反标记39 loc--; //回溯后深度会减小1这里要减掉1.40 }41 }42 }43 int main(void)44 { 45 int i, j;46 47 while( cin >> row >> col ) 48 {49 getchar();//处理换行字符不能省略,否则会WA。50 ans = 1;51 loc = 1; //将两个变量赋值为1,因为搜索深度至少为1.52 memset(vis,0,sizeof(vis));53 for ( i=0;i<row;i++)54 {55 for(j=0; j<col; j++)56 {57 cin>>map[i][j];58 }59 getchar();60 }61 vis[map[0][0]-'A']=1;62 DFS(0,0);63 cout<< ans <<endl;64 }65 return 0;66 }
转载于:https://www.cnblogs.com/cn19901203/archive/2011/08/26/2154930.html
POJ 1154题解,此题不难理解方法就是DFS,属于水题。不过有一些细节要注意。...相关推荐
- PAT甲题题解-1011. World Cup Betting (20)-误导人的水题。。。
题目不严谨啊啊啊啊 式子算出来结果是37.975 样例输出的是37.98 我以为是四舍五入的啊啊啊,所以最后输出的是sum+0.005 结果告诉我全部错误啊 结果直接保留两位小数就可以了啊啊啊啊 水题 ...
- 【POJ - 3048】Max Factor (数论,打表,水题)
题干: To improve the organization of his farm, Farmer John labels each of his N (1 <= N <= 5,000 ...
- 超级大水题(还是自己过不了的水题)
题目链接:https://vjudge.net/contest/231314#problem/D Peter Parker wants to play a game with Dr. Octopus. ...
- 【Leetcode每日一题】118. 杨辉三角(水题)
Leetcode每日一题 题目链接: 118. 杨辉三角 难度: 简单 解题思路: 无.见代码. 题解: class Solution:def generate(self, numRows: int) ...
- 蓝桥杯 第三届C/C++预赛真题(7) 放棋子(水题)
今有 6 x 6 的棋盘格.其中某些格子已经预先放好了棋子.现在要再放上去一些,使得:每行每列都正好有3颗棋子.我们希望推算出所有可能的放法.下面的代码就实现了这个功能. 初始数组中,"1& ...
- 【qduoj - 夏季学期创新题】最长公共子串(水题暴力枚举,不是LCS啊)
题干: 描述 编写一个程序,求两个字符串的最长公共子串.输出两个字符串的长度,输出他们的最长公共子串及子串长度.如果有多个最长公共子串请输出在第一个字符串中先出现的那一个. 特别注意公共子串中可能包含 ...
- POJ 1003 Hangover 水题
题目看着挺复杂,还配了个看上去就很高大上的图,但是看完题就发现,完完全全是一道水题= =好吧,题意简单说就是有一排数,是1/2,1/2+1/3,1/2+1/3+1/4.......然后给出一个数,问这 ...
- 最详细最简单:最大公因数求法、辗转相除法、更相减损法,入门ACM,杭电水题,算法递归,初级算法题一看就懂
文章目录 前言 一.名称定义 1.最大公约数 2.辗转相除法 3.更相减损法 二.ACM杭电入门题 1.解题思路 三.解题参考代码(C语言,C++) 0.最优算法(C++) 1.辗转相除求解(C语言) ...
- 【UR #7】水题走四方
题目描述 今天是世界水日,著名的水题资源专家蝈蝈大臣发起了水题走四方活动,向全世界发放成千上万的水题. 蝈蝈大臣是家里蹲大学的教授,当然不愿意出门发水题啦!所以他委托他的助手欧姆来发. 助手欧姆最近做 ...
最新文章
- vc mysql控件_VC++使用ActiveX控件连接和操作数据库
- Ajax基础知识梳理
- D2 AJAX 封装策略
- 好的Java编程习惯
- 2021-4-4 省选模拟赛(灯,十字路口,密室逃脱)
- SEO 搜索引擎优化技巧
- Struts框架详解
- 10款硬盘数据恢复软件推荐
- burpsuite工具抓取Https数据包
- Android签名方式
- 文本特征提取和向量化
- python数据分析实例-python数据分析-11数据分析实战案例
- Java代码审计——SSH 框架审计技巧
- 16岁黑客发现Steam Store审核机制漏洞,可直接发布应用或游戏
- JS逆向入门学习之回收商网,手机号码简易加密解析
- 用LINUX架设FTP服务器
- Unity学习资源指南[精心整理]
- git 提交部分修改代码(非全部代码)
- 开源办公OA平台教程:如何修改O2OA配置连接本地部署的OnlyOffice Docs Server服务器?
- Python 第四章 常用内置数据类型