zoukankan      html  css  js  c++  java
  • 洛谷P1560 蜗牛的旅行

    题目

    搜索,注意判断特殊情况,并且区分开什么时候转弯什么时候停止。然后转弯的时候更是要注意是否会进入障碍。

    #include <bits/stdc++.h>
    using namespace std;
    int n, b, maxn;
    int m[1011][1011], vis[1001][1001];
    int dx[4] = {0, 1, 0, -1};
    int dy[4] = {1, 0, -1, 0};//0,1,2,3分别表示上右下左。
    void dfs(int x, int y, int now, int i)
    {
     	int nx, ny;
     	if (vis[y][x])
     	{
     		maxn = max(maxn, now - 1);
    		return;
    	}
    	nx = x + dx[i];
    	ny = y + dy[i];
    	vis[y][x] = 1;
    	if (m[ny][nx]) 
    	{
    		for (int j = 0; j <= 3; j++)
    		{
    			int wx = x + dx[j];
    			int wy = y + dy[j];
    			if (!m[wy][wx])
    				dfs(wx, wy, now + 1, j);
    		}	
    	} 
     	else dfs(nx, ny, now + 1, i);
     	vis[y][x] = 0;
    }
    int main()
    {	
     	scanf("%d%d", &n, &b);
     	for (int i = 1; i <= n; i++)
     		m[i][0] = m[i][n + 1] = m[0][i] = m[n + 1][i] = 2;
     	for (int i = 1; i <= b; i++)
     	{
      		char c;
      		int x, y;
     		cin >> c;
     		x = c - 'A' + 1;
     		scanf("%d", &y);
     		m[y][x] = 2;
     	}
     	dfs(1, 1, 1, 1);//右
     	dfs(1, 1, 1, 2);//下
     	printf("%d", maxn);
     	return 0;
    }
    
  • 相关阅读:
    小知识!
    命令级的python静态资源服务。
    自定义滚动条样式-transition无效
    css:a:visited限制
    react16 渲染流程
    virtual-dom
    用video标签流式加载
    golang 代码笔记
    position:fixed not work?
    go/node/python 多进程与多核cpu
  • 原文地址:https://www.cnblogs.com/liuwenyao/p/11722202.html
Copyright © 2011-2022 走看看