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 每个城市有一个犯罪团伙, 每个逮捕队伍在每个城市可以选 ...
随机推荐
- SX学SX内容 笔记?
某帖子笔记1 主要还是从三体吧某精品贴里看来的... 集合论 集合就是一堆东西...满足 1) 集合中的元素互异(即每种只有一个) 2) 集合中的元素无序(不是一个数组,集合中的元素没有显然的排序法则 ...
- 转帖:用五分钟重温委托,匿名方法,Lambda,泛型委托,表达式树
用五分钟重温委托,匿名方法,Lambda,泛型委托,表达式树 这些对老一代的程序员都是老生常谈的东西,没什么新意,对新生代的程序员却充满着魅力.曾经新生代,好多都经过漫长的学习,理解,实践才能掌握委托 ...
- OPCServer Modbus使用和配置
一,安装KEPware.Enhanced.OPC.DDE.KEPServer.(PLC数据传送给KEPServer,开发的程序用OPCServer读KEPServer) 设置ip地址后面是指的plc站 ...
- Sql Server事务简单用法
var conStr = "server=localhost;database=Data;user=sa;pwd=123456"; using (var connection = ...
- Java中hashCode()方法以及HashMap()中hash()方法
Java的Object类中有一个hashCode()方法: public final native Class<?> getClass(); public native int hashC ...
- ABAP 数值类型转换
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' EXPORTING input = wa_zz-werks IMPOR ...
- 自定义tld标签,页面使用
背景需求: 系统本身的session不能在页面使用 如下: controller: @RequestMapping(method=RequestMethod.GET) public String ge ...
- IOS - UITableView分批显示数据 实现点击加载更多
Phone屏幕尺寸是有限的,如果需要显示的数据很多,可以先数据放到一个table中,先显示10条,table底部有一察看更多选项,点击察看更多查看解析的剩余数据.基本上就是数据源里先只放10条, 点击 ...
- Jquery网站下雪花的效果
代码如下: <script type="text/javascript" src="jquery.min.js"></script> & ...
- centOS目录结构
rpm包到 /usr/bin/dirName 二进制包(需要解压 -> 生成配置文件 -> make(编译) -> 安装)放到 /usr/local/src/** mongodb ...