題目描述
放假了,小新決定出去散散心,於是他來到了著名的字母廣場。這個廣場是由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
23 3abc
defghi
jklmnopqrstuvwxyz
2 3uvw
xyzabc
樣例輸出 copy
yesno
提示顯然的做法是先按照第乙個字母、以 a、b、c……z 的順序排列;如果第乙個字母一樣,那麼比較第二個、第三個乃至後面的字母。如果比到最後兩個單詞不一樣長(比如,sigh 和 sight),那麼把短者排在前。
這題我們選乙個最小的字元作為字串就好了,如果給出的字串長度大於1,那麼這個字元按字典序小於等於這個字串的首字元就能比這個字串小,如果給出的字串長度只有1,那麼只有這個字元按字典
序小於字串的時候才能比這個字串小
#include#include#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#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
p;const
double eps = 1e-7
;const
int inf = 0x3f3f3f3f
;const ll ll_inf = 0x3f3f3f3f3f3f3f
;const
int maxn = 1e3+10
;char _map[maxn][maxn], s[maxn*100
];bool solve(int n, int
m) int main(void
)
return0;
}
zzuli OJ 2339 小新同學的學號
情況說明 18級新生周賽 1 題目描述 小新的學號最後三位是153,他發現了153的秘密之處。從任乙個3的倍數的數開始進行如下變換 把各位數字的立方相加,其和就作為變換後的數字。反覆進行上述變換,經過有限次計算以後,結果必然等於153。例如 24是3的倍數,按照上述規則,進行變換的過程是 24 22...
zzuli OJ2346 小新同學的困惑
情況說明 18級新生周賽 1 題目描述 小新同學進入大學之後很困惑,不知道在大學期間應該做什麼,就去問學長,學長告訴小新大學期間一定要談一場轟轟烈烈的戀愛,他去問學姐,學姐告訴小新大學期間要多參加戶外運動,做乙個陽光健康男孩,他又去問輔導員,輔導員說大學期間要多參加系裡組織的活動,為了 為了什麼呢?...
zzuli OJ 2332 小新同學找女朋友
情況說明 18級新生周賽 1 題目 題目描述 小新同學剛進入大學,就幻想著每天都能和女朋友花前月下,現實是殘酷的,女朋友還沒有,小新就壯著膽子向心儀的女孩表白,女孩就問小新,家裡有礦嗎?答 沒有,是acm隊員嗎?答 不是。女孩就告訴小新,先在oj上刷夠200題再來見我,小新看到自己那可憐的刷題記錄,...