POJ_1185_状态压缩dp
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的更多相关文章
- hoj2662 状态压缩dp
Pieces Assignment My Tags (Edit) Source : zhouguyue Time limit : 1 sec Memory limit : 64 M S ...
- POJ 3254 Corn Fields(状态压缩DP)
Corn Fields Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 4739 Accepted: 2506 Descr ...
- [知识点]状态压缩DP
// 此博文为迁移而来,写于2015年7月15日,不代表本人现在的观点与看法.原始地址:http://blog.sina.com.cn/s/blog_6022c4720102w6jf.html 1.前 ...
- HDU-4529 郑厂长系列故事——N骑士问题 状态压缩DP
题意:给定一个合法的八皇后棋盘,现在给定1-10个骑士,问这些骑士不能够相互攻击的拜访方式有多少种. 分析:一开始想着搜索写,发现该题和八皇后不同,八皇后每一行只能够摆放一个棋子,因此搜索收敛的很快, ...
- DP大作战—状态压缩dp
题目描述 阿姆斯特朗回旋加速式阿姆斯特朗炮是一种非常厉害的武器,这种武器可以毁灭自身同行同列两个单位范围内的所有其他单位(其实就是十字型),听起来比红警里面的法国巨炮可是厉害多了.现在,零崎要在地图上 ...
- 状态压缩dp问题
问题:Ignatius has just come back school from the 30th ACM/ICPC. Now he has a lot of homework to do. Ev ...
- BZOJ-1226 学校食堂Dining 状态压缩DP
1226: [SDOI2009]学校食堂Dining Time Limit: 10 Sec Memory Limit: 259 MB Submit: 588 Solved: 360 [Submit][ ...
- Marriage Ceremonies(状态压缩dp)
Marriage Ceremonies Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%lld & %llu ...
- HDU 1074 (状态压缩DP)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1074 题目大意:有N个作业(N<=15),每个作业需耗时,有一个截止期限.超期多少天就要扣多少 ...
随机推荐
- 在Git的PR(Pull Request)提示冲突无法merge合并的解决方案
问题 假设有一个分支A,向master分支提交PR,然后发生无法自动解决的冲突,PR提示不能执行merge合并. 解决方案1 本地checkout检出并切换到A分支,pull拉取更新到最新代码 在本地 ...
- Antd组件库使用方法
零.介绍: Ant design,是阿里巴巴的蚂蚁金服公司设计的一套适应用于web端和移动端网页的Ui组件库,组件好看,非常适合React框架使用. 官网:https://ant.design/ind ...
- 记一次docker镜像导出导入流程
目标:导出测试环境的镜像到本地机器 过程: 测试机: docker save -o /Dockerfile/crontabService/php72.tar lnmp72:v1.4 压缩,要不文件太大 ...
- Java StringBuilder类
StringBuilder的原理 String类 字符串是常量,它们的值在创建之后不能更改 字符串的底层是一个被final修饰的数组,不能改变 private final byte[] value; ...
- web实现点击左侧导航,右侧加载不同的网页(这种布局多用于后台管理系统)
(1)实现方法:采用ajax实现点击左侧菜单,右侧加载不同网页(在整个页面无刷新的情况下实现右侧局部刷新,用到ajax注意需要在服务器环境下运行,从HBuilder自带的服务器中打开浏览效果即可) ( ...
- Go 每日一库之 cobra
简介 cobra是一个命令行程序库,可以用来编写命令行程序.同时,它也提供了一个脚手架, 用于生成基于 cobra 的应用程序框架.非常多知名的开源项目使用了 cobra 库构建命令行,如Kubern ...
- 三个css属性 设置文字竖直居中
display: flex; justify-content:center; align-items:Center;
- 带 sin, cos 的线段树 - 牛客
链接:https://www.nowcoder.com/acm/contest/160/D来源:牛客网 题目描述给出一个长度为n的整数序列a1,a2,...,an,进行m次操作,操作分为两类.操作1: ...
- eclipse开发工具内打开某js文件总是用记事本方式打开的问题
问题现象: 开发时不知道按到了什么快捷键,导致在某js文件内点击某调用方法时莫名其妙的用记事本方式打开了该js文件,试了几次都是这样.索性将该js文件关掉重新打开,结果双击该文件还是弹出了一个记事本, ...
- java8新特性Lambda和Stream
Java8出来已经4年,但还是有很多人用上了jdk8,但并没用到里面的新东西,那不就等于没用?jdk8有许多的新特性,详细可看下面脑图 我只讲两个最重要的特性Lambda和Stram,配合起来用可以极 ...