CF1000A 题解
题意
给定一组目标串组A和一组模式串组B,求模式串至少要多少次才能全都变为目标串?
题解
易知4个性质
1.一个串最多改变一次
2.不管怎么改变,字符串的长度都不会变
3.可以直接消去目标串组A与模式串组B中的相同字符串
4.因为题目没有无解情况,所以若长度为x的字符串在A中出现了 y 次,则B中一定有且仅有y个长度为x的字符串.
所以,根据 3 进行操作后,A(或B) 中剩下多少字符串,答案即是多少。
代码
#include <bits/stdc++.h>
using namespace std;
map<string, int>M;
int n, ans;
string s;
int main()
{
cin >> n;
ans = n;
for(int i = 1; i <= n; i++)
{
cin >> s;
M[s]++;
}
for(int i = 1; i <= n; i++)
{
cin >> s;
if(M[s])
{
M[s]--,ans--;
}
}
cout << ans;
return 0;
}