1 条题解

  • 0
    @ 2024-5-27 19:30:56

    思路

    注意本题的数据范围很小,所以我们可以暴力枚举 1n1\sim n 的全排列,对于一个排列 pp,我们需要留下这么多个牛棚:

    n+i=1n1max{api+1,bpi}n+\sum^{n-1}_{i=1}\max\{a_{p_{i+1}},b_{p_i}\}

    对所有的答案取最小值就是最终答案。

    AC Code

    #include<bits/stdc++.h>
    #define ll long long
    using namespace std;
    const ll N=10;
    ll n,a[N],b[N],p[N],ans=LLONG_MAX;
    int main(){
        scanf("%lld",&n);
        for(ll i=1;i<=n;i++)
            scanf("%lld",&a[i]);
        for(ll i=1;i<=n;i++)
            scanf("%lld",&b[i]),p[i]=i;
        do{
            ll cnt=n;
            for(ll i=1;i<n;i++)
                cnt+=max(a[p[i+1]],b[p[i]]);
            ans=min(ans,cnt);
        }while(next_permutation(p+1,p+1+n));
        printf("%lld",ans);
        return 0;
    }
    
    • 1

    信息

    ID
    756
    时间
    1000ms
    内存
    512MiB
    难度
    6
    标签
    递交数
    186
    已通过
    52
    上传者