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.

浙公网安备 33010602011771号