POJ 1185 状压DP
来源:互联网 发布:js跨域请求 编辑:程序博客网 时间:2024/06/14 08:30
#include<cstdio>#include<cstring>#include<cstdlib>#include<algorithm>using namespace std;int map[101];//int dp[101][(1<<10)];int dp[101][70][70];int st[70];int num[(1<<10)];inline int jcount(int x){ int cnt=0; while(x) { cnt++; x&=(x-1); } return cnt;}int main(){ int t=0; for(int i=0;i<(1<<10);i++) { num[t++]=jcount(i); //printf("%d\n",num[t-1]); //system("pause"); } int n,m; while(~scanf("%d%d",&n,&m)) { int ans=0; memset(map,0,sizeof(map)); memset(dp,0,sizeof(dp)); for(int i=1;i<=n;i++) { char temp[15]; scanf("%s",temp); int len=strlen(temp); for(int j=0;j<len;j++) { if(temp[j]=='H') map[i]+=(1<<j); } }// for(int i=1;i<=n;i++)// {// for(int j=1;j<=m;j++)// {// if(map[i]&(1<<(j-1)))// printf("0");// else// printf("1");// }// printf("\n");// } int k=0; for(int i=0;i<(1<<m);i++) { if(!(i&(i<<2))&&!(i&(i<<1))) { st[k++]=i; } } for(int i=0;i<k;i++) { if(map[1]&st[i]) continue; dp[1][0][i]=num[st[i]]; ans=max(dp[1][0][i],ans); for(int j=0;j<k;j++) { if(map[2]&st[j]) continue; if(!(st[i]&st[j])) dp[2][i][j]=num[st[i]]+num[st[j]]; } } for(int i=3;i<=n;i++) { for(int j=0;j<k;j++) { if(map[i]&st[j]) continue; for(int u=0;u<k;u++) { if(map[i-1]&st[u]) continue; for(int v=0;v<k;v++) { if(map[i-2]&st[v]) continue; if(st[j]&st[u]||st[j]&st[v]||st[u]&st[v]) continue; dp[i][u][j]=max(dp[i-1][v][u]+num[st[j]],dp[i][u][j]); } } } } if(n==1) {printf("%d\n",ans); continue;} ans=0; for(int i=0;i<k;i++) { for(int j=0;j<k;j++) { ans=max(dp[n][i][j],ans); } } printf("%d\n",ans); } return 0;}
0 0
- poj 1185(状压dp)
- POJ 1185 状压DP
- poj 1185 状压DP
- POJ 1185 状压DP
- poj 1185 状压DP
- POJ 1185 状压DP
- poj(1185)状压DP
- poj 1185状压DP入门
- poj 1185(状压dp)
- POJ 1185--炮兵阵地(状压dp)
- poj 1185 炮兵阵地 状压DP
- POJ 1185 炮兵阵地 (状压DP)
- POJ 1185 炮兵阵地(状压dp)
- 炮兵阵地 - POJ 1185 状压dp
- POJ 1185 炮兵布阵 状压DP
- POJ 1185 炮兵阵地(状压DP)
- poj 1185 炮兵阵地 状压DP
- POJ 1185-炮兵阵地(状压DP)
- NYOJ 832 合并游戏(状态压缩)
- Xcode升级导致插件失效的解决方法
- 算法复杂度分析--递归树和主方法简介
- ZOJ 3862 Intersection (dijkstra)
- lua 系统库 时间 执行 文件
- POJ 1185 状压DP
- 第十二天:poj1014(又见dfs,这次有图有真相)
- 黑马程序员-学习笔记之 多态
- 【USACO】Sorting a Three-Valued Sequence(思路)
- iOS后台持续定位并定时上传
- 快速排序
- 数列排序
- 如何在OpenCV2.3中实现CvvImage
- 【HTML/XML 1】HTML 速成总结