求助
查看原帖
求助
1328844
72728abcd楼主2024/12/6 22:27

程序

#include<bits/stdc++.h>
using namespace std;
int n,a[12],b[362880][9],c=0,m=1e+7;
void print()
{
	for(int i=1;i<=n;i++)
	{
		b[c][i]=a[i];
		c++;
	}
}
void arrange(int x)//全排列
{
	if(n+1==x)
	{
		print();
		return;
	}
	for(int i=1;i<=n;i++)
	{
		bool flag=true;
		for(int j=1;j<x;j++)
		{
			if(a[j]==i)
			{
				flag=false;
			}
		}
		if(flag)
		{
			a[x]=i;
			arrange(x+1);
			a[x]=0;
		}
	}
}
int main()
{
	cin>>n;
	arrange(1);
	int s[n],t[n];
	for(int i=0;i<n;i++)
	{
		cin>>s[i];
	}
	for(int i=0;i<n;i++)
	{
		cin>>t[i];
	}
	for(int i=0;i<362880;i++)
	{
		int sum=0;
		for(int j=0;j<9;j++)
		{
			sum+=max(s[b[i][j]],t[b[i][j+1]]);
		}
		m=min(m,sum);
	}
	cout<<m;
	return 0;
}
2024/12/6 22:27
加载中...