OUC_Turing_Neumann 2016-03-12 10:40
浏览 679

HDU 1548的问题:A Strange Lift

HDU 1548“A Strange Lift”(电梯问题)。本人刚学bfs和dfs还不会用STL库,就自己写了一个队列。自己测试了很多组数据觉得没有错误,但是提交上去就是Wrong Answer,检查了好多遍也检查不出问题。各位大神帮忙看一下我的代码哪里有错误或者漏洞,谢谢!

#include<iostream>
#include<cstdio>
#include<cstring>

using namespace std;

int N,A,B,i;
int que[10010];
int vis[10010];
int step[10010];
int K[10010];

int main()
{
    while(scanf("%d",&N)!=EOF&&N!=0)
    {
        int first=0,stop=0;
        scanf("%d %d",&A,&B);
        for(i=1; i<N+1; i++)
            scanf("%d",&K[i]);
        memset(vis,0,sizeof(vis));
        memset(step,0,sizeof(step));
        que[stop++]=A;
        while(first<stop)
        {
            int temp=que[first++];
            if(temp==B)
                 break;
            if(temp+K[temp]<=N&&temp+K[temp]>0&&vis[temp+K[temp]]==0)
            {
                vis[temp+K[temp]]=1;
                que[stop++]=temp+K[temp];
                step[temp+K[temp]]=step[temp]+1;
            }
            if(temp-K[temp]>0&&temp-K[temp]<=N&&vis[temp-K[temp]]==0)
            {
                vis[temp-K[temp]]=1;
                que[stop++]=temp-K[temp];
                step[temp-K[temp]]=step[temp]+1;
            }
        }
        if(step[B]==0)
            if(A!=B)
            cout<<"-1"<<endl;
        else
            cout<<step[B]<<endl;
    }
    return 0;
}


  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 有赏,i卡绘世画不出
    • ¥15 如何用stata画出文献中常见的安慰剂检验图
    • ¥15 c语言链表结构体数据插入
    • ¥40 使用MATLAB解答线性代数问题
    • ¥15 COCOS的问题COCOS的问题
    • ¥15 FPGA-SRIO初始化失败
    • ¥15 MapReduce实现倒排索引失败
    • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
    • ¥15 找一位技术过硬的游戏pj程序员
    • ¥15 matlab生成电测深三层曲线模型代码