ABC C求调
  • 板块学术版
  • 楼主chenmingwang
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/9/14 21:52
  • 上次更新2024/9/15 09:56:21
查看原帖
ABC C求调
562443
chenmingwang楼主2024/9/14 21:52

样例全过,就是没AC

#include<bits/stdc++.h>
using namespace std;
const long long maxn=15;
long long i,j,n,k,l,ans=1e18,mg,uu[15],vv[15],mh,r,u,tmp,tmgr[maxn][maxn],v,Q,m,g[maxn][maxn],h[maxn][maxn],a[maxn][maxn];
char ch;
bool flag[maxn];
int main()
{
	scanf("%lld %lld",&n,&mg);
	for(i=1;i<=mg;i++)
	{
		scanf("%lld %lld",&uu[i],&vv[i]);
		g[uu[i]][vv[i]]=1,g[vv[i]][uu[i]]=1;
	}
	scanf("%lld",&mh);
	for(i=1;i<=mh;i++)
	{
		scanf("%lld %lld",&u,&v);
		h[u][v]=1,h[v][u]=1;
	}
	for(i=1;i<=n-1;i++)
	{
		for(j=i+1;j<=n;j++)
		{
			scanf("%lld",&tmp);
			a[i][j]=tmp,a[j][i]=tmp;
		}
	}
	vector<long long>num;
	for(i=1;i<=n;i++) num.push_back(i);
	do
	{
		long long p[20];
		for(i=0;i<n;i++) p[num[i]]=i+1;
		//puts("");
		long long ret=0;
		for(i=1;i<=10;i++) for(j=1;j<=10;j++) tmgr[i][j]=0;
		for(i=1;i<=mg;i++)
		{
			tmgr[p[uu[i]]][p[vv[i]]]=1;
			tmgr[p[vv[i]]][p[uu[i]]]=1;
		}
		for(i=1;i<=n;i++)
		{
			for(j=i+1;j<=n;j++)
			{
				if(tmgr[i][j]!=h[i][j]) ret+=a[i][j];
			}
		}
		ans=min(ans,ret);
	}while(next_permutation(num.begin(),num.end()));
	printf("%lld\n",ans);
	return 0;
}
//h->g

悬关!!!

2024/9/14 21:52
加载中...