这题我是用蒙的方法来弄出最后的不能碰到的条件的(用1000试了下account跳出条件),结果竟然还过了,不过网上有精准的求出这个碰不到的条件,farm的状态为10*10*4 = 400,cow的状态也一样,所以应为160000,不过要AC这题我用的1000也行。。
/* ID: yingzho1 LANG: C++ TASK: ttwo */ #include <iostream> #include <fstream> #include <string> #include <map> #include <vector> #include <set> #include <algorithm> #include <stdio.h> #include <queue> #include <cstring> #include <cmath> using namespace std; ifstream fin("ttwo.in"); ofstream fout("ttwo.out"); ][]; ], farm[]; ][] = {{-, }, {, }, {, }, {, -}}; bool noobstacle(int x, int y) { || x >= || y < || y >= ) return false; if (board[x][y] == '*') return false; return true; } int main() { ; i < ; i++) { ; j < ; j++) { fin >> board[i][j]; if (board[i][j] == 'C') { board[i][j] = '.'; cow[] = i, cow[] = j; } if (board[i][j] == 'F') { board[i][j] = '.'; farm[] = i, farm[] = j; } } } ; int cowdir, farmdir; cowdir = farmdir = ; ] != farm[] || cow[] != farm[]) { account++; ]+dir[farmdir][], farm[]+dir[farmdir][])) { farm[] += dir[farmdir][]; farm[] += dir[farmdir][]; } ) % ; ]+dir[cowdir][], cow[]+dir[cowdir][])) { cow[] += dir[cowdir][]; cow[] += dir[cowdir][]; } ) % ; //cout << account << endl; ) { fout << << endl; ; } } fout << account << endl; ; }