HDU_1175_dfs
http://acm.hdu.edu.cn/showproblem.php?pid=1175
dfs(x,y,i,num),xy表示位置,i表示方向,num表示转向次数,num=2时候的剪枝很重要。
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int a[][],vis[][],n,m,endx,endy,dis[][] = {{-,},{,-},{,},{,}},flag; void dfs(int x,int y,int dir,int num)
{
if(flag) return;
if(x == endx && y == endy)
{
flag = ;
return;
}
if(num == )
{
if(dir == ||dir == )
{
if(y != endy) return;
}
else
{
if(x != endx) return;
}
}
int xx,yy;
for(int i = ;i < ;i++)
{
xx = x+dis[i][];
yy = y+dis[i][];
if(xx < || xx > n || yy < || yy > m || vis[xx][yy]) continue;
if(xx == endx && yy == endy || a[xx][yy] == )
{
vis[xx][yy] = ;
if(i == dir) dfs(xx,yy,dir,num);
else if(num < )dfs(xx,yy,i,num+);
vis[xx][yy] = ;
}
} }
int main()
{
while(cin >> n >> m && n &&m)
{
flag = ;
for(int i = ;i <= n;i++)
{
for(int j = ;j <= m;j++) cin >> a[i][j];
}
int num;
cin >> num;
while(num--)
{
int beginx,beginy;
cin >> beginx >> beginy >> endx >> endy;
if(beginx == endx && beginy == endy || a[beginx][beginy] != a[endx][endy] || a[beginx][beginy] == )
{
cout << "NO" << endl;
continue;
}
flag = ;
memset(vis,,sizeof(vis));
for(int i = ;i < ;i++)
{
if(!flag) dfs(beginx,beginy,i,);
}
if(flag) cout << "YES" << endl;
else cout << "NO" << endl;
}
}
return ;
}
HDU_1175_dfs的更多相关文章
随机推荐
- 良心推荐,我珍藏的一些Chrome插件
上次搬家的时候,发了一个朋友圈,附带的照片中不小心暴露了自己的 Chrome 浏览器插件之多,于是就有小伙伴评论说分享一下我觉得还不错的浏览器插件. 我下面就把我日常工作和学习中经常用到的一些 Chr ...
- ASP.NET Core 启用跨域请求
本文翻译整理自:https://docs.microsoft.com/en-us/aspnet/core/security/cors?view=aspnetcore-3.1 一 .Cross-Orig ...
- Lua表(table)的个人总结
1.表的简介和构造 table是个很强大且神奇的东西,又可以作为数组和字典,又可以当作对象,设置module.它是由数组和哈希表结合的实现的.他的key可以是除nil以外任意类型的值,key为整数时, ...
- Java 用集合实现简单的斗地主发牌
创建数组.集合,存放数据 public class FightAgainstLandlords { /** * poker集合,存储54张牌 */ private ArrayList<Strin ...
- python中super()
super() : 获取当前类的父类 效果图: 代码: class Animal: def __init__(self,name): self._name = name @property def n ...
- JSON的学习与使用
.katex { display: block; text-align: center; white-space: nowrap; } .katex-display > .katex > ...
- Nginx作为负载均衡服务介绍
GSLB SLB 四层负载均衡 七层负载均衡 四层负载均衡 四层负载均衡工作在OSI模型的传输层,由于在传输层,只有TCP/UDP协议,这两种协议中除了包含源IP.目标IP以外,还 ...
- 关于爬虫的日常复习(11)—— 实战:flask+redis维护代理池(to be continue)
- .net Core发布至IIS完全手册带各种踩坑
服务器环境配置 和各位大爷报告一下我的服务器环境 : Windows Server 2012 iis 8 小插曲开始: 运维大哥在昨天给了我一台新的server 0环境开始搭建 . 并且没有安装任何的 ...
- [bzoj1070] [洛谷P2053] [SCOI2007] 修车
Description 同一时刻有N位车主带着他们的爱车来到了汽车维修中心.维修中心共有M位技术人员,不同的技术人员对不同 的车进行维修所用的时间是不同的.现在需要安排这M位技术人员所维修的车及顺序, ...