2297. 【noip普及组2(放到第一题)】棋盘 (好像重名了)
(File IO): input:chess.in output:chess.out
先上代码:
#include<iostream>
#include<cmath>
#include<cstdio>
using namespace std;
int n,x,y,u,v;
bool dfs(int ,int ,int ,int );
int main()
{
//freopen("chess.in","r",stdin);
//freopen("chess.out","w",stdout);
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>x>>y>>u>>v;
if(dfs(x,y,u,v))
cout<<"Yes"<<endl;
else
cout<<"No"<<endl;
}
return 0;
}
bool dfs(int a,int b,int c,int d)
{
if(a==b&&c==d)
return true;
if(a==c&&abs(b-d)%2==0)
return true;
if(b==d&&abs(a-c)%2==0)
return true;
if((abs(a-c)%2)==(abs(b-d)%2))
return true;
return false;
}
这道题很像深搜对不对,我已开始也是这么想的,结果你迎来的是一个10的八次方的数据。唉!结果你又画了章图,随便标了标,发现惊天大秘密,不用深搜。几个IF语句就能结束。真当你急忙码上去时,你发现有几个是无用的,啊哈哈哈。多有趣的一道题。
完结撒花!!!