#22WA!!!
查看原帖
#22WA!!!
784944
huozhenyi楼主2023/11/16 17:19
#include <bits/stdc++.h>
using namespace std;
const int N=1010;
int cnt1[N],cnt0[N];
bool st[N];
int n,m,l;
string s;
string a;
int min_wz;
int ans;
int find()
{
	int wz;
	int mi=1e9;
	for (int i=0;i<l;i++)
	{
		if (mi>abs(cnt1[i]-cnt0[i])&&!st[i])
		{
			mi=abs(cnt1[i]-cnt0[i]);
			wz=i;
		}
	}
	return wz;
}
int main()
{
	cin >> n >> m >> l;
	for (int i=1;i<=n;i++)
	{
		cin >> s;
		for (int j=0;j<l;j++)
		{
			if (s[j]=='0') cnt0[j]++;
			if (s[j]=='1') cnt1[j]++;
		}
	}
	for (int i=0;i<l;i++)
	{
		if (cnt1[i]<cnt0[i]) ans+=cnt1[i],a+='0';
		else ans+=cnt0[i],a+='1';
	}
	for (int i=1;i<=m;i++)
	{
		cin >> s;
		if (a==s)
		{
			min_wz=find();
			if (a[min_wz]=='0') ans=ans-cnt1[min_wz]+cnt0[min_wz];
			if (a[min_wz]=='1') ans=ans-cnt0[min_wz]+cnt1[min_wz];
		}
	}
	cout << ans;
	return 0;
}
2023/11/16 17:19
加载中...