[更正] CF D1 求hack
  • 板块学术版
  • 楼主__vector__
  • 当前回复3
  • 已保存回复3
  • 发布时间2022/9/20 00:49
  • 上次更新2023/10/27 10:33:36
查看原帖
[更正] CF D1 求hack
507348
__vector__楼主2022/9/20 00:49

刚才那个贴发错了,上面贴的是我本来就错的代码,已紫衫,现在重新问一下。

这是我自己没找出错的代码,求 hack:

#include <bits/stdc++.h>
using namespace std;
const int maxn=3005;
int t,n,x,y;
char a[maxn],b[maxn];
int main()
{
	scanf("%d",&t);
	while(t--)
	{
		scanf("%d%d%d",&n,&x,&y);
		scanf("%s",a+1);
		scanf("%s",b+1);
		int sum=0;
		for(int i=1;i<=n;i++)
		{
			if(a[i]!=b[i])sum++;
		}
		if(sum&1)
		{
			printf("-1\n");
			continue;
		}
		long long ans=0;
		for(int i=1;i<=n;i++)
		{
			if(a[i]!=b[i])
			{
				int pos=i;
				for(int j=i+1;j<=n;j++)
				{
					if(a[j]!=b[j])
					{
						pos=j;
						if(pos!=i+1)
						{
							break;
						}
					}
				}
				if(pos==i+1)
				{
					long long sum=x;
					sum=min(sum,(long long)y*2ll);
					ans+=sum;
				}
				else
				{
					ans+=(long long)(y);
				}
				a[i]=b[i];
				a[pos]=b[pos];
			}
		}
		printf("%lld\n",ans);
	}
	return 0;
}
2022/9/20 00:49
加载中...