zoukankan      html  css  js  c++  java
  • Luogu P1518 两只塔姆沃斯牛 The Tamworth Two

        题解

      一道模拟题, 要注意每分钟可以向前移动或者转弯!!!

      转弯一定是顺时针!!!

      模拟题别读成搜索题!!!

    #include<cstdio>
    using namespace std;
    char dt[15][15];
    int main()
    {
        int i,j,k,fa,co,df=1,dc=1;
        for(i=1;i<=10;i++)
            for(j=1;j<=11;j++)
            {
                scanf("%c",&dt[i][j]);
                if(dt[i][j]=='F'){fa=i*100+j;dt[i][j]='.';}//fa为农夫位置 
                if(dt[i][j]=='C'){co=i*100+j;dt[i][j]='.';}//co为两头牛位置 
            }
        for(k=1;k<=100000;k++)//k为时间 
        {
            if(df==1&&dt[fa/100-1][fa%100]=='.')fa-=100;//df为农夫方向 
            else if(df==2&&dt[fa/100][fa%100+1]=='.')fa+=1;
            else if(df==3&&dt[fa/100+1][fa%100]=='.')fa+=100;
            else if(df==4&&dt[fa/100][fa%100-1]=='.')fa-=1;
            else df+=1;
            if(df>4)df%=4;
            
            if(dc==1&&dt[co/100-1][co%100]=='.')co-=100;//dc为两头牛方向 
            else if(dc==2&&dt[co/100][co%100+1]=='.')co+=1;
            else if(dc==3&&dt[co/100+1][co%100]=='.')co+=100;
            else if(dc==4&&dt[co/100][co%100-1]=='.')co-=1;
            else dc+=1;
            if(dc>4)dc%=4;
            
            if(fa==co)//位置一样输出 
            {
                printf("%d",k);
                return 0;
            }
        }
        printf("0");
        return 0;
    }   

    两只塔姆沃斯牛 The Tamworth Two

  • 相关阅读:
    web总结
    工作总结
    python积累
    学习地图
    position:absolute绝对定位解读
    利用C++ RAII技术自动回收堆内存
    C++封装常用对象和对头文件探索
    String.split()方法你可能不知道的一面
    动态内存分配(new)和释放(delete)
    C#实现的异步Socket服务器
  • 原文地址:https://www.cnblogs.com/wisdom-jie/p/13620477.html
Copyright © 2011-2022 走看看