JZYZOJ 1382 光棍组织 状压dp

Posted 鲸头鹳

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JZYZOJ 1382 光棍组织 状压dp相关的知识,希望对你有一定的参考价值。

http://172.20.6.3/Problem_Show.asp?id=1382

 
水得过分了,本来以为要用lzx学长的写法写,抱着试试看的想法写了个特暴力的dp+dfs,过了,真是。。。
 
代码
技术分享
 1 #include<iostream>  
 2 #include<cstdio>  
 3 #include<cstring>  
 4 #include<algorithm>  
 5 #include<cmath>  
 6 using namespace std;
 7 const int maxn=1<<16;
 8 int n;
 9 int a[maxn+10]={};
10 int f[maxn+10]={},tot;
11 int vis[20]={};
12 void dfs(int k,int num,int mm){
13     if(k<=0){
14         f[mm]=max(f[mm],f[mm-num]+f[num]);
15         return;
16     }
17     int x=1<<(vis[k]-1);
18     dfs(k-1,num,mm);
19     dfs(k-1,num+x,mm);
20 }
21 int main(){
22     scanf("%d",&n);
23     int ma=1<<n;
24     for(int i=1;i<ma;i++){
25         scanf("%d",&a[i]);
26         f[i]=a[i];
27     }int x1;
28     for(int i=1;i<ma;i++){
29         tot=0;
30         for(int j=1;j<=n;j++){
31             x1=1<<(j-1);
32             if((x1|i)==i)vis[++tot]=j;
33         }
34         dfs(tot,0,i);
35     }
36     cout<<f[ma-1]<<endl;
37     return 0;
38 }
View Code

 

以上是关于JZYZOJ 1382 光棍组织 状压dp的主要内容,如果未能解决你的问题,请参考以下文章

JZYZOJ1386 扑街 状压dp

JZYZOJ1390noi2001炮兵阵地 状压DP

JZYZOJ 1388 旅游 状压dp

HDU4057 Rescue the Rabbit(AC自动机+状压DP)

18.06.03 POJ 4126:DNA 15年程设期末05(状压DP)

POJ1699 Best Sequence(AC自动机+状压DP)