1211:判断元素是否存在
我为什么什么都想用广搜呢??!!!。
思路:
对每一个K,查看2*k+1或者3*k+1是不是等于x。如果大于x,那就只能返回false了。只要有等于x的就行了,所以就是或一下。
代码:
#include<bits/stdc++.h>
using namespace std;
bool getAns(int k,int x){
if(k==x) return true;
else if(k>x) return false;
return getAns(2*k+1,x) || getAns(3*k+1,x);
}
int main(){
int k,x;
char ch;
cin>>k>>ch>>x;
if(getAns(k,x)){
cout<<"YES\n";
}else{
cout<<"NO\n";
}
return 0;
}
1219:马走日(经典搜索)
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#define N 10
using namespace std;
int n,m;
int x0,y0;
char maps[N][N];
int vis[N][N];
int dir[8][2]={
{-2,1},{-2,-1},{-1,2},{-1,-2},{2,1},{2,-1},{1,2},{1,-2}};