当前位置: 首页 > news >正文

P4401 [IOI 2007] Miners 矿工配餐 题解

P4401 [IOI 2007] Miners 矿工配餐 题解

题目传送门

我的博客

前言

大爬好啊!我最喜欢大爬了!

思路

这道题,当看到“以使得两个煤矿的产煤量的总和最大。”的时候就想到是DP。具体怎么实现呢?

我们令 \(dp_{i,a_1,a_2,b_1,b_2}\) 表示当前运送第 \(i\) 个食品车,煤矿 \(1\) 前两次运送的食品类型分别为 \(a_1,a_2\),煤矿 \(2\) 前两次运送的食品类型分别为 \(b_1,b_2\) 的最大值。

那么初始状态即为 \(dp_{0,0,0,0,0}=0\)

然后你兴高采烈的写完了这个代码,发现MLE了!

再一看内存限制,\(17.58MB\)

于是你发现其实每次的 \(dp_i\) 只与 \(dp_{i-1}\) 有关。所以可以采用滚动数组的形式减少空间。

时间复杂度 \(O(n \times 4^4)\)

代码(压行版)

const int N=1e5+10;
const int INF=0x3f3f3f3f;
int n,a[N],dp[5][5][5][5][5],ans;
int calc(int x,int y,int now){//根据题意进行计算本次运送食品,煤的产出单位
//这个就不压行了,要不太难看 if(!x&&!y) return 1;if(!x){if(y==now) return 1;return 2;}if(x==y&&x==now) return 1;if(x!=now&&y!=now&&x!=y) return 3;return 2;
}
signed main(){n=Read();for(int i=1;i<=n;i++){char c;c=getchar();if(c=='M') a[i]=1;if(c=='F') a[i]=2;if(c=='B') a[i]=3;}memset(dp,-INF,sizeof(dp));//赋初值! dp[0][0][0][0][0]=0;//初始状态 for(int i=1;i<=n;i++) for(int a1=0;a1<=3;a1++) for(int a2=0;a2<=3;a2++) for(int b1=0;b1<=3;b1++) for(int b2=0;b2<=3;b2++){ if(dp[(i-1)%2][a1][a2][b1][b2]==-INF) continue;//如果没有上一个状态,不更新 int t1=0,t2=0;t1=dp[(i-1)%2][a1][a2][b1][b2]+calc(a1,a2,a[i]);//这个食品车给煤矿 1 t2=dp[(i-1)%2][a1][a2][b1][b2]+calc(b1,b2,a[i]);//这个食品车给煤矿 2 dp[i%2][a2][a[i]][b1][b2]=max(dp[i%2][a2][a[i]][b1][b2],t1);dp[i%2][a1][a2][b2][a[i]]=max(dp[i%2][a1][a2][b2][a[i]],t2);} for(int a1=0;a1<=3;a1++) for(int a2=0;a2<=3;a2++) for(int b1=0;b1<=3;b1++) for(int b2=0;b2<=3;b2++) ans=max(ans,dp[n%2][a1][a2][b1][b2]);printf("%d\n",ans);return 0; 
}
http://www.jsqmd.com/news/34276/

相关文章:

  • 第一周--2:Ubuntu24.04虚拟机环境准备与安装
  • 代码重构 - 泛型继承与安全检查 - 泛型递归约束 - Curiously Recurring Template Pattern (CRTP)
  • 2025.11.7——2蓝
  • 中小企业数字化转型中的常见陷阱及规避策略
  • SMC串行传输系统通过Profinet转EtherCAT网关进行连接的配置案例
  • PHP检查和修复隐式可空类型的问题
  • 实用指南:零基础学AI大模型之解析器PydanticOutputParser
  • 鸿蒙应用开发实战:从零构建往来记人情管理应用之回礼模块实现
  • ubuntu 安装启动卸载向日葵
  • 安装btop
  • AI应用开发新范式!基于 RDS Supabase 服务高效构建轻量级应用,赢取淘公仔、加湿器等好礼!
  • 为什么不能使用均方差做为分类问题的损失函数?
  • odoo18-半成品入线边库、成品入成品库-教程
  • RK3588 上的 LLM(三):板端部署 RKLLM 并进行大模型推理(以 RK3588 为例)
  • 深入解析:OpenCV(二):加载图片
  • 2025年11月水质分析仪靠谱供应商:四参数/多参数水质分析仪知名品牌采购推荐
  • 2025 年广州漏水维修公司最新推荐排行榜:广东恒久等实力企业深度解析,助力选靠谱服务商广东专业漏水维修/广东屋面漏水维修公司推荐
  • 2025 年雷达流量计厂家最新推荐榜:综合实力、技术优势与口碑测评精选明渠雷达流量计/多普勒雷达流速流量计公司推荐
  • 20台服务器互相免密登录的配置方法
  • 2025 年广东防水补漏公司最新推荐排行榜:聚焦广州东莞佛山等地屋面卫生间地下室补漏优质企业广州地下室/佛山卫生间防水补漏公司推荐
  • FPS24 个人题解
  • 2025年防爆正压柜订制厂家权威推荐榜单:防爆配电柜/防爆配电箱/防爆检测箱源头厂家精选
  • 2025年气流粉碎机订制厂家权威推荐榜单:气流粉碎分级机/气流超微粉碎机/气流磨粉机源头厂家精选
  • 2025年11月有哪些值得推荐的洗地机品牌?友望云朵2.0实力领衔五大品牌
  • Nov 7
  • 动态规划 - 背包困难
  • 构建可用于生产环境的AI智能体
  • 2025 年 11 月食堂承包公司权威推荐榜:专业饭堂承包方案,大型食堂承包商服务实力与客户口碑深度解析
  • 2025 年 11 月农产品配送公司权威推荐榜:蔬菜、新鲜、生鲜、食堂农产品配送中心,专业高效与品质保障口碑之选
  • cdq分治 学习哔叽