SSL 1384 炮兵阵地

题目链接

思路

1、输入,顺便用二进制在mp中标记状态,直接右移一位就是标记为0,移完之后再加1就是标记1;
2、通过for筛选出符合题目条件的一行中的所有符合条件的状态;
3、DP求出结果

#include<iostream>
#include<cstdio>
using namespace std;
int n,m,tot,ans,mp[1010],a[1<<10],num[1<<10],f[110][1<<10][1<<10];
int cou(int x){int ans;for(ans=0;x;x-=x&-x,ans++);return ans;}
bool check(int x){int res=0;while(x){if((x&1) and res)return false;if(x&1)res=3;if(res>0)res--;x>>=1;}return true;
}
int main(){ios::sync_with_stdio(false);cin>>n>>m;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){char c;cin>>c;if(c=='P') mp[i]=(mp[i]<<1);else mp[i]=(mp[i]<<1)+1;}}for(int i=0;i<1<<m;i++)if(check(i)) a[++tot]=i,num[tot]=cou(i);for(int i=1;i<=n;i++){for(int j=1;j<=tot;j++){if((a[j]&mp[i-2])==0){for(int k=1;k<=tot;k++){if((a[j]&a[k])==0 and (a[k]&mp[i-1])==0){for(int l=1;l<=tot;l++){if((a[j]&a[l])==0 and (a[k]&a[l])==0 and (a[l]&mp[i])==0){f[i][l][k]=max(f[i][l][k],f[i-1][k][j]+num[l]);}}}}}}}for(int i=1;i<=tot;i++){for(int j=1;j<=tot;j++){ans=max(ans,f[n][i][j]);}}cout<<ans;return 0;
}

SSL 1384 炮兵阵地相关推荐

  1. POJ 1185 炮兵阵地 (状压DP)

    炮兵阵地 Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 14869   Accepted: 5575 Description ...

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

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

  3. poj 1185 NYOJ 85 炮兵阵地(状态压缩dp)

    炮兵阵地 时间限制:2000 ms  |  内存限制:65535 KB 难度:6 描述 司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队.一个N*M的地图由N行M列组成,地图的每一格可能是山地 ...

  4. POJ1185 炮兵阵地 状压DP

    炮兵阵地 Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 31819   Accepted: 12295 Descriptio ...

  5. 状压dp之二之三 炮兵阵地/玉米田 By cellur925

    一.简单的状压dp 玉米田 题目描述 Farmer John has purchased a lush new rectangular pasture composed of M by N (1 ≤ ...

  6. C++ 洛谷 P2704 [NOI2001]炮兵阵地

    P2704 [NOI2001]炮兵阵地 没学状压DP的看一下 此题意思很简单,如下图,就是十字架上的不能有两个点放炮兵. 在做此题前,先做一下玉米田 玉米田题解 分析: 而m即一行的个数小于等于10, ...

  7. AcWing292.炮兵阵地(状压DP)题解

    Acwing.炮兵阵地 题目传送门 题目描述 司令部的将军们打算在N * M的网格地图上部署他们的炮兵部队.一个N * M的地图由N行M列组成,地图的每一格可能是山地(用"H" 表 ...

  8. POJ 1185 炮兵阵地(动态规划+状态压缩)

    炮兵阵地 Description 司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队.一个N*M的地图由N行M列组成,地图的每一格可能是山地(用"H" 表示),也可能是平原( ...

  9. NYOJ 81:炮兵阵地(状压DP)

    炮兵阵地 时间限制:2000 ms  |  内存限制:65535 KB 难度:6 描述 司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队.一个N*M的地图由N行M列组成,地图的每一格可能是山地 ...

  10. 玉米田 炮兵阵地 状态压缩DP

    玉米田 原题 #include <cstring> #include <iostream> #include <algorithm> #include <ve ...

最新文章

  1. 2020全国高中清华北大录取人数榜,各位学生快看!
  2. 【android-tips】关于string.xml的使用
  3. 最小生成树之Kruskal
  4. servlet文件上传下载_Servlet上传文件和下载文件示例
  5. 显示当前行号、文件名和函数名
  6. python回车键绑定按钮_python tkinter 绑定回车键
  7. (亲测)Hbase安装(傻瓜式安装)
  8. UI_DEV_Environment 之 StoryBook
  9. node.js核心模块
  10. paip.提升用户体验---注册异常记录
  11. Spring实战(第4版)阅读笔记(一)
  12. 语音助手——简介与交互过程
  13. python 移动平均线_使用python计算简单移动平均线
  14. 线性代数笔记(5) 矩阵多项式的运用——哈密顿-凯莱定理
  15. Android关于微博发表微博时@好友后删除@的好友的功能实现
  16. 七牛云存储使用经历到底怎么样
  17. arduino读取控制手柄
  18. pd安装win10错误-安全启动功能发现未经授权更改固件
  19. MAC修改主机名、计算机名
  20. PIC单片机之I/O控制

热门文章

  1. could not resolve property: qid of: org.lxh.myzngt.vo.Answer [SELECT COUNT(q.qid) FROM org.lxh.myzn
  2. 解决word或wps删除空白页后页面布局变乱
  3. 鸿蒙运行linux软件,在Linux系统下要运行鸿蒙HarmonyOS应用可试试xDroid软件
  4. html+css仿写小米商城
  5. C语言结构体struct LNode *p ,LNode *p ,Linklist p
  6. struct lnode{}Lnode后面的Lnode是什么意思
  7. excel怎么设置打印区域_学会Excel分页符设置,打印区域自由选择
  8. 配置vhost、https、重定向
  9. emmc host调用mmc_rescan发现设备
  10. hp打印机没有右键扫描_win10打印机右键没有‘开始扫描’的修复办法