Codeforces Round #674 (Div. 3) B. Symmetric Matrix

B. Symmetric Matrix
Description

Masha has n types of tiles of size 2×2. Each cell of the tile contains one integer. Masha has an infinite number of tiles of each type.

Masha decides to construct the square of size m×m consisting of the given tiles. This square also has to be a symmetric with respect to the main diagonal matrix, and each cell of this square has to be covered with exactly one tile cell, and also sides of tiles should be parallel to the sides of the square. All placed tiles cannot intersect with each other. Also, each tile should lie inside the square. See the picture in Notes section for better understanding.

Symmetric with respect to the main diagonal matrix is such a square s that for each pair (i,j) the condition s[i][j]=s[j][i] holds. I.e. it is true that the element written in the i-row and j-th column equals to the element written in the j-th row and i-th column.

Your task is to determine if Masha can construct a square of size m×m which is a symmetric matrix and consists of tiles she has. Masha can use any number of tiles of each type she has to construct the square. Note that she can not rotate tiles, she can only place them in the orientation they have in the input.

You have to answer t independent test cases.

Input

The first line of the input contains one integer t (1≤t≤100) — the number of test cases. Then t test cases follow.

The first line of the test case contains two integers n and m (1≤n≤100, 1≤m≤100) — the number of types of tiles and the size of the square Masha wants to construct.

The next 2n lines of the test case contain descriptions of tiles types. Types of tiles are written one after another, each type is written on two lines.

The first line of the description contains two positive (greater than zero) integers not exceeding 100 — the number written in the top left corner of the tile and the number written in the top right corner of the tile of the current type. The second line of the description contains two positive (greater than zero) integers not exceeding 100 — the number written in the bottom left corner of the tile and the number written in the bottom right corner of the tile of the current type.

It is forbidden to rotate tiles, it is only allowed to place them in the orientation they have in the input.

Output

For each test case print the answer: “YES” (without quotes) if Masha can construct the square of size m×m which is a symmetric matrix. Otherwise, print “NO” (withtout quotes).

Example
input
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
output
YES
NO
YES
NO
YES
YES
Note

The first test case of the input has three types of tiles, they are shown on the picture below.
在这里插入图片描述

Masha can construct, for example, the following square of size 4×4 which is a symmetric matrix:

在这里插入图片描述
题意: 给定t组测试数据,每组测试数据第一行输入n,m。n代表有n中类型的瓷砖,m代表将要拼成 m × m m\times m m×m的大方形,接下来的2n行输入这n种瓷砖的描述。求利用给定的这n种瓷砖拼成一个 m × m m\times m m×m的对称大瓷砖。

题解: 只要输入种存在一种对称的瓷砖就可以拼成目标瓷砖。

c++ AC 代码

#include<bits/stdc++.h>
using namespace std;

int main()
{
	int t;
	scanf("%d",&t);
	while(t--)
	{
		int n,m;
		scanf("%d%d",&n,&m);
		int flag = 0;
		int x1,x2,y1,y2;
		for(int i=0;i<n;i++)
		{
			scanf("%d%d%d%d",&x1,&x2,&y1,&y2);
			if(x2 == y1)
				flag = 1;
		}
		if((m&1) || !flag)
			puts("NO");
		else
			puts("YES");
	}
	//system("pause");
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值