zoukankan      html  css  js  c++  java
  • 2019牛客暑期多校2-Partition problem深搜

    在这里插入图片描述
    输入

    1
    0 3
    3 0
    

    输出

    3
    

    题意:
    将2*n个人分成两部分,每部分都有n个人
    而且每个人只能属于一个组,问按照给出的算式得到的竞争力最大值是多少

    ll n,ans = 0;
    ll a[40][40];
    int sel[40];
    ll sum[maxn];
    int r = 0;
    void dfs(ll curval,int pos){
    	if(r == n) {
    		ans = max(ans,curval);
    		return ;
    	}
    	if(pos >= 2 * n + 1 || r > n) return ;
    	
    	ll s = sum[pos];
    	for(int i=1;i<=r;i++){
    		int t = sel[i];
    		s -= 2 * a[pos][t];
    	}
    	r ++;
    	sel[r] = pos;
    	dfs(curval + s,pos+1);
    	r --;
    	dfs(curval,pos+1);
    }
    int main() {
    	n = read;
    	for(int i=1;i<=2*n;i++){
    		for(int j=1;j<=2*n;j++) a[i][j] = read,sum[i] += a[i][j];
    	}
    	ans = 0;
    	dfs(0,1);
    	cout << ans <<endl;
    	return 0;
    }
    
  • 相关阅读:
    JS分页条插件
    C#Lambda
    常用CSS样式速查
    简易表格编辑器
    使用template
    js 时间类函数
    数据库表增删查改帮助类
    使用github
    box-shadow属性
    box-sizing属性
  • 原文地址:https://www.cnblogs.com/PushyTao/p/15459816.html
Copyright © 2011-2022 走看看