zoukankan      html  css  js  c++  java
  • hdu 1175冒牌连连看

    #include <bits/stdc++.h>
    using namespace std;
    const int N = 1005;
    int arr[N][N];
    int vis[N][N];
    int n, m;
    int dx[4] = { 0,1,0,-1 };
    int dy[4] = { 1,0,-1,0 };
    bool flag;
    int si, sj, ei, ej;
    bool ok(int nx, int ny) {
    	if (nx<=0 || ny<=0 || nx>n || ny>m)return false;
    	return true;
    }
    int cnt = 0;
    void dfs(int x, int y,int lastdir,int k) {
    	if (flag==true)return;
    	if (k > 3)return;
    	if (k == 3 && x - ei != 0 && y - ej != 0)return;
    	for (int i = 0;i < 4;i++) {
    		int nx = x + dx[i];
    		int ny = y + dy[i];
    		if (vis[nx][ny])continue;
    		if (ok(nx,ny)) {	
    			if (nx == ei&&ny == ej && (k <= 2 || k == 3 && i == lastdir)) {
    				flag = true;
    				return;
    			}
    			if (arr[nx][ny] != 0)continue;
    			vis[nx][ny] = 1;
    			if (k==0||i != lastdir)
    				dfs(nx, ny, i, k+1);
    			else
    				dfs(nx, ny, i, k);
    			vis[nx][ny] = 0;
    		}
    	}
    }
    int main() {
    	while (~scanf("%d%d", &n, &m)) {
    		if (n == 0 && m == 0)break;
    		for (int i = 1;i <= n;i++) {
    			for (int j = 1;j <= m;j++) {
    				scanf("%d", &arr[i][j]);
    			}
    		}
    		int t;
    		scanf("%d", &t);
    		while (t--) {
    			flag = false;
    			scanf("%d%d%d%d", &si, &sj, &ei, &ej);
    			if (arr[si][sj] != 0 && arr[ei][ej] != 0) {
    				if (arr[si][sj] == arr[ei][ej]) {
    					if (!(si == ei&&sj == ej)) {
    						vis[si][sj] = 1;
    						dfs(si, sj, 0, 0);
    						vis[si][sj] = 0;
    					}
    				}
    			}
    			if (flag)printf("YES
    ");
    			else printf("NO
    ");
    		}
    	}
    	return 0;
    }
    
  • 相关阅读:
    SOA设计模式
    MVC架构设计模式
    12周总结
    11周总结
    window环境pycharm中使用cityscapes数据集训练deeplabv3+经验总结
    分析六大质量属性战术
    《一线架构师实践指南》第三章阅读笔记
    pip install 无法安装cv2
    PHP disable_functions Bypass
    MallBuilder逻辑后门(复现)
  • 原文地址:https://www.cnblogs.com/HaibaraAi/p/5136712.html
Copyright © 2011-2022 走看看