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语句就能结束。真当你急忙码上去时,你发现有几个是无用的,啊哈哈哈。多有趣的一道题。
完结撒花!!!
众生,与我如浮云