CF2141B Games

· · 题解

题目传送门

思路

我们设 Alice 独有的游戏(即不在对方游戏列表里的游戏)数量为 cnta,Bob 独有的游戏数量为 cntb

接下来我们可以分两种情况来讨论:

  1. cnta>cntb,此时 Bob 所有独有的游戏都会被推荐(即推荐 cntb 次),又因为 Alice 先开始推荐,所以 Alice 会推荐 cntb+1 次。最后加上推荐成功的那一次,总次数为 2 \times cntb+2
  2. cnta \le cntb,此时 Alice 所有独有的游戏都会被推荐(即推荐 cnta 次),但 Bob 这时就只能推荐 cnta 次(因为他后推荐)。最后加上推荐成功的那一次,总次数为 2 \times cnta+1

代码

#include <bits/stdc++.h>
using namespace std;
const int N=100+4;
int a[N],b[N];

void solve()
{
    int n,m;
    cin >>n>>m;
    int cnta=n,cntb=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++)
    {
        for(int j=1;j<=m;j++)
        {
            if(a[i]==b[j]) cnta-- , cntb--;
        }
    }
    if(cnta>cntb) cout <<2*cntb+2;
    else cout <<2*cnta+1;
    cout <<'\n';
}
int main()
{
    int t;
    cin >>t;
    while(t--) solve();
    return 0;
}