题目链接:http://acm.zzuli.edu.cn/problem.php?id=2628

题目描述
       放假了,小新决定出去散散心,于是他来到了著名的字母广场。这个广场是由n*m块砖块铺成的,每个砖块上都有一个小写字母,所以叫字母广场。广场里好玩的东西太多了,小新刚喝完奶茶,就准备去广场的另一边去吃小吃。小新在走时,低头看了一眼广场地面上的字母,突然想到了一个问题。自己在移动过程中,会路过一些砖块,将这些砖块上的字母依次拼接在一起,可以得到一个字符串。
      小新移动的规则如下:
      小新可以在广场范围内移动,不能走出广场,小新的下一步可以选择向上、下、左、右中的任一方向移动一步。
      小新已经走过的砖块不能再次到达。
      小新落脚的位置一定是在砖块的中心,也就是说小新的一步不会踩到两块及以上的砖块。初始小新可以任意选择广场内的一块砖块作为出发点,在进行k(k>=0)步移动后,可以选择结束。
      小新在选择结束后,他走过的路径会形成一个字符串,小新想知道,他得到的字符串能否比目标字符串s小呢?
输入
输入第一行一个整数T(1<=T<=10),代表样例组数;
每组样例第一行两个整数n,m(1<=n,m<=1000),代表广场的大小。
接下来n行,每行m个小写字母,代表广场地面对应位置砖块上的字母。
所有样例n*m的和<=2e7.
接下来一行只包含小写字母的字符串s(1<=|s|<=100000)。

输出
对于每组样例,输出一行。如果小新可以走出一条比目标串s字典序更小的字符串,则输出“Yes”,否则输出“No”(不加引号)。
样例输入 Copy
2
3 3
abc
def
ghi
jklmnopqrstuvwxyz 2 3
uvw
xyz
abc
样例输出 Copy
Yes
No
提示
以下是百度百科对字典序的定义:

设想一本英语字典里的单词,何者在前何者在后?
显然的做法是先按照第一个字母、以 a、b、c……z 的顺序排列;如果第一个字母一样,那么比较第二个、第三个乃至后面的字母。如果比到最后两个单词不一样长(比如,sigh 和 sight),那么把短者排在前。
这题我们选一个最小的字符作为字符串就好了,如果给出的字符串长度大于1,那么这个字符按字典序小于等于这个字符串的首字符就能比这个字符串小,如果给出的字符串长度只有1,那么只有这个字符按字典
序小于字符串的时候才能比这个字符串小
#include<set>
#include<map>
#include<stack>
#include<queue>
#include<cmath>
#include<cstdio>
#include<cctype>
#include<string>
#include<vector>
#include<climits>
#include<cstring>
#include<cstdlib>
#include<iostream>
#include<algorithm>
#define max(a, b) (a > b ? a : b)
#define min(a, b) (a < b ? a : b)
#define mst(a) memset(a, 0, sizeof(a))
#define _test printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n")
using namespace std;
typedef long long ll;
typedef pair<int, int> P;
const double eps = 1e-;
const int INF = 0x3f3f3f3f;
const ll ll_INF = 0x3f3f3f3f3f3f3f;
const int maxn = 1e3+;
char _map[maxn][maxn], s[maxn*];
bool solve(int n, int m) {
int len = strlen(s);
for (int i = ; i<n; ++i)
for (int j = ; j<m; ++j)
if (_map[i][j] < s[] || (_map[i][j] == s[] && len > ))
return true;
return false;
}
int main(void) {
int t;
scanf("%d", &t);
while(t--) {
int n, m;
scanf("%d%d", &n, &m);
for (int i = ; i<n; ++i)
scanf("%s", _map[i]);
scanf("%s", s);
printf(solve(n,m) ? "Yes\n" : "No\n");
}
return ;
}

zzulioj - 2628: 小新的字母广场的更多相关文章

  1. zzulioj - 2619: 小新的信息统计

    题目链接:http://acm.zzuli.edu.cn/problem.php?id=2619 题目描述        马上就要新生赛了,QQ群里正在统计所有人的信息,每个人需要从群里下载文件,然后 ...

  2. 设置Fn键 笔记本直接按F1-F12 无须按Fn键 Fn+F12改F12(联想小新300为例)

    最近公司给配的笔记本联想小新300 80RT  i7-6500U 4G内存 500G机械,后加装120G固态+4G内存 这样就感觉还不错了. 在使用这本子的时候,去了Win10,强行装了Win7.无线 ...

  3. 【转】G40-70、G50-70联想小新笔记本SR1000随机Linux改Windows 7系统操作指导

    http://support1.lenovo.com.cn/lenovo/wsi/htmls/detail_20140505150749705.html 适用范围:G40-70,G50-70联想小新笔 ...

  4. 联想小新Air 15 安装黑苹果macOS High Sierra 10.13.6过程

    联想小新Air 15 安装黑苹果全过程 本文参考:https://blog.csdn.net/qq_28735663/article/details/80634300 本人是联想小新AIr 15 , ...

  5. 微信小程序通讯录字母排序

    微信小程序通讯录 字母排序效果: demo地址:https://github.com/PeachCoder/wechat-contacts

  6. Linux[Manjaro] 小新15笔记本AMD ryzen锐龙4800U,在安装系统后出现的随即死机冻屏问题

    Linux[Manjaro] 小新15AMD ryzen锐龙4800U,在安装系统后出现的随即死机冻屏问题解决办法 年初尝试将manjaro安装在我的笔记本上就存在这个问题,也一度将我劝退.系统安装在 ...

  7. XiaoXin 13Pro-Hackintosh 小新13pro崇尚极简的黑苹果双系统

    Lenovo XiaoXin-13-Pro-Hackintosh 关键词:Hackintosh XiaoXin EFI Tutorial Lenovo 以下提及的EFI及其他部分文件见github仓库 ...

  8. 折腾黑苹果-小新Pro13

    最近在闲鱼上购入了一台2020版的联想小新 Pro13,i5 10200u 16g 512g配置,Ax201网卡.这台机子原生硬件就可以完美黑苹果了,不需要更换配件.只是Ax201网卡不能随航和隔空投 ...

  9. ZZULIoj 1912 小火山的爱情密码

    Description 小火山获得了一个字符串,然而大火山让小火山从里面截取一段字符串,并且让小火山截取的字符串满足一些字符达到一定数量. 小火山觉得很容易,但是他想要知道他至少得截取多长的字符串. ...

随机推荐

  1. Shell编程入门基础上

    前言 为什么学 Shell Shell 脚本语言是实现 Linux/UNIX 系统管理及自动化运维所必备的重要工具, Linux/UNIX 系统的底层及基础应用软件的核心大都涉及 Shell 脚本的内 ...

  2. -Gradle 翻译 Merge AndroidManifest 合并清单文件 MD

    目录 目录 Merge AndroidManifest 合并清单文件 合并多个清单文件 合并优先级 合并冲突启发式算法 合并规则的标记 节点标记 属性标记 Attribute markers 标记选择 ...

  3. 通过分析 WPF 的渲染脏区优化渲染性能

    原文:通过分析 WPF 的渲染脏区优化渲染性能 本文介绍通过发现渲染脏区来提高渲染性能. 本文内容 脏区 Dirty Region WPF 性能套件 脏区监视 优化脏区重绘 脏区 Dirty Regi ...

  4. Openstack Sahara组件和架构简介

    1.简介 Apache Hadoop是目前被广泛使用的主流大数据处理计算框架,Sahara项目旨在使用用户能够在Openstack平台上便于创建和管理Hadoop以及其他计算框架集群,实现类似AWS的 ...

  5. 关于.Net使用企业库访问MySql数据库

    关于.Net使用企业库访问MySql数据库 在网上看了很多又重写又加WebConfig中的内容,其实不用那么麻烦 企业库5.0访问MySql数据库只需要在Web服务器安装mysql-connector ...

  6. Centos复制的系统无法获取IP地址

    本文主要是解决自己玩虚拟机时遇到的问题,网上查询了很多资料,最好综合多方的资料进行如下总结,如果无法解决您得问题,不要着急慢慢梳理总会解决的,加油~~~ 1.添加一块新的虚拟机的网卡2.删除rm -r ...

  7. iptables限制访问

    iptables限制访问 常用命令 # 查看规则 iptables -L INPUT --line-numbers # 开放指定的端口 iptables -A INPUT -p tcp --dport ...

  8. JAVA基础之会话技术-Cookie及Session

    至此,学习Servlet三个域对象:ServletContext(web项目).request(一次请求).Session(一个客户端)!均有相同的方法! 从用户开始打开浏览器进行操作,便开始了一次会 ...

  9. Windows10 上安装 Anaconda 后命令提示符(cmd)下无法执行(python / pip)命令解决方案

    原文:https://blog.csdn.net/qq_38644840/article/details/85064408 安装Anaconda后一段时间内能够在命令提示符(cmd)界面运行pytho ...

  10. 如何统一管理单个任务下所有API的同步情况?

    1. 一分钟完成单个API配置 单个API的配置包含:API名称.URL地址.请求方式.参数设置.自定义高级设置. 参数允许用户填写:Text.WebService.Timestamp.DependO ...