CF1519B The Cake Is a Lie

传送门

题目大意

T T T 组询问。每组询问个给出 n , m , k n,m,k n,m,k。表示在一个 n × m n\times m n×m 的网格图中,可以向下或向右走,起初在 ( 1 , 1 ) (1,1) (1,1),并且到达 ( n , m ) (n,m) (n,m),且花费和为 k k k。问是否有这样的方案。

走一步的花费是:

  1. 如果从 ( x , y ) (x,y) (x,y) 走到 ( x + 1 , y ) (x+1,y) (x+1,y),则花费 y y y
  2. 如果从 ( x , y ) (x,y) (x,y) 走到 ( x , y + 1 ) (x,y+1) (x,y+1),则花费 x x x

Solution

先给出结论:对于每个 n , m n,m n,m,其花费是固定的。

证明:

考虑从 ( x , y ) (x,y) (x,y) 走到 ( x + 1 , y + 1 ) (x+1,y+1) (x+1,y+1) 的花费,如果先到 ( x + 1 , y ) (x+1,y) (x+1,y),则花费是 y + x + 1 y+x+1 y+x+1;如果先到 ( x , y + 1 ) (x,y+1) (x,y+1),则花费是 x + y + 1 x+y+1 x+y+1。所以在图中可以直观地看到,一个下凹或者上凸的形状是可以互换的,由此可以推得,每一条路径是可以相互转化的。

所以每一条路径的花费固定为 n × m − 1 n\times m-1 n×m1

Code

#include<bits/stdc++.h>
using namespace std;
#define ll long long
int main()
{
	int T,n,m,k;
	for(scanf("%d",&T);T--;){
		scanf("%d%d%d",&n,&m,&k);
		if(m-1+(n-1)*m!=k)
			puts("NO");
		else puts("YES");
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值