B. The Cake Is a Lie

题意:

有一个n*m的格路,要求从(1,1)点走到(n,m)点,每一步有相应花费:

  • 向右移动到(x,y+1)— 花费 x 元;
  • 向下移动到(x+1,y) — 花费y 元.

查询输入是否符合结果。

题解:

我是菜鸡,所以选用的方法是找规律,也就是通过计算得出,无论走那条路,走到终点时,答案都是一样的,所以直接选用外围路径进行计算。

得出:花费=n*m-1。

也就是说,如果题中所给不等于这个花费,他就是错误的!

int main()
{
    int t;
    cin >> t;
    while (t--)
    {
        int n, m,k;
        cin >> n >> m>>k;
        if (n == 1 && m == 1 && k == 0)
            cout << "YES" << endl;
        else if (n * m - 1 == k)
            cout << "YES" << endl;
        else
            cout << "NO" << endl;
    }
    return 0;
}
原文地址:https://www.cnblogs.com/Uiney117/p/14729800.html