hdu 4741 2013杭州赛区网络赛 dfs ***
起点忘记录了,一直wa
代码写的很整齐,看着很爽
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<queue>
#include<map>
using namespace std;
#define MOD 1000000007
const int INF=0x3f3f3f3f;
const double eps=1e-;
typedef long long ll;
#define cl(a) memset(a,0,sizeof(a))
#define ts printf("*****\n");
const int MAXN=;
int n,m,tt;
int dir[][]={,,,,,-,-,};
bool vis1[MAXN][MAXN];
bool vis2[MAXN][MAXN];
void dfs(int dx,int dy,int dd,int tx,int ty,int td)
{
if(dx==tx&&dy==ty)
{
printf("%d %d\n",dx,dy);
return;
}
bool f1=,f2=;
int ndd=dd;
int ndx=dx+dir[dd][];
int ndy=dy+dir[dd][];
if(ndx<||ndx>=n||ndy<||ndy>=n||vis1[ndx][ndy]) ndd=(dd+)%;
ndx=dx+dir[ndd][];
ndy=dy+dir[ndd][];
if(ndx<||ndx>=n||ndy<||ndy>=n||vis1[ndx][ndy])
{
f1=;
ndx=dx,ndy=dy,ndd=dd;
} int ntd=td;
int ntx=tx+dir[td][];
int nty=ty+dir[td][];
if(ntx<||ntx>=n||nty<||nty>=n||vis2[ntx][nty]) ntd=(td-+)%;
ntx=tx+dir[ntd][];
nty=ty+dir[ntd][];
if(ntx<||ntx>=n||nty<||nty>=n||vis2[ntx][nty])
{
f2=;
ntx=tx,nty=ty,ntd=td;
}
if(f1&&f2)
{
printf("-1\n");
return;
}
vis1[ndx][ndy]=;
vis2[ntx][nty]=; dfs(ndx,ndy,ndd,ntx,nty,ntd);
}
int main()
{
int i,j,k,ca=;
#ifndef ONLINE_JUDGE
freopen("1.in","r",stdin);
#endif
int dx,dy,dd,tx,ty,td;
int tot=;
while(scanf("%d",&n)!=EOF&&n)
{
cl(vis1);
cl(vis2);
scanf("%d%d%d",&dx,&dy,&dd);
scanf("%d%d%d",&tx,&ty,&td);
vis1[dx][dy]=;
vis2[tx][ty]=;
dfs(dx,dy,dd,tx,ty,td);
}
}
hdu 4741 2013杭州赛区网络赛 dfs ***的更多相关文章
- hdu 4738 2013杭州赛区网络赛 桥+重边+连通判断 ***
题意:有n座岛和m条桥,每条桥上有w个兵守着,现在要派不少于守桥的士兵数的人去炸桥,只能炸一条桥,使得这n座岛不连通,求最少要派多少人去. 处理重边 边在遍历的时候,第一个返回的一定是之前去的边,所以 ...
- hdu 4739 2013杭州赛区网络赛 寻找平行坐标轴的四边形 **
是平行坐标轴的,排个序搞一下就行了,卧槽,水的不行 如果不是平行的,则需要按照边长来判断
- hdu 4751 2013南京赛区网络赛 二分图判断 **
和以前做过的一个二分图颇为相似,以前的是互相不认识的放在一组,这个是互相认识的,本质上是相同的 是 hdu 2444 #include<cstdio> #include<iostre ...
- hdu 4277 2012长春赛区网络赛 dfs+hashmap ***
hashmap判重大法好 #include<cstdio> #include<iostream> #include<algorithm> #include<c ...
- hdu 4272 2012长春赛区网络赛 dfs暴力 ***
总是T,以为要剪枝,后来发现加个map就行了 #include<cstdio> #include<iostream> #include<algorithm> #in ...
- hdu 4753 2013南京赛区网络赛 记忆化搜索 ****
看到范围基本可以想到dp了,处理起来有点麻烦 #include<iostream> #include<cstdio> #include<cstring> #incl ...
- hdu 4731 2013成都赛区网络赛 找规律
题意:找字串中最长回文串的最小值的串 m=2的时候暴力打表找规律,打表可以用二进制枚举
- hdu 4412 2012杭州赛区网络赛 期望
虽然dp方程很好写,就是这个期望不知道怎么求,昨晚的BC也是 题目问题抽象之后为:在一个x坐标轴上有N个点,每个点上有一个概率值,可以修M个工作站, 求怎样安排这M个工作站的位置,使得这N个点都走到工 ...
- hdu 4411 2012杭州赛区网络赛 最小费用最大流 ***
题意: 有 n+1 个城市编号 0..n,有 m 条无向边,在 0 城市有个警察总部,最多可以派出 k 个逮捕队伍,在1..n 每个城市有一个犯罪团伙, 每个逮捕队伍在每个城市可以选 ...
随机推荐
- Kendo UI
http://www.cnblogs.com/libingql/category/585455.html http://www.scala-china.net/discuz/forum.php?mod ...
- JSP页面格式化货币金额,千分位
<fmt:formatNumber value="${值}" pattern="currency"></fmt:formatNumber> ...
- Mathematics:X-factor Chains(POJ 3421)
X链条 题目大意,从1到N,1 = X0, X1, X2, …, Xm = X中间可以分成很多数,另Xi < Xi+1 Xi 可以整除Xi+1 ,求最大长度m和m长度的链有多少条 思路: 很简单 ...
- 魅族MX3\MX2 在MTP模式下恢复手机误删数据教程
昨天帮室友的魅族mx3升级系统,结果不小心把他手机里的照片删了.但是自从flyme升级到3后,以前的U盘模式就改成了MTP模式,这样再连接电脑后就没办法用电脑上的数据恢复软件恢复数据了,因为压根就检测 ...
- java转换json需要导入的jar包,org/apache/commons/lang/exception/NestableRuntimeException
缺少相应jar包都会有异常,根据异常找jar包导入...... 这里我说下lang包,因为这个包我找了好半天: 我用的是: commons-lang3-3.1.jar 出现异常: jav ...
- 20145213《Java程序设计》实验三敏捷开发与XP实践
20145213<Java程序设计>实验三敏捷开发与XP实践 实验要求 1.XP基础 2.XP核心实践 3.相关工具 实验内容 1.敏捷开发与XP 软件工程是把系统的.有序的.可量化的方法 ...
- selinux
root@lujie ~]# vim /etc/sysconfig/selinux # This file controls the state of SELinux on the system. # ...
- php图片防盗链的小测试
test.php <?php $txt = "http://hiphotos.baidu.com/stupidet/pic/item/4f1b8cfb4c33b7254e4aea69. ...
- python基础——使用__slots__
python基础——使用__slots__ 正常情况下,当我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性.先定义class: cla ...
- 假定CSomething是一个类,执行下面这些语句之后,内存里创建了____个CSomething对象。
CSomething a(); CSomething b(2); CSomething c[3]; CSomething &ra = b; CSomething d=b; CSomething ...