字母游戏(搜索)

问题 S: 【搜索】字母游戏

时间限制: 10 Sec  内存限制: 64 MB
提交: 28  解决: 17
[提交] [状态] [讨论版] [命题人:外部导入]

题目描述

一种单人玩的游戏,规则为:
在一个R行C列的方格上,每个方格中有一个A~Z的字母。游戏从左上角(第一行,第一列)位置开始,一步一步地向相邻(上、下、左、右)方格移动。唯一的限制是路径上的方格中的字母,每种字母只能出现1次。
游戏的目标是走尽可能长的路径。请你写程序算出指定棋盘上,可能走的最长步数。

输入

第1行两个整数R和C(1≤R,C≤20);
后面R行每行有C个字母,每行表示棋盘上的一行状态。

输出

有且只有一行,你计算出的最长步数。

样例输入

复制样例数据

5 5
IEFCJ
FHFKC
FFALF
HFGCF
HMCHH

样例输出

10思路:爆搜即可。
#include<bits/stdc++.h>
#include<map>
using namespace std;
char str[30][30];
int ans, d[4][2] = { {1,0},{-1,0},{0,1},{0,-1} },n,m;
int vis[30];
void dfs(int x,int y,int cur) {
    if (cur > ans)ans = cur;
    for (int i = 0; i < 4; i++) {
        int cx = x + d[i][0], cy = y + d[i][1];
        if (cx > n || cy > m || cx < 1 || cy < 1 || vis[str[cx][cy] - ‘A‘] == 1)continue;
        vis[str[cx][cy] - ‘A‘] = 1;
        dfs(cx, cy, cur + 1);
        vis[str[cx][cy] - ‘A‘] = 0;
    }
    return;
}
int main() {
    cin >> n >> m;
    for (int i = 1; i <= n; i++)scanf("%s",str[i] + 1);
    vis[str[1][1] - ‘A‘] = 1;
    dfs(1, 1, 1);
    cout << ans << endl;
}

原文地址:https://www.cnblogs.com/czy-power/p/10358675.html

时间: 2024-10-13 16:02:21

字母游戏(搜索)的相关文章

字母游戏

[问题描写叙述] peter喜欢玩字母游戏,于是他编写了一个有趣的游戏.游戏规则是在一个 (N-1) * N的表格里填写字母.规则:对于每一个输入的N,由 (N-1) * N的字母区域的左上角開始,从字母A開始逆时针填充一个字母区域,乘积若超过26继续由新一组的A.B.C??填充,不要求输出边框. [输入] 多组測试数据(数据量在100组以内). 每组測试数据仅仅有一行为一个整数N(1<=N<=30).表示表格的宽度. [输出] 对于每组输入数据.输出N-1行,为填完的表格(N-1行,每行N个

猜字母游戏

猜字母游戏 猜字母游戏——设计数据结构 猜字母游戏——设计程序结构 猜字母游戏——实现字母生成方法 猜字母游戏——实现字母检测方法 猜字母游戏——实现主方法 1 猜字母游戏——设计数据结构 1.1 问题 有猜字母游戏,其游戏规则为:程序随机产生5个按照一定顺序排列的字符作为猜测的结果,由玩家来猜测此字符串.玩家可以猜测多次,每猜测一次,则由系统提示结果.如果猜测的完全正确,则游戏结束,计算玩家的游戏得分并输出:如果没有猜对,则提示猜测的结果,如猜对了几个字符,以及猜对了几个字符的位置等信息,并提

玩转游戏搜索

年前总结了游戏搜索做的事情,现在把slide放出来当做这个月的作业. 1.总纲 2.架构 架构是骨骼,算法策略是灵魂,所以同等重要.一个正常的系统都可以分为三部分:线上系统接收用户请求,监控系统实时发现异常和报警,离线系统分析挖掘数据进而反馈给线上. 2.1监控和报表 监控常见的是QPS和服务延迟,还能包括业务关注点. 2.2 离线JOB 离线系统用于挖掘用户行为进而反馈给线上,提升策略效果.常用的是日志收集.分析提取.算法计算.本文用facebook的scribe收集日志,用hdfs存储,使用

Android中ListView字母排序,实现字母挤压效果以及右侧快速选中字母,搜索关键字功能

Android中ListView字母排序,实现字母挤压效果以及右侧快速选中字母,搜索关键字功能 本文中阐述如何自定义EditText实现搜索框自定义的样式以及挤压字母的思路等 自定义EditText 相关的drawable文件 主界面以及相关的适配器 结果展示 定义要呈现的EditText的样式 public class ClearEditText extends EditText implements OnFocusChangeListener, TextWatcher { /** * 定义删

JSP简单练习-猜字母游戏

<!-- guessCharExample.jsp --> <%@ page contentType="text/html; charset=gb2312" %> <html> <head> <title>猜字母游戏</title> </head> <body> 下面,我们一起来玩一个游戏:猜字母游戏<br> 游戏规则:电脑会随机自动生成一个字母,请你猜出这个字母是什么.字母忽略

从零开始学C语言,200行代码完成一个打字母游戏!

很多刚开始学习编程的同学都希望自己可以去开发一些游戏,当学习了c语言的时候却发现总是用c语言去解决一些数学问题,今天我就分享给大家一个我学习c语言时候学到的一些好玩的东西,希望可以帮助大家保持对编程的兴趣. 创一个小群,供大家学习交流聊天如果有对学C++方面有什么疑惑问题的,或者有什么想说的想聊的大家可以一起交流学习一起进步呀.也希望大家对学C++能够持之以恒C++爱好群,如果你想要学好C++最好加入一个组织,这样大家学习的话就比较方便,还能够共同交流和分享资料,给你推荐一个学习的组织:快乐学习

Java实现猜字母游戏

package day06; import java.util.Scanner; public class HomeWork { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String string = "GuessingGame"; System.out.println(string+"欢迎尝试猜字谜游戏!满分500分,最低分为0分!");

拉灯游戏 搜索

你玩过“拉灯”游戏吗?25盏灯排成一个5x5的方形.每一个灯都有一个开关,游戏者可以改变它的状态.每一步,游戏者可以改变某一个灯的状态.游戏者改变一个灯的状态会产生连锁反应:和这个灯上下左右相邻的灯也要相应地改变其状态. 我们用数字“1”表示一盏开着的灯,用数字“0”表示关着的灯.下面这种状态 1011101101101111000011011 在改变了最左上角的灯的状态后将变成: 0111111101101111000011011 再改变它正中间的灯后状态将变成: 01111110011100

华为机试题【13】-wave数组找字母游戏

题目描述: Word Maze 是一个网络小游戏,你需要找到以字母标注的食物,但要求以给定单词字母的顺序吃掉.如上图,假设给定单词if,你必须先吃掉i然后才能吃掉f. 但现在你的任务可没有这么简单,你现在处于一个迷宫Maze(n×m的矩阵)当中,里面到处都是以字母标注的食物,但你只能吃掉能连成给定单词W的食物. ,指定W为"SOLO",则在地图中红色标注了单词"SOLO". 注意区分英文字母大小写,你只能上下左右行走. 运行时间限制: 无限制 内存限制: 无限制 输