http://poj.org/problem?id=1185

一次考虑两行,比一行略为复杂。sta保存每种状态炮兵位置,sum保存每种状态当行炮兵总数,a保存地形,dp[i][j][k]表示到第i行当前行j状态上一行k状态的最大炮兵数。

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
//int main()
//{
// int num = 0;
// for(int i = 0;i <= (1<<10);i++)
// {
// if(i & (i<<2) || i & (i<<1)) continue;
// num++;
// }
// printf("%d",num);
//} int dp[][][],a[] = {},n,m,sta[],sum[] = {}; int main()
{
memset(dp,-,sizeof(dp));
scanf("%d%d",&n,&m);
getchar();
if(n == && m == )
{
printf("0\n");
return ;
}
for(int i = ;i < n;i++)
{
char temp[];
gets(temp);
for(int j = ;j < m;j++)
{
if(temp[j] == 'H') a[i] |= (<<j);
}
}
// for(int i = 0;i < n;i++) printf("%d\n",a[i]);
int cnt = ;
for(int i = ;i < (<<m);i++)
{
if(i & (i<<)) continue;
if(i & (i<<)) continue;
sta[cnt] = i;
int temp = i;
while(temp)
{
sum[cnt] += temp%;
temp /= ;
}
cnt++;
}
// for(int i = 0;i < cnt;i++) printf("%d %d\n",sta[i],sum[i]);
for(int i = ;i < cnt;i++)
{
if(a[] & sta[i]) continue;
dp[][i][] = sum[i];
}
// for(int i = 0;i < cnt;i++) printf("%d\n",dp[0][i][0]);
for(int i = ;i < cnt;i++)
{
if(a[] & sta[i]) continue;
for(int j = ;j < cnt;j++)
{
if(sta[i] & sta[j]) continue;
dp[][i][j] = max(dp[][i][j],dp[][j][]+sum[i]);
}
}
for(int i = ;i < n;i++)
{
for(int j = ;j < cnt;j++)
{
if(a[i] & sta[j]) continue;
for(int k = ;k < cnt;k++)
{
if(sta[j] & sta[k]) continue;
for(int l = ;l < cnt;l++)
{
if(sta[j] & sta[l]) continue;
if(dp[i-][k][l] == -) continue;
dp[i][j][k] = max(dp[i][j][k],dp[i-][k][l]+sum[j]);
}
}
}
}
// for(int i = 0;i < cnt;i++)
// {
// for(int j = 0;j < cnt;j++) printf("%d ",dp[n-1][i][j]);
// printf("\n");
// }
int ans = -;
for(int i = ;i < cnt;i++)
{
for(int j = ;j < cnt;j++) ans = max(ans,dp[n-][i][j]);
}
printf("%d\n",ans);
return ;
}

POJ_1185_状态压缩dp的更多相关文章

  1. hoj2662 状态压缩dp

    Pieces Assignment My Tags   (Edit)   Source : zhouguyue   Time limit : 1 sec   Memory limit : 64 M S ...

  2. POJ 3254 Corn Fields(状态压缩DP)

    Corn Fields Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 4739   Accepted: 2506 Descr ...

  3. [知识点]状态压缩DP

    // 此博文为迁移而来,写于2015年7月15日,不代表本人现在的观点与看法.原始地址:http://blog.sina.com.cn/s/blog_6022c4720102w6jf.html 1.前 ...

  4. HDU-4529 郑厂长系列故事——N骑士问题 状态压缩DP

    题意:给定一个合法的八皇后棋盘,现在给定1-10个骑士,问这些骑士不能够相互攻击的拜访方式有多少种. 分析:一开始想着搜索写,发现该题和八皇后不同,八皇后每一行只能够摆放一个棋子,因此搜索收敛的很快, ...

  5. DP大作战—状态压缩dp

    题目描述 阿姆斯特朗回旋加速式阿姆斯特朗炮是一种非常厉害的武器,这种武器可以毁灭自身同行同列两个单位范围内的所有其他单位(其实就是十字型),听起来比红警里面的法国巨炮可是厉害多了.现在,零崎要在地图上 ...

  6. 状态压缩dp问题

    问题:Ignatius has just come back school from the 30th ACM/ICPC. Now he has a lot of homework to do. Ev ...

  7. BZOJ-1226 学校食堂Dining 状态压缩DP

    1226: [SDOI2009]学校食堂Dining Time Limit: 10 Sec Memory Limit: 259 MB Submit: 588 Solved: 360 [Submit][ ...

  8. Marriage Ceremonies(状态压缩dp)

     Marriage Ceremonies Time Limit:2000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu ...

  9. HDU 1074 (状态压缩DP)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1074 题目大意:有N个作业(N<=15),每个作业需耗时,有一个截止期限.超期多少天就要扣多少 ...

随机推荐

  1. 你对Java泛型的理解够深入吗?

    泛型 泛型提供了一种将集合类型传达给编译器的方法,一旦编译器知道了集合元素的类型,编译器就可以对其类型进行检查,做类型约束. 在没有泛型之前: /** * 迭代 Collection ,注意 Coll ...

  2. BZOJ 2038: [2009国家集训队]小Z的袜子 (莫队)

    题目传送门:小Z的袜子 Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命…… ...

  3. 你不得不了解Helm 3中的5个关键新特性

    Helm是Kubernetes的一个软件包管理器.两个月前,它发布了第三个主要版本,Helm 3.在这一新版本中,有许多重大变化.本文将介绍我认为最关键的5个方面. 1. 移除了Tiller Helm ...

  4. esri mdb 数据库导入 到postgreSQL

    需求: 项目升级,需要将esri的个人数据库(mdb格式)导入到开源数据库postgreSQL中. 思路: 使用fwtools工具导出到数据库中. 环境: windows+fwtools+postgr ...

  5. QGIS WGS84转其它坐标系并计算坐标

    需求: 将带有经度.纬度(WGS84坐标系)坐标的文本(*.txt)转换成指定投影坐标系的shp文件并计算x,y坐标. 环境和工具: WIN10.QGIS2.16.带有经纬度坐标的文本.格式如下图: ...

  6. Vuex实践(下)-mapState和mapGetters

    Vuex系列文章 <Vuex实践(上)> <Vuex实践(中)-多module中的state.mutations.actions和getters> <Vuex实践(下)- ...

  7. YOLO V3训练自己的数据集

    数据的输入几乎和Faster rcnn一样,标签格式xml是一样的. 相比Faster rcnn,数据多了一步处理,通过voc_annotation.py将图片路径和bbox+class存储在txt下 ...

  8. 基于C#的机器学习--垃圾邮件过滤

    在这一章,我们将建立一个垃圾邮件过滤分类模型.我们将使用一个包含垃圾邮件和非垃圾邮件的原始电子邮件数据集,并使用它来训练我们的ML模型.我们将开始遵循上一章讨论的开发ML模型的步骤.这将帮助我们理解工 ...

  9. hadoop搭建

    一.前期准备 1.1 静态ip,请查看虚拟机安装不放呢 1.2 hostname 以及 hosts文件修改 cat /etc/hostname 不同的机器设置不同的名字 cat /etc/hosts ...

  10. Mysql连接出现时区问题

    错误提示: The server time zone value '¥x¥_¼Ð·Ç®É¶¡' is unrecognized or represents more than one time zon ...