VanHa0101 2019-05-20 14:56
浏览 213

poj2488 样例过了为什么还是WA???有人帮忙看一下吗?

poj2488 样例过了为什么还是WA???

有人帮忙看一下吗?

#include <stdio.h>
#include <stdlib.h>
#define max 30
struct pos
{
    int x;
    int y;
    int flag;
}map[max][max],res[max];
int n,m,num,cnt=1;
int l=1;
int dx[9]={-2,-2,-1,-1,1,1,2,2};
int dy[9]={-1,1,-2,2,-2,2,-1,1};
void dfs(int x, int y)
{
    if(l==0)
    return;
    int i,nx,ny,flag=0;
    for(i=0; i<9; i++)
    {
        nx=x+dx[i];
        ny=y+dy[i];
        if(nx<=n && nx>=1 && ny<=m && ny>=1 && map[nx][ny].flag==1 )//&&(dy[i]==1||dy[i]==-2))//保证字典序 
         {
            flag=1;
            cnt++;
            map[nx][ny].flag=0;
            res[cnt].x=nx;
            res[cnt].y=ny;
            dfs(nx,ny);
            cnt--;
            map[nx][ny].flag=1;
         }
    }
    //if(flag==0)//无路可走
    //{
        if(cnt==n*m)
        {
            l=0;
            printf("Scenario #%d:\n",3-num);
            for(i=1; i<=n*m; i++)
            {
                printf("%c%d",'A'+res[i].y-1,res[i].x);
            }
            printf("\n");
            if(num!=0)
            printf("\n"); 
        }
        return;
    //}
}
int main()
{
    int i,j;
    scanf("%d",&num);
    while(num--)
    {
     scanf("%d %d",&n,&m);
     l=1;
     res[cnt].x=1,res[cnt].y=1;
     for(i=1; i<=n; i++)
     {
        for(j=1; j<=m; j++)
         {
            map[i][j].flag=1;
            //map[i][j].x=i;
         }
     }
     map[1][1].flag=0;
     dfs(1,1);
     if(l==1)//impossible
      {
        printf("Scenario #%d:\n",3-num);
        printf("impossible\n");
        if(num!=0)
         printf("\n");
      }
    }
    return 0;
}
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 delta降尺度计算的一些细节,有偿
    • ¥15 Arduino红外遥控代码有问题
    • ¥15 数值计算离散正交多项式
    • ¥30 数值计算均差系数编程
    • ¥15 redis-full-check比较 两个集群的数据出错
    • ¥15 Matlab编程问题
    • ¥15 训练的多模态特征融合模型准确度很低怎么办
    • ¥15 kylin启动报错log4j类冲突
    • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
    • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序