zoj-ZOJ 3890 Wumpus帮忙看下哪里错大牛们

问题描述

ZOJ 3890 Wumpus帮忙看下哪里错大牛们

#include
#include
#include
#include
using namespace std;

struct node
{
int x, y, dir, step, g;
friend bool operator < (node a, node b)
{
return a.step<b.step;
}
};
int dd[][2]={0, 0, -1, 0, 0, 1, 1, 0, 0, -1};//左上右下
int map[22][22];
int vis[22][22][2];
int xx, yy, n, tt;

int inmap(int x, int y)
{
if(x>=0 && x=0 && y<n)
return 1;
return 0;
}

int bfs()
{
int i;
memset(vis, 0, sizeof(vis));
priority_queue q;
node now;
now.x=0;
now.y=0;
now.dir=3;
now.step=0;
now.g=0;
q.push(now);
vis[now.x][now.y][0]=1;
while (!q.empty())
{
now=q.top();
q.pop();
if(now.x==0 && now.y==0 && now.g==1)
{
return now.step-10;
}
for(i=1;i<=4;i++)
{
node temp;
temp.step=now.step;
temp.g=now.g;
temp.x=now.x+dd[i][0];
temp.y=now.y+dd[i][1];
if(inmap(temp.x, temp.y) && !map[temp.x][temp.y] && !vis[temp.x][temp.y][temp.g])
{
if(i!=now.dir)
{
if(i%2==1)
{
if(now.dir%2==1)
temp.step-=20;
else
temp.step-=10;
}
else
{
if(now.dir%2==1)
temp.step-=10;
else
temp.step-=20;
}
}
if(temp.x==xx && temp.y==yy && temp.g==0)
{
temp.g=1;
temp.step+=990;
}
vis[temp.x][temp.y][temp.g]=1;
temp.step-=10;
temp.dir=i;
q.push(temp);
}
}

}
return -1;
}
int main()
{
int k;
int a, x, y;
scanf("%d", &k);
while (k--)
{
scanf("%d", &n);
memset(map, 0, sizeof(map));
while (scanf("%d%d%d", &a, &x, &y))
{
if(a==-1 && x==-1 && y==-1)
break;
if(a==1 || a==2)
map[x][y]=1;
else if(a==3)
{
xx=x;
yy=y;
}
}
if(map[0][0]==1)
{
printf("-1n");
continue;
}
int flag=bfs();
if(flag==-1)
{
printf("-1n");
continue;
}
int ans=flag;
if(ans<=0)
ans=-1;
printf("%dn", ans);
}
return 0;
}


解决方案

int dd[][2]={{0, 0}, {-1, 0}, {0, 1}, {1, 0}, {0, -1}};//左上右下
少了括号

时间: 2024-09-28 22:49:44

zoj-ZOJ 3890 Wumpus帮忙看下哪里错大牛们的相关文章

帮忙看下报错是什么问题

问题描述 publicclassuser{privatestring_name;privatestring_name1;publicstringname{set{_name=value;}get{return_name;}}publicstringname1{set{_name1=value;}get{return_name1;}}}usera=newuser(){name="rr",name1="r"};这边报错编译错误说明:在编译向该请求提供服务所需资源的过程中

json校验格式报错,帮忙看下。

问题描述 json校验格式报错,帮忙看下. { "deplist": [ { bumen: 95, bound_id: "餐饮部", pad_sbound: "甜品类", pad_tab: 1 }, { bumen: 96, bound_id: "餐饮部", pad_sbound: "饮料类", pad_tab: 2 } ] } err info: bumen: 95, ------------------

c#3-求好心人帮忙看下事件不触发

问题描述 求好心人帮忙看下事件不触发 C.MOUSEDOWN事件怎么都不触发求大神帮忙看下谢谢啊看看谢谢搞了几天--看下看看谢谢搞了几天--看下 解决方案 看下事件有没有挂钩到事件处理函数 解决方案二: 代码都不帖,怎么帮你看? 解决方案三: 你先把代码贴出来啊 ,没有代码 怎么看 解决方案四: 求帮忙----------------------

软件开发-JAVA在下载的时候报错,各位大神路过顺便帮忙看下吧

问题描述 JAVA在下载的时候报错,各位大神路过顺便帮忙看下吧 ClientAbortException: java.io.IOException at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:369) at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:368) at org.apache.catalina.co

jsp-求教:哪位大神帮忙看下代码,本人小白,实在不知道哪里有问题!!

问题描述 求教:哪位大神帮忙看下代码,本人小白,实在不知道哪里有问题!! 代码如下,登陆页面,把java逻辑放到了后台页面上,运行的时候没有报错,但是不跳转.测试账号密码正确不跳转因为没写,但是测试账号密码错误的情况下也不跳转. <%@ page language=""java"" import=""java.util.*java.sql.*info.DataBase"" pageEncoding=""

collection-大神请进,帮忙看下这个Collection的排序。

问题描述 大神请进,帮忙看下这个Collection的排序. package com.jeffge; import java.util.*; public class StringSorting { public static void main(String[] args) { ArrayList persons = new ArrayList(); persons.add(new Person("Sam", 25)); persons.add(new Person("Sa

access-sql语句错误,帮忙看下问题在哪

问题描述 sql语句错误,帮忙看下问题在哪 update Chongzhi set JinE=(select JinE from Chongzhi where Id=12) where ID=1;access中 解决方案 http://www.jb51.net/article/53835.htm 解决方案二: (select JinE from Chongzhi where Id=12)的值单独发sql查出来,再作为参数传到update语句中 解决方案三: sql语句的错误 解决方案四: 我一般

c++11-请帮忙看下async_accept的这种调用方法,没有使用Bind,看不懂...

问题描述 请帮忙看下async_accept的这种调用方法,没有使用Bind,看不懂... void AsyncAcceptManaged(ManagerAcceptHandler mgrHandler) { _acceptor.async_accept(_socket, [this, mgrHandler](boost::system::error_code error) { if (!error) { try { _socket.non_blocking(true); mgrHandler(

oracle 错误 日志-oracle平时运行好好的,突然就进不去了,帮忙看下日志是什么原因

问题描述 oracle平时运行好好的,突然就进不去了,帮忙看下日志是什么原因 alter.log里面的日志是这样:Wed Dec 31 12:17:13 2014ksvcreate: Process(m000) creation failedWed Dec 31 12:20:34 2014ksvcreate: Process(m000) creation failedWed Dec 31 12:22:46 2014kkjcre1p: unable to spawn jobq slave proc