poj 1185 状压DP

在MATLAB和Simulink中设计并仿真一个智能建筑能效优化系统 智能建筑能效优化是现代建筑管理的重要组成部分,旨在通过智能化手段降低能源消耗、减少碳排放并提高居住舒适性。通过Simulink进行智能建筑能效优化仿真,可以验证控制策略的有效性、优化系统设计并降低开发成本。以下是如何在MATLAB和Simulink中设计并仿真一个智能建筑能效优化系统的详细步骤。通过上述步骤,我们成功设计并实现了基于Simulink的智能建筑能效优化仿真。该系统能够模拟复杂的建筑环境,验证能效优化策略的有效性,并通过优化设计提高建筑的能源利用效率和居住舒适性。 阅读详情
传送门:http://poj.org/problem?id=1185


很经典的一道状压DP,慢慢试着学习这列状压DP......炮兵阵地,可以DFS暴力搜索,可是不会......


#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int ma[105],st[65],sum[105];
int dp[105][65][65];
char x[15];
int main()
{
    int N,M;
    while(scanf("%d%d",&N,&M)!=EOF)
    {
        memset(ma,0,sizeof(ma));
        memset(st,0,sizeof(st));
        memset(dp,-1,sizeof(dp));
        memset(sum,0,sizeof(sum));
        for(int i=0;i<N;i++)
        {
            scanf("%s",x);
            for(int j=0;j<M;j++)
            {
                if(x[j]=='H')
                    ma[i]+=(1<<j);
            }
        }
        int num=0;
        for(int i=0;i<(1<<M);i++)
        {
            if((i&(i<<1))||(i&(i<<2))) continue;
            int k=i;
            while(k)
            {
                sum[num]+=(k&1);
                k=k>>1;
            }
            st[num++]=i;
        }
        for(int i=0;i<num;i++)
        {
            if(st[i]&ma[0]) continue;
            dp[0][i][0]=sum[i];
        }
        for(int r=1;r<N;r++)
        {
            for(int i=0;i<num;i++)
            {
                if(ma[r]&st[i]) continue;
                for(int j=0;j<num;j++)
                {
                    if(st[i]&st[j]) continue;
                    for(int e=0;e<num;e++)
                    {
                        if(st[i]&st[e]) continue;
                        if(st[j]&st[e]) continue;
                        if(dp[r-1][j][e]==-1) continue;
                        dp[r][i][j]=max(dp[r][i][j],dp[r-1][j][e]+sum[i]);
                    }
                }
            }
        }
        int ans=0;
        for(int i=0;i<num;i++)
        {
            for(int j=0;j<num;j++)
            {
                ans=max(ans,dp[N-1][i][j]);
            }
        }
        printf("%d\n",ans);
    }
    return 0;
}

海思图像质量之HiPQTool调试 文章目录一. HiPQTool 界面二. 图像调试三. 将调试参数写入程序中 一. HiPQTool 界面 二. 图像调试 三. 将调试参数写入程序中 阅读详情

相关推荐

Win10网络图标消失,网络图标变成灰色,打开网络设置闪退等问题解决

介绍 主要解决如下问题 网络图标消失 常用方法配置中出现的网络图标变成灰色没有办法打开 打开网络和Internet闪退 错误提示`网络发现已关闭。网络计算机和设备不可见。请启动网络和共享中心的网络发现。 连不上网,诊断结果为 依赖服务或组无法启动 这个问题大概率通过重装系统不能解决,请大家谨慎测试之后最后选择重装这个路线。 方法1:这一步一定要做(卸载三方软件) 把360安全卫士,软件管家这些东西都卸载掉。 我的问题一开始就是这个软件引起的,可能他检测到我还给台式机配了无线网卡,然后就把有线网络的一些

呆呆象呆呆的博客 3万+

POJ1185炮兵阵地(状压dp)

POJ1185炮兵阵地(状压dp) 学了两周的状压dp,终于把这道题a了… 参考的这篇大佬的博客学习的状压 点这里 题意: 给一个N X M的地图,其中P代表平原能放一个炮兵,H代表一个山不能放炮兵,每个炮兵可以打到上下左右相距为2的距离。问在炮兵互不伤害的情况下地图上最多能放多少个炮兵。(N &lt;= 100,M &lt;= 10) 思路: 看到数据范围和显然这是一道状压dp的题目,首先我们把...

qq_42911793的博客 264

Ubuntu系统下主板GPU温控pwm风扇

在Linux系统下——以Ubuntu为例,配置主板sys_fan等接口连接pwm温控风扇转速根据NVIDIA GPU温度,为服务器GPU等无主动散热显卡提供散热。

罗思哲的博客 5033

POJ-1185炮兵阵地(状压dp)

题意:POJ1185 N∗MN*MN∗M的图,HHH表示山地,PPP表示平原,山地不能布置炮兵,平原可以布置炮兵,111个炮兵影响的范围是上下左右各两个区域,问放最多能放几个炮兵。 分析: 先将读入的图转化为二进制数pic[i]pic[i]pic[i](这里111表示山地,000表示平原),因为同一行状态最多有102410241024个,而根据题目限制可行状态其实只有707070个左右,所以预处理...

Chase的博客 209

如何下载安装Qt各个版本?(2025-4-28更新)

本文将教您快速获取Qt各版本安装包!妈妈再也不用担心我找不到Qt安装包了!

程序区 5118

从模拟到实战:移远EC800M单片机MQTT接入OneNet全流程解析

本文详细解析了移远EC800M单片机通过MQTT协议接入OneNet平台的全流程,涵盖环境准备、模拟设备搭建、硬件迁移、数据交互调试及性能优化等关键步骤。针对常见问题如AT指令缓冲区溢出、心跳间隔设置等提供实战解决方案,帮助开发者高效实现物联网设备稳定接入。

weixin_29215815的博客 432

【POJ 1185】炮兵阵地(状压DP)

【POJ 1185】炮兵阵地(状压DP) Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 23107   Accepted: 8957 Description 司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队。一个N*M的地图由N行M列组成,地图的每一格

ACMer' 1877

华为OD机试真题 新系统2026-04-15 Python&JS 实现【失灵的键盘】

有一个键盘有2个按键失灵了,按下这些键时会连续输出其他键对应的字符两次。具体如下: 1. 按下j键一次,屏幕上显示uu(两个连续的u);  按下b键一次,屏幕上显示t(两个连续的t) 2. u键和t键是好的,按下u键一次时,屏幕只会显示一次u(正常按键);按下t键一次时,屏幕只会显示一次t(正常按键) 3. 假定屏幕上连续显示两个t一定是按了一次b键,而不是两次t键;假定按键t之后不会紧接着按键b,即tttt转义为两个b,而不可能是tb

MISAYAONE的博客 523

POJ 1185 炮兵阵地(状压dp)

状压dp 状态压缩+dp。把某一个需要用0和1来表示的图看成二进制,然后转成10进制,从而把本来需要一个数组来表示的转态转换为一个数来表示。并且通过位运算优化计算速度,和dp结合起来就是状压dp。我自己的理解,应该是这样子。之前看过一篇数独的题解,那时只知道代码里全是二进制来存储情况,现在想想那好像就是状压dp了吧。 POJ 1185 炮兵阵地 司令部的将军们打算在NM的网格地图上部署他们的炮兵部...

H4ppyD0g的博客 296

MATLAB代码转到FPGA代码

添加完文件之后,需要设置输入的数据类型,设置完之后点击Workflow Advisor。MATLAB文件包含一个功能实现文件和测试文件。对应FPGA中的功能文件和测试文件。然后,将功能文件和测试文件添加到相应位置。然后选择APP中的HDL Coder代码。首先需要编写好MATLAB文件。点击链接,就可以查看你看到的代码。可以自己生成代码的语言类型。

小柚子的博客 3062

游戏客户端开发工程师部分笔试题解析

你可以选择任意连续K个宝石合并成一个新的宝石,新宝石保持在原队列的位置且它的能量值是这K个宝石能量值之和。给定一个幸运值N=0、一堆包含能量值的宝石,你的任务是找到将所有宝石合并成一个宝石的最大幸运值。2.在一个二维网格中,有一个起点S、一个终点E和一个必须经过的中间点M。C++ 的多态性正是通过基类指针或引用调用派生类覆盖的虚函数实现的,这是运行时多态的核心机制。光线追踪带来的抗锯齿效果是其渲染方法的自然结果,而不是一个独立的算法。宝石具体能量值:[10, 7, 2, 6, 5, 11, 8];

博客 3029

poj 1185 炮兵布阵 最详细题解(状压DP经典)

炮兵阵地 Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 26796   Accepted: 10344 Description 司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队。一个N*M的地图由N行M列组成,地图的每一格可能是山地(用"H" 表示),

K键盘里的青春K 6506

Oracle EBS 寄销/VMI(2)-->采购篇

上篇有一部分设置需要建BPA后,将BPA编号与批准的供应商相关联.     本篇主要是讲的内容:一揽子采购协议-->准标采购订单-->收接入库-->子库转移-->创建冲减通知-->'按接收开票' 自动开票程序 1. PO-->采购订单à采购订单 创建一揽子采购协议,确定物料

陈显平的专栏-Oracle EBS 1万+

状压DP_ POJ 1185

状压DP中我觉得重要的不是状态压缩,因为状压DP中的状态压缩思路很固定,重点还是在状态之间的转移!并且在状态压缩中的位运算也很重要,也就是如何处理状态之间的关系(如何用位运算计算出来)例如:给你的是01序列,0表示不能取,1表示可取,并且我们要给出的答案中在给的序列取0的位置不能取1,我们要怎么表示这个情况呢?如果我们选择和上面相同的储存方法是不能很好的判断这个关系的,我们可以将0储存为1,1储存...

A_Bo的博客 222

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

[poj1185]炮兵阵地_状压dp

炮兵阵地 poj-1185     题目大意:给出n列m行,在其中添加炮兵,问最多能加的炮兵数。     注释:n<=100,m<=10。然后只能在平原的地方建立炮兵。       想法:第2到状压dp,++。这题显然是很经典的。设状态dp[i][j][k]表示第i行的状态为j,i-1行的状态为k的最多炮兵数。在转移时,枚举所有的合法炮兵排列(此处的合法数目是根据一行全为平原的时...

weixin_30438813的博客 83

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

POJ 1185 炮兵阵地 (状压DP)

www.cnblogs.com/shaokele/ POJ 1185 炮兵阵地 (状压DP)   Time Limit: 2 Sec   Memory Limit: 64 MB Description   司令部的将军们打算在NM的网格地图上部署他们的炮兵部队。一个NM的地图由N行M列组成,地图的每一格可能是山地(用"H" 表示),也可能是平原(用"P"表示),如下图。在每一格平原地形上最多可...

weixin_30414635的博客 116

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

poj 1185(状压dp)

题目链接:http://poj.org/problem?id=1185 思路:状态压缩经典题目,dp[i][j][k]表示第i行状态为j,(i-1)行状态为k时最多可以放置的士兵个数,于是我们可以得到递推方程:dp[i][j][k]=max(dp[i][j][k],dp[i-1][k][l]+num[j]);(其中num[j]为该状态下可以放置的士兵的个数。至于具体怎么分析,这位大牛讲的很清楚:

几百个教授的专栏 354

POJ 1185 动态规划 状压DP 经典好题

POJ 1185 / OpenJudge 1185 状态压缩DP,经典好题。 是POJ 3254 的拓展题。首先借鉴POJ 3254的经验,我们发觉,当前的可以选择的情况和上面两行有关,所以状态必须要定义成为dp[i][U][V],表示在i行进行U的位置选取(编码为二进制),其上一行的选取是...

chuizhuanrun0253的博客 225

[状压dp]POJ1185 炮兵阵地

中文题 题意不再赘述 对于中间这个“P” 根据dp的无后效性 我们只需考虑前面的 就变成了 只需考虑: 也就是状压前两行 具体与HDOJ的4539类似: 看HDOJ 4539 仅仅是共存状态的判断不同 1 //#include <bits/stdc++.h> 2 #include <cstdio> 3 #in...

aicheng4794的博客 139

poj1185 炮兵布阵 状压dp

题目链接:http://poj.org/problem?id=1185 题意: n∗mn*mn∗m 的矩阵, 字符PPP表示空地(能放炮台), 字符HHH表示山地(不能放炮台),每个炮台的攻击范围是它上下左右两格之内的所有格子(见题图),问最多能摆几个炮台。 题解:状压dp。 首先分析,炮台的约束条件:上下左右两格内不能有炮台。 HHH表示 1,为不能放的点,PPP表示0,能放的点。将每一行的字符...

WayJasy的博客 188

POJ 1185 炮兵布阵 状压DP

链接:http://poj.org/problem?id=1185 题意:一个地图上有两种地形,H和P,P上可以放一个炮,攻击范围是上下左右各两格,问的是最多可以再地图上放多少个炮。行N 思路:因为上下左右各两格内不能放置炮,所以每一行的状态数从2^10减少到60种。状态转移方程为:dp[i][j][k]=max(dp[i-1][k][l]+bb[j])。dp[i][j][k]表示在第i行状

看曙光 1099

POJ1185(状压dp)

炮兵阵地 Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 29083   Accepted: 11275 Description 司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队。一个N*M的地图由N行M列组成,地图的每一格可能是山地(用"H" 表示),也可

creatorx的博客 312

POJ 1185 炮兵阵地 状压dp

题目链接:POJ 1185 炮兵阵地 题目 Description 司令部的将军们打算在NM的网格地图上部署他们的炮兵部队。一个NM的地图由N行M列组成,地图的每一格可能是山地(用"H" 表示),也可能是平原(用"P"表示),如下图。在每一格平原地形上最多可以布置一支炮兵部队(山地上不能够部署炮兵部队);一支炮兵部队在地图上的攻击范围如图中黑色区域所示: 如果在地图中的灰色所标识的平原上部署一支炮...

weixin_44273380的博客 226

poj1185(状压dp)

http://poj.org/problem?id=1185 终于看懂了一道状压dp的题目,开启新世界,多做几道状压dp的题目吧!

Gloria971111的博客 331

POJ 1185 状压DP

题意中文题目,不解释题解类似于POJ3254。依然是那几个流程。首先初始化,得到每一行可能的状态集合。然后读取地图,初始化DP数组。DP[i][j][k]代表当前为i层,当前状态为k上一层状态为j。dp[i][k][j]=max(dp[i][k][j],dp[i-1][s][k]+num[j])(K代表第I-1层状态,J代表第I层状态,S代表第I-2层状态)代码#include <iostream>

zhenlingcn的博客 629

POJ 1185 炮兵阵地(简单状压dp)

一道简单的状压dp看了别人的思路还做了好久,有那么一段时间很绝望,哎 POJ - 1185 和poj3254很像的一道题,设平原为1山地为0,第i行只和i-1与i-2行状态有关,所以我们开一个三维数组dp[i][j][k]表示第i行为状态k,第i-1行为状态j时的情况,首先预处理,同一行的1中间最少隔两个0,这个运用位运算很容易实现,再就是计算合理的情况中,每一种情况中有几个位置可以放炮台,就...

STOP 239
上一篇: CF 2A
下一篇: poj 3254 状压DP
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值