算法设计大赛21.
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/a941facbcf346106830796a2e4ed7986.png)
矩阵为:
VLPWJVVNNZSWFGHSFRBCOIJTPYNEURPIGKQGPSXUGNELGRVZAG
SDLLOVGRTWEYZKKXNKIRWGZWXWRHKXFASATDWZAPZRNHTNNGQF
ZGUGXVQDQAEAHOQEADMWWXFBXECKAVIGPTKTTQFWSWPKRPSMGA
BDGMGYHAOPPRRHKYZCMFZEDELCALTBSWNTAODXYVHQNDASUFRL
YVYWQZUTEPFSFXLTZBMBQETXGXFUEBHGMJKBPNIHMYOELYZIKH
ZYZHSLTCGNANNXTUJGBYKUOJMGOGRDPKEUGVHNZJZHDUNRERBU
XFPTZKTPVQPJEMBHNTUBSMIYEGXNWQSBZMHMDRZZMJPZQTCWLR
ZNXOKBITTPSHEXWHZXFLWEMPZTBVNKNYSHCIQRIKQHFRAYWOPG
MHJKFYYBQSDPOVJICWWGGCOZSBGLSOXOFDAADZYEOBKDDTMQPA
VIDPIGELBYMEVQLASLQRUKMXSEWGHRSFVXOMHSJWWXHIBCGVIF
GWRFRFLHAMYWYZOIQODBIHHRIIMWJWJGYPFAHZZWJKRGOISUJC
EKQKKPNEYCBWOQHTYFHHQZRLFNDOVXTWASSQWXKBIVTKTUIASK
PEKNJFIVBKOZUEPPHIWLUBFUDWPIDRJKAZVJKPBRHCRMGNMFWW
CGZAXHXPDELTACGUWBXWNNZNDQYYCIQRJCULIEBQBLLMJEUSZP
RWHHQMBIJWTQPUFNAESPZHAQARNIDUCRYQAZMNVRVZUJOZUDGS
PFGAYBDEECHUXFUZIKAXYDFWJNSAOPJYWUIEJSCORRBVQHCHMR
JNVIPVEMQSHCCAXMWEFSYIGFPIXNIDXOTXTNBCHSHUZGKXFECL
YZBAIIOTWLREPZISBGJLQDALKZUKEQMKLDIPXJEPENEIPWFDLP
HBQKWJFLSEXVILKYPNSWUZLDCRTAYUUPEITQJEITZRQMMAQNLN
DQDJGOWMBFKAIGWEAJOISPFPLULIWVVALLIIHBGEZLGRHRCKGF
LXYPCVPNUKSWCCGXEYTEBAWRLWDWNHHNNNWQNIIBUCGUJYMRYW
CZDKISKUSBPFHVGSAVJBDMNPSDKFRXVVPLVAQUGVUJEXSZFGFQ
IYIJGISUANRAXTGQLAVFMQTICKQAHLEBGHAVOVVPEXIMLFWIYI
ZIIFSOPCMAWCBPKWZBUQPQLGSNIBFADUUJJHPAIUVVNWNWKDZB
HGTEEIISFGIUEUOWXVTPJDVACYQYFQUCXOXOSSMXLZDQESHXKP
FEBZHJAGIFGXSMRDKGONGELOALLSYDVILRWAPXXBPOOSWZNEAS
VJGMAOFLGYIFLJTEKDNIWHJAABCASFMAKIENSYIZZSLRSUIPCJ
BMQGMPDRCPGWKTPLOTAINXZAAJWCPUJHPOUYWNWHZAKCDMZDSR
RRARTVHZYYCEDXJQNQAINQVDJCZCZLCQWQQIKUYMYMOVMNCBVY
ABTCRRUXVGYLZILFLOFYVWFFBZNFWDZOADRDCLIRFKBFBHMAXX
题解:
- 我们分别从几个方向进行
深度优先搜索
即可,每一个方向我们需要深搜
两次,因为其可以从左往右看,也可以从上往下看,因此我们需要对每种方向都进行深搜
。
代码:
public class Test444 {
public static void main(String[] args) {
char[][] matrix = new char[30][50];
int res = 0;
int[][] dir = {
{ 0, 1 },
{ 1, 0 },
{ 1, 1 },
{ 1, -1 },
{ -1, 1 }
};
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < 30; i++) {
String s = scanner.next();
for (int j = 0; j < 50; j++) {
matrix[i][j] = s.charAt(j);
}
}
int a, b, aN, bN;
for (int i=0; i<30;i++) {
for (int j=0;j<50;j++) {
for (int k=0;k<5;k++) {
a = i;
b = j;
while (true) {
b += dir[k][1];
a += dir[k][0];
bN = b;
aN = a;
if (a < 0 || b < 0) {
break;
}
if (a >= 30 || b >= 50) {
break;
}
while (true) {
aN += dir[k][0];
bN += dir[k][1];
if (aN < 0 || bN < 0) {
break;
}
if (aN >= 30 || bN >= 50) {
break;
}
if (matrix[i][j] < matrix[a][b] && matrix[a][b] < matrix[aN][bN]) {
res++;
}
}
}
}
}
}
System.out.println(res);
}
}
结果:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/f99a378b0f78628fcfe096d344184992.png)