【题解】CF1715A Crossmarket
题面传送门
解决思路
首先,我们让 Megan 先走,因为他可以留下传送门。可以得知,不管怎么走,他到达终点所耗费的能量一定是 \(n+m-2\) 。
然后,Stanley 走时就可以利用传送门。考虑怎样布置传送门可以使 Stanley 走的路最短。这时只要分情况讨论即可。若 \(m\ge n\),就会出现以下情况:
可以看出,Megan 最多可以帮 Stanley 跳过 \(m\) 的距离,也就是说 Stanley 最少需要花 \(n\) 的能量到达终点。
同样,若 \(n\ge m\),就是样例所给的情况。Megan 最多可以帮 Stanley 跳过 \(n\) 的距离,也就是说 Stanley 最少需要花 \(m\) 的能量到达终点。
总体想法还是比较简单的。但是需要特判一种情况。就是 \(n=1\) 并且 \(m=1\),两人都在终点,花费能量为 \(0\),而按照之前的算法会变成 \(1\)。
AC Code
#include<bits/stdc++.h>
using namespace std;
int n,m,ans,T;
void solve(){
scanf("%d%d",&n,&m);
if(n==1&&m==1) printf("0\n");
else printf("%d\n",(n-1)+(m-1)+min(n,m));
}
int main(){
scanf("%d",&T);
while(T--) solve();
return 0;
}