长风破浪会有时,直挂云帆济沧海 • 3天前
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;
}
评论:
请先登录,才能进行评论