NC215148. 小西和拼图
描述
输入描述
第一行输入一个整数表示测试用例组数,接下来有组测试用例。对于每组测试用例:第一行输入两个整数和分别表示有种小拼图和最后的尺寸。接下来行表示块小拼图的数字分布,每一块由两行组成,第一行是左上角、右上角;第二行是左下角、右下角包括在内,所有数字的范围都在
输出描述
对于每组测试用例输出一行一个字符串。如果这组测试用例小西能拼出来就输出YES,否则输出NO
示例1
输入:
6 3 4 1 2 5 6 5 7 7 4 8 9 9 8 2 5 1 1 1 1 2 2 2 2 1 100 10 10 10 10 1 2 4 5 8 4 2 2 1 1 1 1 1 2 3 4 1 2 1 1 1 1
输出:
YES NO YES NO YES YES
说明:
C++ 解法, 执行用时: 6ms, 内存消耗: 512K, 提交时间: 2021-12-09 15:30:28
#include <iostream> #include <stdio.h> using namespace std; int main(){ int t,n,m; int a,b,c,d; scanf("%d",&t); while(t--){ scanf("%d%d",&n,&m); int f=0; for(int i=0;i<n;i++){ scanf("%d%d%d%d",&a,&b,&c,&d); if(b==c) f=1; } if((m&1)==0&&f==1) cout<<"YES"<<endl; else cout<<"NO"<<endl; } return 0; }
C(clang11) 解法, 执行用时: 7ms, 内存消耗: 376K, 提交时间: 2020-12-21 21:20:45
#include<stdio.h> int main() { int t; scanf("%d",&t); while(t--) { int n,m,a,b,c,d,count=0; scanf("%d%d",&n,&m); for(int i=0;i<n;i++) { scanf("%d%d%d%d",&a,&b,&c,&d); if(b==c) //有一组对角线数据相同即可 count=1; } if(m%2==0&&count!=0) printf("YES\n"); else printf("NO\n");//若m为奇数就不可能组成 } return 0; }