zoukankan      html  css  js  c++  java
  • Codeforces Round #390 (Div. 2)

    题目链接:http://codeforces.com/contest/754/problem/B

    题意:给定4X4的字符矩阵,字符只有'x','o','.'。现在问你能不能最多把一个'.'变成'x'(也可以不提变),使得存在三个'x'连在一起(平行,垂直,对角相连都行)。

    思路:暴力枚举每个位置,然后向八个方向找出另外2个位置。最后分类讨论即可。

    import java.awt.Point;
    import java.io.PrintWriter;
    import java.util.Scanner;
    
    public class Main {
        public static final int MAXN = 10;
        public static String G[] = new String[MAXN];
        public static int dis[][] = { { 1, 0 }, { -1, 0 }, { 0, 1 }, { 0, -1 }, { 1, 1 }, { 1, -1 }, { -1, 1 },
                { -1, -1 } };
    
        public static boolean check(Point a) {
            return a.x >= 0 && a.x < 4 && a.y >= 0 && a.y < 4;
        }
    
        public static void main(String[] args) {
            Scanner cin = new Scanner(System.in);
            PrintWriter out = new PrintWriter(System.out);
            for (int i = 0; i < 4; i++) {
                G[i] = cin.nextLine();
            }
            boolean flag = false;
            for (int i = 0; i < 4; i++) {
                for (int j = 0; j < 4; j++) {
                    if (G[i].charAt(j) == 'o') {
                        continue;
                    }
                    Point p = new Point(), q = new Point();
                    for (int k = 0; k < 8; k++) {
                        p.x = i + dis[k][0];
                        p.y = j + dis[k][1];
                        q.x = i + 2 * dis[k][0];
                        q.y = j + 2 * dis[k][1];
    
                        if (check(p) == true && check(q) == true) {
                            if (G[p.x].charAt(p.y) == 'x' && G[q.x].charAt(q.y) == 'x') {
                                flag = true;
                            }
                            if (G[p.x].charAt(p.y) == '.' && G[q.x].charAt(q.y) == 'x' && G[i].charAt(j) != '.') {
                                flag = true;
                            }
                            if (G[p.x].charAt(p.y) == 'x' && G[q.x].charAt(q.y) == '.' && G[i].charAt(j) != '.') {
                                flag = true;
                            }
                        }
                    }
                }
            }
            out.printf(flag == true ? "YES" : "NO");
            cin.close();
            out.flush();
        }
    }
  • 相关阅读:
    改变标题栏颜色和顶部栏颜色
    listview崩溃问题
    android欢迎界面
    ASZ参考代码
    shape的使用
    listview加边框
    toolbar左边有一小段空白
    as用百度地图不联网就gg
    OOM-OutOfMemory
    java reference定位
  • 原文地址:https://www.cnblogs.com/kirito520/p/6262389.html
Copyright © 2011-2022 走看看