码迷,mamicode.com
首页 > 其他好文 > 详细

zoj3471 状态压缩dp基础

时间:2019-02-10 00:04:46      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:include   mes   set   mem   bit   nbsp   int   amp   clu   

/*
dp[S]表示状态S下的最大收益,0表示没有了,1表示还在 
*/
#include<bits/stdc++.h>
using namespace std;
int dp[1<<11],mp[11][11],n;
int main(){
    while(cin>>n && n){
        for(int i=1;i<=n;i++)
            for(int j=1;j<=n;j++)cin>>mp[i][j];
        memset(dp,0,sizeof dp);
        int ans=0;
        
        for(int S=(1<<n)-1;S>=1;S--)
            for(int i=1;i<=n;i++)
                for(int j=1;j<=n;j++)//消去i留下j 
                    if( (S&(1<<(i-1))) && (S&(1<<(j-1))) && i!=j )
                        dp[S-(1<<(i-1))]=max(dp[S-(1<<(i-1))],dp[S]+mp[j][i]),ans=max(ans,dp[S-(1<<(i-1))]); 
        printf("%d\n",ans);            
    }
} 

 

zoj3471 状态压缩dp基础

标签:include   mes   set   mem   bit   nbsp   int   amp   clu   

原文地址:https://www.cnblogs.com/zsben991126/p/10358473.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!