#1094 : Lost in the City
描述
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的更多相关文章
- hihoCoder #1094 : Lost in the City(枚举,微软苏州校招笔试 12月27日 )
#1094 : Lost in the City 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Little Hi gets lost in the city. He ...
- 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 ...
- #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 ...
- hihoCoder#1094 Lost in the City
原题地址 限时10s,所以不用考虑什么算法了,暴力吧 分别按照3x3视野的四个方向去地图上匹配,把符合的地点标记出来,最后统一按照从上到下,从左到右的顺序输出. 代码: #include <io ...
- BZOJ 2001: [Hnoi2010]City 城市建设
2001: [Hnoi2010]City 城市建设 Time Limit: 20 Sec Memory Limit: 162 MBSubmit: 1132 Solved: 555[Submit][ ...
- 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 ...
- 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 ...
- GeoIP Legacy City数据库安装说明
Here is a brief outline of the steps needed to install GeoIP Legacy City on Linux/Unix. The installa ...
- hihoCoder#1094
刚开始学习C语言,准备在做hiho的题目的过程中来学习,在此进行记录,如果代码中有错误或者不当的地方还请指正. 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Littl ...
随机推荐
- swift 的枚举、结构体、类
一.Swift的枚举 枚举是一系相关联的值定义的一个公共的组类型,同时能够让你在编程的时候在类型安全的情况下去使用这些值.Swift中的枚举比OC中的枚举强大得多, 因为Swift中的枚举是一等类型, ...
- IOS-UIDynamic
UIDynamic中的三个重要概念 Dynamic Animator:动画者,为动力学元素提供物理学相关的能力及动画,同时为这些元素提供相关的上下文,是动力学元素与底层iOS物理引擎之间的中介,将Be ...
- 集合 LinkedList、ArrayList、Set、Treeset
LinkedList中特有的方法: 1:方法介绍 addFirst(E e) addLast(E e) getFirst() getLast() removeFirst() removeLast() ...
- [Project Name] was compiled with optimization - stepping may behave oddly; variables may not be available.
控制台输出的时候显示一串这样的信息:[Project Name] was compiled with optimization - stepping may behave oddly; variabl ...
- 修改Sqlserver实例默认排序规则
1.将sqlserver安装盘加载到虚拟光驱,这里加载到F:盘跟目录 2.cmd进入命令 3.输入命令: F:/Setup /QUIET /ACTION=REBUILDDATABASE /INSTAN ...
- DBNEWNAME工具介绍
下面修改数据库的SID和db_name [root@oracle ~]# su - ora11g db11@oracle /home/ora11g$ db11@oracle /home/ora11g ...
- js new
如果一个函数前面带上new来调用该函数,那么将创建一个隐藏连接到该函数的prototype成员的新对象,同时this将被绑定到那个新对象上 即: function B(){} var a=new B( ...
- Qt基本框架介绍
#include <QApplication>#include <QWidget> int main(int argc, char *argv[]){ QApplication ...
- webpack初试
前言: 知道这完儿,没用过.关于webpack有很多介绍了,就不多说了.放几个链接,方便新手理解.这是给纯没用过的人了解的.这里只是简单介绍一下webpack的基本用法.大多内容都是来自webpack ...
- Go语言 字符串处理
LastIndex - 查询字符串最后出现的位置 原型:func strings.LastIndex(s string, sep string) int