水题,模拟题,贴代码,作纪念。
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

浙公网安备 33010602011771号