| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 465 人关注过本帖
标题:这题这样写为什么错了啊??
取消只看楼主 加入收藏
草狼
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:577
专家分:1040
注 册:2010-4-6
结帖率:94.44%
收藏
已结贴  问题点数:100 回复次数:1 
这题这样写为什么错了啊??
http://acm.hdu.
我的代码是这样的
#include<stdio.h>
int mp[10][10],flag[10][10],n,m,time[10][10],time1[10][10],min;
struct  zb
{
   int x;
   int y;
}beg,end;
int DFS(int x1,int y1)//为什么DFS这样写 不能吧所有的结点都扫到了啊,我错哪了啊  请帮我看看啊
{
    int _x[4]={0,1,0,-1};
    int _y[4]={1,0,-1,0};
    int x,y,i;
    if(mp[x1][y1]==3&&time[x1][y1]>0)
        return 1;
    if(time[x1][y1]<=0)
       return 0;
    if(mp[x1][y1]==4&&time>0)
        time[x1][y1]=6;
    if(mp[x1][y1]==4&&time[x1][y1]<=0)
        return 0;
    for(i=0;i<4;i++)
    {
        x=x1+_x[i];
        y=y1+_y[i];
        if(x>=0&&x<n&&y>=0&&y<m&&flag[x][y]==0&&mp[x][y]!=0)
        {
           flag[x][y]=1;
           time[x][y]=time[x1][y1]-1;
           time1[x][y]=time1[x1][y1]+1;
           if(DFS(x,y))
           {
              if(min>time1[x][y])
                  min=time1[x][y];
           }
           else
               flag[x][y]=0;
        }
    }
    return 0;
}

int main()
{
    int i,j,t;
    while(scanf("%d",&t)!=EOF)
    {
        while(t--)
        {
            scanf("%d%d",&n,&m);
            for(i=0;i<n;i++)
                for(j=0;j<m;j++)
                {
                    flag[i][j]=0;
                    scanf("%d",&mp[i][j]);
                    if(mp[i][j]==2)
                    {
                        beg.x=i;
                        beg.y=j;
                    }
                    if(mp[i][j]==3)
                    {
                        end.x=i;
                        end.y=j;
                    }
                    time1[i][j]=0;
                }
                time[beg.x][beg.y]=6;
                min=99999999;
                DFS(beg.x,beg.y);
                if(min!=99999999)
                {
                    printf("%d\n",min);
                }
                else
                    printf("-1\n");
        }
    }
    return 0;
}


还有像这种题的  求最少时间什么的真正的应该怎么写啊
这题(http://acm.hdu.)也是这类型的,
我的不会写,急死了,求大家帮帮忙啊
2010-08-02 16:36
草狼
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:577
专家分:1040
注 册:2010-4-6
收藏
得分:0 
搞懂这类题目应该怎么做了,应该用BFS而不是DFS来做的  哈哈
2010-08-03 11:17
快速回复:这题这样写为什么错了啊??
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.038176 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved