首页 > 编程语言 >南沙C++信奥老师解一本通题: 1212:LETTERS

南沙C++信奥老师解一本通题: 1212:LETTERS

时间:2024-09-13 14:15:08浏览次数:1  
标签:1212 信奥 int 字母 矩阵 通题 ans col row

 题目描述】

给出一个row×col的大写字母矩阵,一开始的位置为左上角,你可以向上下左右四个方向移动,并且不能移向曾经经过的字母。问最多可以经过几个字母。

【输入】

第一行,输入字母矩阵行数R和列数S,1≤R,S≤20。

接着输出R行S列字母矩阵。

【输出】

最多能走过的不同字母的个数。

【输入样例】

3 6
HFDFFB
AJHGDH
DGAGEH

【输出样例】

6
#include <bits/stdc++.h>
using namespace std;
int d[4][2]={{1,0},{0,1},{-1,0},{0,-1}};
char a[21][21];
bool v[256];
int row,col,ans=0;
void dfs(int x,int y,int step)
{
	ans=max(ans,step);
	for(int i=0;i<4;i++)
	{
		int nx=x+d[i][0];
		int ny=y+d[i][1];
		if(nx>=1&&nx<=row&&ny>=1&&ny<=col&& v[ a[nx][ny] ]==false)
		{
			v[ a[nx][ny] ]=true;
			dfs(nx,ny,step+1);
			v[ a[nx][ny] ]=false;
		}
	
	}
}
int main()
{
	int cnt=0;
	cin>>row>>col; 
	memset(v,false,sizeof(0)); //初始时字母都没有走过 
	for(int i=1;i<=row;i++)
		for(int j=1;j<=col;j++)
			cin>>a[i][j];	
	v[ a[1][1] ]=true; //一定要标记已走过,否则回溯时又重走了 
	dfs(1,1,1);
	cout<<ans;
	return 0;
}

 

标签:1212,信奥,int,字母,矩阵,通题,ans,col,row
From: https://www.cnblogs.com/nanshaquxinaosai/p/18412088

相关文章

  • 南沙C++信奥老师解一本通题: 1315:【例4.5】集合的划分
    ​ 【题目描述】【输入】给出n和k。【输出】n个元素a1,a2,……,an放入k个无标号盒子中去的划分数S(n,k)。【输入样例】106 【输出样例】22827 #include<iostream>usingnamespacestd;longlongSplit(intn,intplate)//等同于n个不同的数......
  • 南沙C++信奥老师解一本通题:1203:扩号匹配问题
    ​【题目描述】在某个字符串(长度不超过100)中有左括号、右括号和大小写字母;规定(与常见的算数式子一样)任何一个左括号都从内到外与在它右边且距离最近的右括号匹配。写一个程序,找到无法匹配的左括号和右括号,输出原来字符串,并在下一行标出不能匹配的括号。不能匹配的左括号用"$"标......
  • 信奥一本通题陈老师解题:1209:分数求和
    ​【题目描述】【输入】第一行是一个整数nn,表示分数个数,1≤n≤101≤n≤10;接下来nn行,每行一个分数,用"p/qp/q"的形式表示,不含空格,p,qp,q均不超过1010。【输出】输出只有一行,即最终结果的最简形式。若为分数,用"p/qp/q"的形式表示。【输入样例】21/21/3【输出样例】5/......
  • 河南省12123公安厅临牌打印如何下载打印控件
    公安交通管理综合应用平台打印控件安装失败,河南省公安厅临牌打印如何下载打印控件,12123临牌系统怎么安装打印控件?   关于“12123河南省公安厅临牌打印如何下载打印控件怎么安装打印控件”的问题,实际上,交管12123APP主要用于在线申请临时号牌、查询车辆信息、处理交通违......
  • 南沙C信++奥赛陈老师解一本通题: 1205:汉诺塔问题
    ​【题目描述】约19世纪末,在欧州的商店中出售一种智力玩具,在一块铜板上有三根杆,最左边的杆上自上而下、由小到大顺序串着由64个圆盘构成的塔。目的是将最左边杆上的盘全部移到中间的杆上,条件是一次只能移动一个盘,且不允许大盘放在小盘的上面。这是一个著名的问题,几乎所有的教......
  • 信奥OJ的搭建
     第一步,服务器申请选择一:免费云服务器,免费虚拟主机如:阿贝云阿贝云提供了免费的云服务器和免费的云虚拟主机,可根据自己的实际应用情况选择。首先注册一个账户,然后需要支付0.3元做一个实名认证,如果实名认证成功了大概率会开通成功。如果失败了可能是服务器资源池......
  • 南沙信奥赛C++陈老师解一本通题: 1326:【例7.5】 取余运算(mod)
    ​【题目描述】【输入】输入b,p,k的值。【输出】【输入样例】2109【输出样例】2^10mod9=7 #include<iostream>#include<stdlib.h>usingnamespacestd;longlongb,p,k,ans=1;intmain(){ cin>>b>>p>>k; for(inti=1;i<=p;i++) { ans*=b;......
  • 南沙信奥赛C++陈老师解一本通题: 1171:大整数的因子
    ​ 【题目描述】已知正整数k满足2≤k≤9,现给出长度最大为30位的十进制非负整数c,求所有能整除c的k。【输入】一个非负整数c,c的位数≤30。【输出】若存在满足 c%k==0的k,从小到大输出所有这样的k,相邻两个数之间用单个空格隔开;若没有这样的k,则输出"none"。【输入样......
  • 南沙信C++陈老师解一本通题:1310:【例2.2】车厢重组
    ​【题目描述】在一个旧式的火车站旁边有一座桥,其桥面可以绕河中心的桥墩水平旋转。一个车站的职工发现桥的长度最多能容纳两节车厢,如果将桥旋转180度,则可以把相邻两节车厢的位置交换,用这种方法可以重新排列车厢的顺序。于是他就负责用这座桥将进站的车厢按车厢号从小到大排列......
  • 南沙信C++陈老师解一本通题: 1101:不定方程求解
    ​ 【题目描述】给定正整数a,b,c。求不定方程 ax+by=c关于未知数x和y的所有非负整数解组数。【输入】一行,包含三个正整数a,b,c两个整数之间用单个空格隔开。每个数均不大于1000。【输出】一个整数,即不定方程的非负整数解组数。【输入样例】2318【输出样例】4......