【题解】CF1519B

传送门

题意

一个 \(n\times m\) 的矩阵,从 \((1,1)\) 走到 \((n,m)\)。

在 \((x,y)\) 时:

  1. 走向 \((x,y+1)\),获得 \(x\) 分;
  2. 走向 \((x+1,y)\),获得 \(y\) 分。

问是否可以在走到终点时恰好获得 \(k\) 分。

思路

因为是网格图且只向下或右走,故所有的行和列都会恰好走一遍,则:下 \(+\) 右 \(=nm-1\)

所以判断一下 \(nm+1\) 是否等于 \(k\) 即可。

时间复杂度为 \(O(1)\times t=O(t)\)。

代码

#include <iostream>
#include <cstdio>
using namespace std;

int t, n, m, k;

int main()
{
	scanf("%d", &t);
	while (t--)
	{
		scanf("%d%d%d", &n, &m, &k);
		if (n * m - 1 == k)
		{
			puts("YES");
		}
		else
		{
			puts("NO");
		}
	}
	return 0;
}
上一篇:PolarDB-X 1.0-SQL 手册-函数-Grouping Sets、Rollup和Cube扩展


下一篇:2021-10-20