时间限制:10000ms
单点时限:1000ms
内存限制:256MB

描述

Little Hi gets lost in the city. He does not know where he is. He does not know which direction is north.

Fortunately, Little Hi has a map of the city. The map can be considered as a grid of N*M blocks. Each block is numbered by a pair of integers. The block at the north-west corner is (1, 1) and the one at the south-east corner is (N, M). Each block is represented by a character, describing the construction on that block: '.' for empty area, 'P' for parks, 'H' for houses, 'S' for streets, 'M' for malls, 'G' for government buildings, 'T' for trees and etc.

Given the blocks of 3*3 area that surrounding Little Hi(Little Hi is at the middle block of the 3*3 area), please find out the position of him. Note that Little Hi is disoriented, the upper side of the surrounding area may be actually north side, south side, east side or west side.

输入

Line 1: two integers, N and M(3 <= N, M <= 200).
Line 2~N+1: each line contains M characters, describing the city's map. The characters can only be 'A'-'Z' or '.'.
Line N+2~N+4: each line 3 characters, describing the area surrounding Little Hi.

输出

Line 1~K: each line contains 2 integers X and Y, indicating that block (X, Y) may be Little Hi's position. If there are multiple possible blocks, output them from north to south, west to east.

样例输入
8 8
...HSH..
...HSM..
...HST..
...HSPP.
PPGHSPPT
PPSSSSSS
..MMSHHH
..MMSH..
SSS
SHG
SH.
样例输出
5 4
package com.oj;

import java.util.Scanner;

public class TestValueOf {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String[] NM = in.nextLine().split(" ");
int n = Integer.parseInt(NM[0]);
int m = Integer.parseInt(NM[1]); String[] map = new String[n];
for(int i = 0;i < n; i++){
map[i] = in.nextLine();
} String[] posIn = new String[3];
for(int i = 0;i < 3; i++)
posIn[i] = in.nextLine(); StringBuilder sb = new StringBuilder();
sb.append(posIn[0]).append(posIn[1]).append(posIn[2]); for(int i = 1;i < m-1; i++)
for(int j = 1;j < n-1; j++)
if(FindPos(i,j,map,sb.toString())){
System.out.println((i+1)+" "+(j+1));
//return ;
}
} private static boolean FindPos(int i, int j, String[] map, String environment) {
//System.out.println(i+" "+j);
StringBuilder dir = new StringBuilder();
dir.append(map[i-1].substring(j-1, j+2));
dir.append(map[i].substring(j-1, j+2));
dir.append(map[i+1].substring(j-1, j+2));
//System.out.println("1: "+dir.toString());
if(dir.toString().equals(environment))
return true; StringBuilder dir2 = new StringBuilder();
dir2.append(map[i-1].charAt(j+1)).append(map[i].charAt(j+1)).append(map[i+1].charAt(j+1));
dir2.append(map[i-1].charAt(j)).append(map[i].charAt(j)).append(map[i+1].charAt(j));
dir2.append(map[i-1].charAt(j-1)).append(map[i].charAt(j-1)).append(map[i+1].charAt(j-1));
//System.out.println("2: "+dir2.toString());
if(dir2.toString().equals(environment))
return true; StringBuilder dir3 = new StringBuilder();
dir3.append(new StringBuilder(map[i+1].substring(j-1, j+2)).reverse());
dir3.append(new StringBuilder(map[i].substring(j-1, j+2)).reverse());
dir3.append(new StringBuilder(map[i-1].substring(j-1, j+2)).reverse());
//System.out.println("3: "+dir3.toString());
if(dir3.toString().equals(environment))
return true; StringBuilder dir4 = new StringBuilder();
dir4.append(map[i+1].charAt(j-1)).append(map[i].charAt(j-1)).append(map[i-1].charAt(j-1));
dir4.append(map[i+1].charAt(j)).append(map[i].charAt(j)).append(map[i-1].charAt(j));
dir4.append(map[i+1].charAt(j+1)).append(map[i].charAt(j+1)).append(map[i-1].charAt(j+1));
//System.out.println("4: "+dir4.toString());
if(dir4.toString().equals(environment))
return true;
return false;
}
}

  

#1094 : Lost in the City的更多相关文章

  1. hihoCoder #1094 : Lost in the City(枚举,微软苏州校招笔试 12月27日 )

    #1094 : Lost in the City 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Little Hi gets lost in the city. He ...

  2. hihocoder #1094 : Lost in the City微软苏州校招笔试 12月27日 (建图不大【暴力枚举】 子图的4种形态 1Y )

    #1094 : Lost in the City 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Little Hi gets lost in the city. He ...

  3. #1094 : Lost in the City by C solution

    时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Little Hi gets lost in the city. He does not know where he is ...

  4. hihoCoder#1094 Lost in the City

    原题地址 限时10s,所以不用考虑什么算法了,暴力吧 分别按照3x3视野的四个方向去地图上匹配,把符合的地点标记出来,最后统一按照从上到下,从左到右的顺序输出. 代码: #include <io ...

  5. BZOJ 2001: [Hnoi2010]City 城市建设

    2001: [Hnoi2010]City 城市建设 Time Limit: 20 Sec  Memory Limit: 162 MBSubmit: 1132  Solved: 555[Submit][ ...

  6. History lives on in this distinguished Polish city II 2017/1/5

    原文 Some fresh air After your time underground,you can return to ground level or maybe even a little ...

  7. History lives on in this distinguished Polish city 2017/1/4

    原文 History lives on in this distinguished Polish city Though it may be ancient. KraKow, Poland, is a ...

  8. GeoIP Legacy City数据库安装说明

    Here is a brief outline of the steps needed to install GeoIP Legacy City on Linux/Unix. The installa ...

  9. hihoCoder#1094

    刚开始学习C语言,准备在做hiho的题目的过程中来学习,在此进行记录,如果代码中有错误或者不当的地方还请指正. 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Littl ...

随机推荐

  1. windows+ant+git+tomcat中ant直接获取git项目部署注意点

    最近项目搬迁到公司的"GitHub"上面原来的SVN的ant发布脚本要改下,于是百度ant获取git的方法太少了,windows平台上更是没有所以搞了两天,今天终于有点成果分享给大 ...

  2. PE读写

    // 仿PE文件.cpp : Defines the entry point for the console application.// #include "stdafx.h"# ...

  3. Clang与libc++abi库安装

    系统ubuntu64位 Clang4.0 参考: 1 https://github.com/yangyangwithgnu/use_vim_as_ide#0.1 其中 第7章 工具链集成 2. htt ...

  4. Git 小技巧

    分享git的几个小技巧,后面会根据使用补充.目前包括git撤销本地修改.git回退到前n个版本.git多用户提交冲突解决.git 命令简化.欢迎大家补充^_* 1.git撤销本地修改 git rese ...

  5. 利用yeoman快速搭建React+webpack+es6脚手架

    自从前后端开始分离之后,前端项目工程化也显得越来越重要了,之前写过一篇搭建基于Angular+Requirejs+Grunt的前端项目教程,有兴趣的可以点这里去看 但是有些项目可以使用这种方式,但有些 ...

  6. 使用dd命令备份Linux分区

    为了备份分区,开始使用的是Remastersys,但最终生成的iso文件仅有几十K,应该是软件bug,且此软件不再更新,后尝试使用Linux Respin,但github一直连接不上. 其实可以尝试使 ...

  7. 关于Charles抓取手机访问的Https请求

    准备工作 本次测试的Charles版本为3.9.1 · 首先在Charles中开启HTTP请求的远程监听. · 然后分别在手机和Mac上安装Charles的证书. 注意:证书一定要一致,否则抓取不到. ...

  8. FABRIC单机开发者模式启动

    在开始之前需要导出一个自定义变量,方便后续操作: export FABRIC=/opt/gopath/src/github.com/hyperledger/fabric/devenv 1.在真机上执行 ...

  9. 使用Javascript快速获取URL参数

    首先:原文在这   Quick Tip: Get URL Parameters with JavaScript function getAllUrlParams(url) { var queryStr ...

  10. Maven仓库 国内镜像

    <repositories> <repository> <id>repo-mirror</id> <url>http://maven.net ...