题目地址:传送门
题目贴上:
题意,给你n种 2x2的矩阵,并且每种矩阵可以无限次使用,问你是否能组成mxm的矩阵(新矩阵必须是严格按照主对角线对称矩阵)
思路:首先给你的2x2矩阵,很明显我们不能拼成奇数长宽的矩阵,所以如果m为奇数,直接输出no,最后考虑m为偶数的情况,很明显,如果给你n个2x2矩阵当中没有一个矩阵是主对角线对称矩阵,那肯定无法组成更大的mxm型的对称矩阵
代码:
#include<bits/stdc++.h>
using namespace std;
struct Point
{
int x1,y1,x2,y2;
bool isOk = false;
};
int main(void)
{
int t,n,m;
cin>>t;
while(t--)
{
cin>>n>>m;
Point p[102];
bool isCan = false;
for(int i=1;i<=n;++i)
{
cin>>p[i].x1>>p[i].y1>>p[i].y2>>p[i].x2;
p[i].isOk=(p[i].y1==p[i].y2);
if(p[i].isOk) isCan = true;
}
if( m&1 || !isCan)cout<<"NO"<<endl;
else cout<<"YES"<<endl;
}
}