1

噢莫加纳加加加  •  1天前


#include <bits/stdc++.h>
using namespace std;
int a[100], b[100];
int book[100];
int n;
int ans = 1e9;
void dfs(int x, int y,int z){
	if(y == n){
		ans = min(ans, z);
		return;
	}
	for(int i = 1;i <= n;i++){
		if(book[i] == 1|| x == i){
			continue;
		}
		book[i] = 1;
		y++;
//		cout << max(b[x],a[i]) << ' ';
		dfs(i,y,z + max(b[x],a[i]) + 1);
		y--;
//		cout << y;
		book[i] = 0;
	}
}
int main(){
	cin >> n;
	for(int i = 1;i <= n;i++)cin >> a[i];
	for(int i = 1;i <= n;i++)cin >> b[i];
	for(int i = 1;i <= n;i++){
		book[i] = 1;
		dfs(i,1,1);
		book[i] = 0;
	}
	cout << ans;
	
	return 0;
}

评论:

请先登录,才能进行评论