管理员,求给此题#6,#14,两个点的数据

管理员,求给此题#6,#14,两个点的数据

2 条评论

  • @ 2018-01-23 09:28:28

    大神们,管理员们
    改一改本**蒟蒻**的代码吧
    ps:谢谢数据

    #include <cstdio>
    #include <cstdlib>
    #include <string>
    #include <cstring>
    #include <algorithm>
    #include <iostream>
    using namespace std;
    int n,m,te=0,de=0,t=0,lo=0,tx,ty,dx,dy;
    char a[250][250]={0},lu[300]={0};
    bool check(char next)
    {
        if(next=='N')
        {
            if(tx-1>0&&a[tx-1][ty]=='.')
                tx--;
            if(tx-dx>=ty-dy&&tx-dx>=dy-ty)
                return false;
            return true;
        }
        else if(next=='S')
        {
            if(tx+1<=n&&a[tx+1][ty]=='.')
                tx++;
            if(tx-dx<=ty-dy&&tx-dx<=dy-ty)
                return false;
            return true;
        }
        else if(next=='E')
        {
            if(ty+1<=m&&a[tx][ty+1]=='.')
                ty++;
            if(tx-dx>=ty-dy&&tx-dx<=dy-ty)
                return false;
            return true;
        }
        else if(next=='W')
        {
            if(ty-1>0&&a[tx][ty-1]=='.')
                ty--;
            if(tx-dx<=ty-dy&&tx-dx>=dy-ty)
                return false;
            return true;
        }
    }
    int main()
    {
        scanf("%d%d\n",&n,&m);
        for(int i=1;i<=n;i++)//读入 
        {
            for(int j=1;j<=m;j++)
            {
                scanf("%c",&a[i][j]);
                if(a[i][j]=='T')
                    te=1,tx=i,ty=j,a[i][j]='.';
                else if(a[i][j]=='D')
                    de=1,dx=i,dy=j;
            }
            getchar();
        }
        scanf("%s",lu);
        lo=strlen(lu);
        if(lo==1&&lu[0]>='0'&&lu[0]<='9')//防止路为空 
        {
            if(tx-dx>=ty-dy&&tx-dx>=dy-ty)//判断老师是否能一眼看见鸭子 
                printf("55555~~");
            else
                printf("%c",lu[0]);
            return 0;
        }
        scanf("%d",&t);
        if(n==0||m==0)//防地图为空 
        {
            printf("%d",t);
            return 0;
        }
        if(de==0||te==0)//老师或鸭子不在 
        {
            printf("%d",t);
            return 0;
        }
        int all=0;//可看漫画总量 
        for(int i=0;i<t;i++)
        {
            if(check(lu[i%lo]))//循环路线 
                all++;
        }
        if(all==0)
        {
            printf("55555~~");
            return 0;
        }
        printf("%d",all);
        return 0;
    }
    
    
  • @ 2018-01-23 06:22:58

    第6个数据,地图是空的(n=m=0)也就是说鸭子不在教室,所以答案就是总时间长度。

    第14个数据,班主任走的路径是空的,也就是说班主任一直没有移动。

  • 1

信息

ID
1365
难度
6
分类
模拟 点击显示
标签
(无)
递交数
301
已通过
72
通过率
24%
被复制
2
上传者