水题,模拟题,贴代码,作纪念。

View Code
  1 /*{
  2 ID:jzy3209981
  3 PROG:ttwo
  4 LANG:C++
  5 }*/
  6 #include<stdio.h>
  7 #include<iostream>
  8 #include<string.h>
  9 #include<math.h>
 10 using namespace std;
 11 
 12 int state[10][10][4][10][10][4];
 13 char grid[10][10];
 14 int cow[3];
 15 int farmer[3];
 16 
 17 int main()
 18 {
 19     freopen ("ttwo.in","r",stdin);
 20     freopen ("ttwo.out","w",stdout);
 21     int i,minute=0,j;
 22     for(i=0;i<10;i++)
 23     {
 24         for(j=0;j<10;j++)
 25         {
 26             grid[i][j]=getchar();
 27             if(grid[i][j]=='C')
 28             {
 29                 cow[0]=i;
 30                 cow[1]=j;
 31                 cow[2]=0;
 32             }
 33             else if(grid[i][j]=='F')
 34             {
 35                 farmer[0]=i;
 36                 farmer[1]=j;
 37                 farmer[2]=0;
 38             }
 39         }
 40         getchar();
 41     }
 42     do{    
 43         state[farmer[0]][farmer[1]][farmer[2]][cow[0]][cow[1]][cow[2]]=1;
 44         switch(farmer[2])
 45         {
 46         case 0:
 47             {
 48                 if((farmer[0]-1)<0||grid[farmer[0]-1][farmer[1]]=='*')
 49                     farmer[2]++;
 50                 else 
 51                     farmer[0]--;
 52                 break;
 53             }
 54         case 1:
 55             {
 56                 if((farmer[1]+1)>=10||grid[farmer[0]][farmer[1]+1]=='*')
 57                     farmer[2]++;
 58                 else 
 59                     farmer[1]++;
 60                 break;
 61             }
 62         case 2:
 63             {
 64                 if((farmer[0]+1)>=10||grid[farmer[0]+1][farmer[1]]=='*')
 65                     farmer[2]++;
 66                 else 
 67                     farmer[0]++;
 68                 break;
 69             }
 70         case 3:
 71             {
 72                 if((farmer[1]-1)<0||grid[farmer[0]][farmer[1]-1]=='*')
 73                     farmer[2]=0;
 74                 else 
 75                     farmer[1]--;
 76                 break;
 77             }
 78         }
 79         switch(cow[2])
 80         {
 81         case 0:
 82             {
 83                 if((cow[0]-1)<0||grid[cow[0]-1][cow[1]]=='*')
 84                     cow[2]++;
 85                 else 
 86                     cow[0]--;
 87                 break;
 88             }
 89         case 1:
 90             {
 91                 if((cow[1]+1)>=10||grid[cow[0]][cow[1]+1]=='*')
 92                     cow[2]++;
 93                 else 
 94                     cow[1]++;
 95                 break;
 96             }
 97         case 2:
 98             {
 99                 if((cow[0]+1)>=10||grid[cow[0]+1][cow[1]]=='*')
100                     cow[2]++;
101                 else 
102                     cow[0]++;
103                 break;
104             }
105         case 3:
106             {
107                 if((cow[1]-1)<0||grid[cow[0]][cow[1]-1]=='*')
108                     cow[2]=0;
109                 else 
110                     cow[1]--;
111                 break;
112             }
113         }    
114         minute++;
115     }while(state[farmer[0]][farmer[1]][farmer[2]][cow[0]][cow[1]][cow[2]]==0&&(cow[0]!=farmer[0]||cow[1]!=farmer[1]));
116     if(state[farmer[0]][farmer[1]][farmer[2]][cow[0]][cow[1]][cow[2]]==1)
117         printf("0\n");
118     else
119         printf("%d\n",minute);
120     return 0;
121 }
122 
123 
124     
125         

 

posted on 2012-07-28 17:31  醉春雨  阅读(132)  评论(0)    收藏  举报