2019牛客暑期多校训练营(第二场)F:Partition problem(dfs)

【题解】

题意:给定一个n,把2n个人分为两组,再给定一个2n*2n的方阵,aij表示当第i个人和第j个人不在一个组时将得到的武力值,要求你分配输出最大的武力值之和。

思路:n<=14,dfs跑一遍即可。

【代码】

#include 
using namespace std;
#define ll long long
ll a[30][30],d[30];
ll ans;
int n;
vector  vec;
void dfs(int pos,ll sum)
{
    if(vec.size()==n){
        ans=max(ans,sum);
        return;
    }
    if(pos>2*n) return;
    ll cou=d[pos];
    for(int i=0;i

【题面】

2019牛客暑期多校训练营(第二场)F:Partition problem(dfs)_第1张图片

2019牛客暑期多校训练营(第二场)F:Partition problem(dfs)_第2张图片

你可能感兴趣的:(2019牛客暑期多校训练营(第二场)F:Partition problem(dfs))