10 条题解

  • 0
    @ 2024-7-7 20:43:23

    简单的无限网格问题 题解

    题目链接

    题目分析

    这是一道找规律的题目。

    考虑从他应该怎么走入手,进行分类讨论:

    • 当行数之差与列数之差恰好一奇一偶时,可以用 22 步完成操作,用第一步抵消差为奇数,用第二步抵消差为偶数即可;

    • 当行数之差与列数之差奇偶性相同时,我们必须要在以起点和终点为对角线的一个矩形的一条边上花费两次操作,所以需要 33 次操作即可完成。

    参考代码

    #include<bits/stdc++.h>
    #define c continue;
    using namespace std;
    int T;
    int n, m;
    int main() {
    	ios::sync_with_stdio(false);
    	cin.tie(0), cout.tie(0);
    	cin >> T;
    	while (T--) {
    		cin >> n >> m;
    		if (((n - 1) % 2 == 1 && (m - 1) % 2 == 0) || ((m - 1) % 2 == 1 && (n - 1) % 2 == 0)){
    			cout << "2\n";
    			c;
    		}
    		cout << "3\n";
    	}
    	return 0;
    }
    

    信息

    ID
    7
    时间
    1000ms
    内存
    512MiB
    难度
    2
    标签
    递交数
    346
    已通过
    242
    上传者