欢迎光临散文网 会员登陆 & 注册

USACO银牌题目 CF863B Kayaking (排序, 枚举, 暴力,DFS) 样例代码2

2022-07-16 10:41 作者:信奥赛USACO郑老师  | 我要投稿

#include <bits/stdc++.h>

using namespace std;

int d[50*2];

int cost=0;

int mincost=1e8;

 

void s(int k, int single, int n){

    if(k>=2*n){

        if(k==2*n && single==0){

            mincost=min(mincost,cost);

        }

        return;

    }    

    if(single>0){

        s(k+1,single-1,n);

    }

    if(k<2*n-1){

        cost+=d[k+1]-d[k];

        s(k+2,single,n);

        cost-=d[k+1]-d[k];

    }    

    return;

}

 

int main()

{

    int n;

    cin>>n;

    for(int i=0;i<2*n;i++){

        cin>>d[i];

    }

    sort(d,d+2*n);

    s(0,2,n);

    cout<<mincost<<endl;

    return 0;

}


USACO银牌题目 CF863B Kayaking (排序, 枚举, 暴力,DFS) 样例代码2的评论 (共 条)

分享到微博请遵守国家法律