poj 1185 炮兵阵地 状态压缩dp
2015-09-17 14:16
411 查看
题意:
良心中文题不赘述了。
分析:
状态压缩dp,每行的状态和前两行有关。
代码:
良心中文题不赘述了。
分析:
状态压缩dp,每行的状态和前两行有关。
代码:
//poj 1185 //sep9 #include <iostream> using namespace std; int n,m; char g[128][16]; int row_state[128][128]; int dp[128][64][64]; bool check(int row,int st) { for(int j=0;j<m;++j){ int k=((st>>j)&1); if(k==0) continue; if(g[row][j]=='H') return false; if(j-1>=0&&((st>>(j-1))&1)==1) return false; if(j-2>=0&&((st>>(j-2))&1)==1) return false; } return true; } int cnt_state(int s) { int cnt=0; for(int i=0;i<m;++i){ cnt+=(s&1); s=(s>>1); } return cnt; } int main() { scanf("%d%d",&n,&m); for(int i=0;i<n;++i) scanf("%s",g[i]); for(int i=0;i<n;++i){ row_state[i][0]=0; for(int j=0;j<(1<<m);++j) if(check(i,j)) row_state[i][++row_state[i][0]]=j; } memset(dp,0,sizeof(dp)); for(int i=1;i<=row_state[0][0];++i){ dp[0][i][0]=cnt_state(row_state[0][i]); } for(int i=1;i<=row_state[1][0];++i) for(int j=1;j<=row_state[0][0];++j){ if(row_state[1][i]&row_state[0][j]) continue; dp[1][i][j]=dp[0][j][0]+cnt_state(row_state[1][i]); } for(int row=2;row<n;++row) for(int i=1;i<=row_state[row][0];++i) for(int j=1;j<=row_state[row-1][0];++j) for(int k=1;k<=row_state[row-2][0];++k){ int s=row_state[row][i]; int s1=row_state[row-1][j]; int s2=row_state[row-2][k]; if(s1&s||s1&s2||s&s2) continue; dp[row][i][j]=max(dp[row][i][j],dp[row-1][j][k]+cnt_state(s)); } int ans=0; if(n==1){ for(int i=1;i<=row_state[0][0];++i) ans=max(ans,dp[0][i][0]); } else{ for(int i=1;i<=row_state[n-1][0];++i) for(int j=1;j<=row_state[n-2][0];++j) ans=max(ans,dp[n-1][i][j]); } printf("%d",ans); return 0; }
相关文章推荐
- 【.Net码农】基于jquery的$.ajax async使用
- 宏函数和函数的区别
- 哪些内容会被新闻源惩罚呢?
- Windows远程桌面连接ubuntu 14.04图解设置教程
- 通过Java Api与HBase交互(转)
- Oracle中的表构造导出到word Sql语句
- 70岁老人拾20岁智障女为妻 生娃拴树上
- ASP.NET实现级联下拉框效果实例讲解
- (ZT) Using Bochs internal debugger
- Android 用EditText加一个ImageButton自定义一个带clear的搜索框
- dom4j读写xml文件方法和具体实现代码(提供jar包下载)
- VS2013 修改模板文件,增加默认注释
- phpcms数据库操作
- Spring Resource bundle with ResourceBundleMessageSource example
- 类成员函数指针回调问题。(可以回调但是,函数回调后this指针无效)
- JavaBean的get、set方法引发的讨论
- 指针
- HBase Java API类介绍
- vc++导入com组件
- jquery文字左右滚动