2297. 【noip普及组2(放到第一题)】棋盘 (好像重名了)
(File IO): input:chess.in output:chess.out
题目描述
输入
第一行一个正整数T,表示询问数量。
接下来T行,每行四个正整数x,y,u,v,表示一组询问。
接下来T行,每行四个正整数x,y,u,v,表示一组询问。
输出
T行,每行一个”Yes”或”No”(不含引号),表示你的回答。
样例输入
5 1 1 2 2 2 3 2 2 1 2 4 3 3 4 2 2 1 1 1 1
样例输出
Yes No Yes No Yes
数据范围限制
对于30%的数据,0<T<=5,0<x,y,u,v<=4
对于50%的数据,0<T<=10,0<x,y,u,v<=500
对于100%的数据,0<T<=100,0<x,y,u,v<=10^8
对于50%的数据,0<T<=10,0<x,y,u,v<=500
对于100%的数据,0<T<=100,0<x,y,u,v<=10^8
先上代码:
#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; }