题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=4539

题意:中文,不解释

题解:将每一行的状态压缩,然后进行DP,也可以用最大团做。这里我用的DP

 #include<cstdio>
#include<cstring>
#define max(a,b) ((a)>(b)?(a):(b)) int row[];
int dp[][][];//dp[i][j][k]表示第i行状态为j,i-1行状态为k时的士兵最大值
int s[<<];//合法状态
int cnt[<<];//合法状态中1的个数,即可安排的士兵数 int getcnt(int x){int c=;while(x>)c++,x=x&(x-);return c;} int fuck(int n,int m){
int now=,i,j,k,l,ans=;
for(i=;i<(<<m);i++){
if(i&(i<<))continue;
s[now]=i,cnt[now++]=getcnt(i);
}
for(i=;i<now;i++){
if(s[i]&row[])continue;
dp[][i][]=cnt[i];
}
for(i=;i<n;i++)for(j=;j<now;j++){
if(s[j]&row[i])continue;
for(k=;k<now;k++){
if((s[j]&(s[k]>>))||(s[j]&(s[k]<<)))continue;
for(l=;l<now;l++){
if(s[j]&s[l])continue;
dp[i][j][k]=max(dp[i][j][k],dp[i-][k][l]+cnt[j]);
}
}
}
for(i=;i<now;i++)for(j=;j<now;j++)ans=max(ans,dp[n-][i][j]);
return ans;
} int main(){
int n,m,i,j,x;
while(~scanf("%d%d",&n,&m)){
memset(row,,sizeof(row));
memset(dp,,sizeof(dp));
for(i=;i<n;i++)for(j=;j<m;j++){
scanf("%d",&x);
if(!x)row[i]=(row[i]<<)|;else row[i]<<=;
}
printf("%d\n",fuck(n,m));
}
return ;
}

hdu_4539_郑厂长系列故事——排兵布阵(状压DP|最大团)的更多相关文章

  1. HDU 4539 郑厂长系列故事——排兵布阵 状压dp

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4539 郑厂长系列故事--排兵布阵 Time Limit: 10000/5000 MS (Java/O ...

  2. HDU 4539 郑厂长系列故事——排兵布阵 —— 状压DP

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4539 郑厂长系列故事——排兵布阵 Time Limit: 10000/5000 MS (Java/Ot ...

  3. HDU 4539郑厂长系列故事――排兵布阵(状压DP)

    HDU 4539  郑厂长系列故事――排兵布阵 基础的状压DP,首先记录先每一行可取的所哟状态(一行里互不冲突的大概160个状态), 直接套了一个4重循环居然没超时我就呵呵了 //#pragma co ...

  4. HDU 4539 郑厂长系列故事——排兵布阵

    http://acm.hdu.edu.cn/showproblem.php?pid=4539 郑厂长系列故事——排兵布阵 Time Limit: 10000/5000 MS (Java/Others) ...

  5. 郑厂长系列故事——排兵布阵 hdu4539(状态压缩DP)

    郑厂长系列故事——排兵布阵 Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)To ...

  6. HDU-4539郑厂长系列故事——排兵布阵(状态压缩,动态规划)

    郑厂长系列故事--排兵布阵 Time Limit : 10000/5000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other) Total ...

  7. hdu4539 郑厂长系列故事——排兵布阵 + POJ1158 炮兵阵地

    题意:                  郑厂长系列故事--排兵布阵 Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65535/32 ...

  8. HDU 4529 郑厂长系列故事——N骑士问题 状压dp

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4529 郑厂长系列故事--N骑士问题 Time Limit: 6000/3000 MS (Java/O ...

  9. HDU4529 郑厂长系列故事——N骑士问题 —— 状压DP

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4529 郑厂长系列故事——N骑士问题 Time Limit: 6000/3000 MS (Java/Ot ...

随机推荐

  1. jq小demo—图片翻页展示效果 animate()动画

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  2. sql 根据字段查询不同表

    SELECT snFundType,snBusinessType, THEN (select vcPaySerialNo from aa where vcSerialNo=a.vcRelationSe ...

  3. shell中$0,$?,$!

    变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行的命令的结束代码(返回值) $- 使用Set命令设定的Flag一览 ...

  4. js格式转换

    //1.保留整数 function showInteger(value,row,index){ if(value!=null && value!="" && ...

  5. LOOPS

    LOOPS 题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=3853 递推 设dp[i][j]为(i,j)到终点期望的使用魔力值,mp[i][ ...

  6. WebStorm 10.0.3安装

    转:http://www.cr173.com/soft/130969.html WebStorm 10是一款强大的HTML5编辑工具,是 JetBrains 推出的一款商业的 JavaScript 开 ...

  7. thinkphp 注册验证

    遇到用户注册等情况时,如果等用户输入所有信息,点击注册按钮提交后,再验证输入是否正确,体验很不好,而且很浪费用户的时间,增加注册成本,这里提供一个例子,演示了怎么使用ajax进行单步验证,使用thin ...

  8. 印象烟大PPT大赛

    下面为获奖人员 王志恒一等奖 姜云飞.任子仪二等奖 田正相,庄棫麟,陈德昊三等奖.

  9. Java 反射 Array动态创建数组

    Java 反射 Array动态创建数组 @author ixenos 注:java.lang.reflect.Array 是个反射工具包,全是静态方法,创建数组以多维数组为基准,一维数组只是特殊实现 ...

  10. hdu_5963_朋友(找规律)

    题目链接:hdu_5963_朋友 题意: 中文,不解释 题解: 把样例拿出来看看,你会发现以x为节点是否能赢,就是与x相连的边权值的和或者异或是否为奇数. #include<bits/stdc+ ...