可以说是一道水题,本以为dfs一下就ok,但是仔细想想,是有规律的,因为题目说可以任意使用,所以,只要jumptype里面有偶数,就一定yes,为啥呢?因为以2为例,2是可以到达棋盘任何地方的,推广到其它偶数,他们都可以到达任何地方。另外,当(x+y)为偶数时,也一定yes
#include <vector>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <ctime>
using namespace std;
class MagicalGirlLevelTwoDivTwo {
public:
string isReachable(vector <int>, int, int);
bool dfs(int s,int t,int x,int y);
};
string MagicalGirlLevelTwoDivTwo::isReachable(vector <int> v, int x, int y) {
int i,j;
if(!x&&!y)return "YES";
bool even=0;
for(i=0;i<v.size();i++)
if(v[i]%2==0)even=1;
if(even)return "YES";
if((x+y)%2==0)return "YES";
return "NO";
}