【题解】CF1715A Crossmarket
阅读原文时间:2023年07月09日阅读:1

解决思路

首先,我们让 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;
}

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章