CF1715A Crossmarket 题解
思路
根据题意以及下面给的样例解释,我们不难看出最优解一定是下面两种情况的一种:


即一个人直接抵达目标点的距离加上另一个人走行和列,即 \(n\) 和 \(m\) 中较小的一个,加上一次传送的能量,即 \(n-1+m-1+\min{(n,m)}-1+1\),化简后为 \(n+m-2+\min{(n,m)}\)。注意当 \(n=1\) 且 \(m=1\) 的时候要进行特判,这时答案为 \(0\)。
代码
#include <bits/stdc++.h>
using namespace std;
int t, n, m;
int main() {
	scanf("%d", &t);
	while (t--) {
		scanf("%d%d", &n, &m);
		if (n == 1 && m == 1) {
			puts("0");
			continue;
		}
		if (n > m) {
			swap(n, m);
		}
		int ans = n - 1 + m - 1;
		ans += n;
		printf("%d\n", ans);
	}
	return 0;
}

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号