CF2257B 题解

CF2257B 题解

题意简述

为什么大毛这么喜欢海狸

Bea 和 Ver 在玩游戏,他们会以各自的第一座山峰为起点,每次将对方的落脚点高度减 1,如果当前某位巨人的落脚点低于下一座山峰,就会选择去往下一座山峰。

当一方没有落脚点的时候,游戏结束,这一方失败。

Bea 先行。

梳理思路

当当前山峰低于下一座山峰时去往下一座山峰,即当前山峰最多维持 \(h_i-h_{i+1}+1\) 轮,总共就是

\[\sum_{i=1}^{n-1}(h_i-h_{i+1}+1) + h_n \]

分别计算两位巨人的最多轮数,注意相同时因为 Bea 先手所以 Bea 胜利。

Code

#include <bits/stdc++.h>
using namespace std;
using ll = long long; // 十年 OI 一场空
const int N=107;
ll a[N],b[N],n,m;
void solve()
{
    ll s=0;
    cin>>n>>m;
    for(int i=1;i<=n;i++)
        cin>>a[i];
    for(int i=1;i<=m;i++)
        cin>>b[i];
    for(int i=1;i<n;i++)
        s+=a[i]-a[i+1]+1; // 求和公式
    s+=a[n];
    for(int i=1;i<m;i++)
        s-=b[i]-b[i+1]+1; // 求和公式
    s-=b[m];
    cout<<(s>=0?"1\n":"2\n"); // 判断答案
}
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);

    int T;
    cin>>T;
    while(T--)
        solve();

    return 0;
}

Thanks you for reading.

posted @ 2026-08-19 22:43  ForgeTheWorld  阅读(3)  评论(0)    收藏  举报