poj2430 状态压缩DP

驱动钛丝(SMA)的应用(5)汽车腰托气阀常见问题及解决方案 财哥在前段时间发布的《驱动钛丝(SMA)的应用(1)汽车腰托支撑按摩气阀模块》一文,引发了很多企业的拜访和交流。 目前很多厂家已经启动或正在进行相关研发,同时也遇到了诸如:钛丝选型、驱动位移、响应设计、温度控制、力量设计、点动滞后、铆接工艺、量化生产等问题。 阅读详情

很早之前就看了这题,觉得写起来比较麻烦,放了一段时间今天还是忍不住又看了一遍,调了一下午感觉不会再AC了,吃了晚饭回来听歌小情歌,改了初始化然后就过了。。。过了,有点受宠若惊可怜。


ACcode:

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int NS=1100;
const int INF=1<<30;

struct node
{
    int r,c;
    bool operator < (const node cmp) const{
        return c<cmp.c;
    }
}a[NS];

int n,m,k,b;
int mix,tmp,pre,now,res;
int h[NS],s[NS],dp[2][NS][4];

void init(int f)
{
    for (int i=0;i<=k;i++)
    for (int j=0;j<4;j++)
    dp[f][i][j]=INF;
}

int Min(int xa,int xb){ return xa<xb?xa:xb; }

int main()
{
    while (~scanf("%d%d%d",&n,&k,&b))
    {
        for (int i=0;i<n;i++)
        scanf("%d%d",&a[i].r,&a[i].c);
        sort(a,a+n),init(0);
        pre=1,now=0,m=-1,res=INF;
        for (int i=0;i<n;i++)
        if (i==0||(a[i].c!=a[i-1].c))
            h[++m]=a[i].c,s[m]=a[i].r;
        else s[m]+=a[i].r;
        dp[now][2][0]=dp[now][1][3]=2;
        if (s[0]!=3)dp[now][1][s[0]]=1;

        for (int i=1;i<=m;i++)
        {
            pre^=1,now^=1,init(now);
            for (int j=0;j<=k;j++)
            {
                tmp=h[i]-h[i-1];
                mix=Min(Min(dp[pre][j][0],dp[pre][j][1]),Min(dp[pre][j][2],dp[pre][j][3]));

                dp[now][j+2][0]=Min(dp[now][j+2][0],mix+2);
                dp[now][j+1][3]=Min(dp[now][j+1][3],mix+2);

                dp[now][j][0]=Min(dp[now][j][0],dp[pre][j][0]+2*tmp);
                dp[now][j][3]=Min(dp[now][j][3],dp[pre][j][3]+2*tmp);

                if (s[i]==1||s[i]==2)
                dp[now][j+1][s[i]]=Min(dp[now][j+1][s[i]],mix+1),
                dp[now][j][s[i]]=Min(dp[now][j][s[i]],Min(dp[pre][j][s[i]]+tmp,dp[pre][j][0]+tmp));
                dp[now][j+1][0]=Min(dp[now][j+1][0],Min(dp[pre][j][1]+1+tmp,dp[pre][j][2]+1+tmp));
            }
        }
        for (int i=0;i<=k;i++)
        for (int j=0;j<4;j++)
        res=Min(res,dp[now][i][j]);
        printf("%d\n",res);
    }
    return 0;
}



FPGA SoC 的 RISC-V 固件开发全攻略(三):RISC-V MCU 启动流程深入解析 本文是《FPGA SoC 的 RISC-V 固件开发全攻略》专栏第 3 篇。上一篇:第 2 篇《开发环境搭建与工具链避坑》 | 下一篇:第 4 篇《RISC-V 与 ARM Cortex-M 开发差异对比》 阅读详情

相关推荐

北航机器学习2020-2021秋季学期期末试题回忆

北航机器学习2020-2021秋季学习期末试题回忆 fanjn, zhangyy, yuanq, wanggq, weixy, anh, wangyy, zhouxy, likc1 【注:考试使用纯白的A3答题纸,考试时间2h,各位同学可以自行模拟考试】 此试卷1-8题为10分,第9题为20分 1.2077年人类发射近地卫星,一共发射800颗,根据大小和轨道远近,有着不同的宜居条件(+表示宜居),有以下表格(数字八九不离十,其他属性什么的原题就是交替的) 数量 大小 轨道 是否宜居 30

weixin_45262065的博客 7610

POJ 2430 Lazy Cows 笔记

N头牛,建 K 个矩形牛舍,2*B 的牧场,给出每头牛的坐标。求牛舍的最小面积。

woniupengpeng的专栏 332

cs188Inference in Bayes Nets(贝叶斯网络的推理)

cs188Inference in Bayes Nets贝叶斯网络的推理Question1(3 points):Bayes Net StructureQuestion2(1 points):Bayes Net ProbabilitiesQuestion 3(5 points):Join FactorsQuestion4(4 points):EliminateQuestion5(4 points):NormalizeQuestion 6(4 points):Variable EliminationQuesti

weixin_46582817的博客 1673

poj 2430 Lazy Cows 状压dp

这个题目还是比较容易想到用状态dp来解的,但是状态的转移比较麻烦,并且加上有离散化,比较容易出错。 dp[i][j][k]表示覆盖前i列,用了j个矩形,当前覆盖状态为k的最优解。 k==1:覆盖1号格子 k==2:覆盖2号格子 k==3:覆盖1,2号格子,并且为同一个矩形 k==4:覆盖1,2号格子,并且为不同矩形 那么转移的时候就需要考虑,新建矩形,或者直接把当前矩形边长延伸。转移种

yrleep的专栏 1450

基于OpenAI Agents构建多智能体工作流:从原理到实战

多智能体系统(Multi-Agent System)是人工智能领域的重要分支,它通过多个智能体(Agent)的协作与交互,解决单一智能体难以处理的复杂任务。其核心原理在于将任务分解、分配与协调,每个智能体具备特定能力,通过通信机制实现信息共享与决策协同。在工程实践中,多智能体框架的价值在于提升任务处理效率、增强系统鲁棒性,并支持模块化开发。典型的应用场景包括自动化工作流编排、复杂问题求解以及人机协同交互。本文以OpenAI Agents SDK为例,深入探讨如何利用其提供的智能体(Agent)、会话(Ses

weixin_28725959的博客 603

【问题解决】Python 运行报错 `ModuleNotFoundError` 全网最全解决方案,一文搞定所有导包问题

本文全面解析Python中常见的ModuleNotFoundError和ImportError问题,提供从基础到高级的解决方案。文章首先分析问题原因,包括模块未安装、环境不一致、路径问题等,然后给出7种解决方案:安装缺失模块、检查Python环境、使用虚拟环境、添加搜索路径、相对导入、setup.py安装本地包和使用__init__.py。针对Jupyter Notebook、Docker容器等常见场景提供专门解决方案,并推荐使用requirements.txt、pipenv等预防措施。最后分享调试技巧,帮

博客 914

POJ 2430 状压DP

题意: 思路: 先预处理出所有格子的statement statement=1–>只有上边的格子被覆盖 statement=2–>只有下边的格子被覆盖 statement=3–>上下都被覆盖 f[i][j][k]表示状态为i时,前j个地方的奶牛,盖k座房子 最少盖住的格子 i有四种情况 i=1代表只有上边的格子被覆盖 i=2代...

weixin_34090562的博客 163

NVIDIA Jetson之交叉编译工具

参考:http://bbs.xfyun.cn/forum.php?mod=viewthread&amp;tid=33630 用TX2做红外热成像仪的识别,厂家不提供源码,只能提供对应版本的SDK,但是需要我们自己提供交叉编译器 由于之前没有做过交叉编译相关工作,对编译工具不太了解,因此查找相关资料学习下 交叉编译知识 一般来说,针对嵌入式平台的开发有两种编译模式:原生编译和交叉编译。原生编...

ZONGXP的博客 8383

poj 2430 Lazy Cows

题目链接:http://poj.org/problem?id=2430 题目大意及思路:用最多k个矩形覆盖所有的牛,且要使总面积最小,做法是将两行压缩成一行并进行离散化,对于每一列有四种状态,而在dp的时候也有四种状态,1、只覆盖上面,2、只覆盖下面,3、上下用一个矩形覆盖,4、上下用两个矩形覆盖。这样就可以写出转移方程了。 #include&lt;stdio.h&gt; #include&l...

java开发指南博客 【转载】 170

066、AR 应用中虚拟物体漂移抖动?IMU 融合 + 光流追踪的视觉里程计优化方案

AR应用中虚拟物体漂移抖动优化方案 摘要:针对AR应用中虚拟物体漂移抖动问题,提出一种IMU融合与光流追踪的视觉里程计优化方案。关键点包括:1) 采用IMU预积分技术处理高频噪声,通过中值积分计算帧间相对运动约束;2) 使用金字塔LK光流追踪像素运动,通过中值偏差法剔除异常值;3) 构建10帧滑动窗口的紧耦合优化框架,将IMU预积分约束和光流重投影约束联合优化。实验表明,该方法有效解决了时间戳未对齐导致的"跳舞箭头"现象,在手机端实现稳定30fps的AR定位精度,漂移误差降低至厘米级。特别提醒:IMU与视觉

ai技术增长的博客 161

【32】软考软件设计师——算法题(一):分治法与动态规划深度精讲|下午第4题常考满分攻略

本文是《软件设计师·50讲通关|从零基础到工程师职称》专栏第32篇,正式开启**模块四:应用技术(下午题)算法大题专项**,聚焦下午第4道高频必考大题核心两大算法:分治法与动态规划。全文超4000字深度拆解两大经典算法的底层核心思想、算法策略识别技巧、递归边界设计、状态转移方程推导,全覆盖代码填空高频考点、时间复杂度分析、经典题型解题套路;配套可直接默写的递归代码模板、DP状态设计范式、真题完整填空案例,彻底解决考生分不清分治与DP、递归边界写错、状态转移推不出、复杂度算不对四大核心痛点。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 637

poj2430

【题意】 有n头牛在2*b的牧场上,只可以修建k(k的最小面积 【输入】 第一行n、k、b 【输出】 最小面积 状压dp 离散一下,用0~3表示这一列的状态 然后dp,f[i][j][k]表示第i列用了j个牛棚,状态为k的最小面积 k分为0~4,表示 0:什么也没有 1:上面一格被覆盖 2:下面一个被覆盖 3:两格被同一个矩形覆盖 4:两格被不同的矩形覆盖

weixinding的专栏 1079

全网详细解决Client does not support authentication protocol requested by server;consider upgrading Mysql c

全网详细解决1251 - Client does not support authentication protocol requested by server; consider upgrading Mysql client。

念兮为美 5478

POJ2430 Lazy Cows【状压DP+离散化】

POJ - 2430传送门   题意:有n头牛在2*b的牧场上,只可以修建k(k的最小面积。 分析:用dp[i][j][l]表示前i列的牛都铺满,用去啦j个帐篷,状态为l,的最小面积。 l==0,表示没有铺 l==1,表示铺啦第一格 l==2,表示铺啦第二格 l==3,表示铺啦一二格,且不在一个矩形里。 l==4,表示铺啦一二格,且在一个矩形里。 ACcode

tystrwor的博客 325

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

POJ 2430 Lazy Cows 状压DP

状压DP

NeighThorn的博客 454

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

状态压缩DP基础题解题报告

POJ 2411 铺砖块最基本的题。设DP[i][state]为贴到第i行,前一行的状态为state时的方法数,枚举两层的状态来转移,先判断转移是否合法(即保证上一层是贴满的)。

= = 1682

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

POJ 2430(状态设计类)

本题的二维状态是比较好想的吧, 直接定义d[ i ][ j ] 为当前位置为i还有j个栅栏可用时的最小代价。 首先按位置排序。 状态转移时需要从当前出发  若  k>=1 d[ i ][ j ]可以开一个宽为1栅栏 最多将从i开始到最后一个和 i在一排j放到一个栅栏中,或者开一个宽度为2的栅栏,可延伸到最后 若  k>=2 d[ i ][ j ]可同时 开两个栅栏。 但该算法时间达

playwfun的专栏 541

poj-2430 Lazy Cows ****

1 //参见 http://hi.baidu.com/billdu/blog/item/6315841769e6905ff3de325e.html (有图有真相...) 2 //... 3 // 4 //dp[i][j][k]表示到达第i列,已经建设好了j个围栏,最后一列状态是k的情况下框住的最小面积 5 // 6 //另外, 我这个代码是 顺推(按黑书的分类),也就是基于当前状...

weixin_34185560的博客 162

SDUST SingleTest C(15.4.4)

Problem A:  POJ 2430 状态压缩DP,并不懂是什么gui,以后更新。   Problem B: POJ 2431 题意: 有n个加油站,每个加油站的加油的油量有限,距离终点都有一个距离。一个卡车的油箱无限,没走一个单元要消耗一单元的油,问卡车到达终点的最少加多少次油。 解题思路: 贪心+优先队列。卡车走得越远越好,要是不能到达终点,就选择经过的油站里面,加油量最多的

chaxer的专栏 311

Assignment 4: Dynamic Programming (DP)

2663 Tri Tiling (1) 1163 The Triangle (1) 1160 Post Office (2) 2033 Alphacode (2) 1159 Palindrome (3) 1050 To the Max (4) 2127 Greatest Common Increasing Subsequence (6)

YogyKwan的远行 866

状压dp

//https://blog.youkuaiyun.com/albertluf/article/details/80338378 #include&amp;amp;amp;amp;amp;amp;amp;amp;lt;cstdio&amp;amp;amp;amp;amp;amp;amp;amp;gt; #include&amp;amp;amp;amp;amp;amp;amp;amp;lt;algorithm&amp;amp;amp;amp;amp;amp;amp;amp;gt; #inc

xumingyang0的博客 231

poj2430 2010.7.31

Lazy Cows Time Limit: 1000MS  Memory Limit: 65536K Total Submissions: 1300  Accepted: 467   Description   Farmer John regrets having appliedhigh-grade fertilizer to his pastures since the gras

Batman_的博客 427

POJ-2430:Lazy Cows

POJ-2430:Lazy CowsFarmer John regrets having applied high-grade fertilizer to his pastures since the grass now grows so quickly that his cows no longer need to move around when they graze. As a result, the cows have grown quite large and lazy... and winter

Mitsuha_的博客 648

POJ 2430 Lazy Cows

Lazy Cows Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 1897   Accepted: 718 Description Farmer John regrets having applied high-grade fertilizer to hi

cmonkey 1446

Poj2430:Lazy Cows 解题思路&代码

这道题的大意是有一个2*B(1=<B<=15000000)的大矩阵,该矩阵中有N(N<=1000)头奶牛(即大矩阵中有指定的N个点)。现在想用K个小矩阵去覆盖这全部N个点,求在保证N个点被完全覆盖的情况下K个小矩阵的面积的最小值。 B很大,而N很小,离散化的处理方式是很自然的。然后用动规来做。具体的思路都写在代码注释里了。这里就直接贴代码了。

lygpkulxy的博客 471

找啊找啊找GF~背包拓展

出处:RQNOJ 57   开始时没有考虑MM最大值,果断Wrong,后面一分析,发现状态转移方程不对,立马改了过来,增加了一个计算数量的数组,最后输出再加个判断就AC了。网上有些优化的代码看不懂就没去理了,有兴趣的可以去研究一下。   #include #include #define min(a,b) a<b?(a):(b) #define max(a,b) a>b?(a):(b

丿Smilē 丶晨星灬 1539
上一篇: poj2836 状态压缩~矩形覆盖
下一篇: 位运算知识点
丿Smile灬晨星
博客等级 码龄14年 46粉丝 235原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值