牛客寒假算法基础集训营4 B. Applese走方格(模拟+搜索)

 

题目链接:https://ac.nowcoder.com/acm/contest/330/B

       数据范围只有10*10,所以可以用搜索写,模拟也可以就是感觉有点麻烦,首先我们要知道对于n和m都是奇数的话是走不通的(还有就是1*2是可以走的,1*4是不能走的这种情况),然后我们在纸上画一下,就很容易发现它走的规律,先判断奇偶性,优先先往偶数边走(具体就不细讲了,自己画画图就好了),下面把两种方法的code都贴上。


AC代码(模拟):

#include
using namespace std;
int n,m;
 
int main()
{
    scanf("%d %d",&n,&m);
    if(n % 2 == 0){
        for(int i=0;i= 3) puts("-1");
    else if(m == 1 && n >= 3) puts("-1");
    else if(m % 2 == 0){
        for(int i=0;i

 

AC代码(dfs):

#include 
#define maxn 15
using namespace std;
bool vis[maxn][maxn];
int dir[4][2] = {1,0,0,1,-1,0,0,-1};
string s = "DRUL";
string str;
bool flag;
int n,m;

bool Check(int x,int y){
  if(x >= 0 && y >= 0 && x < n && y < m && vis[x][y] == false)return true;
  return false;
}

void dfs(int x,int y,string a){
  cout<

 

你可能感兴趣的:(ACM_搜索,补题补题补题)