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

题解:洛谷 P2214 [USACO14MAR] Mooo Moo S

【题目来源】

洛谷:[P2214 USACO14MAR] Mooo Moo S - 洛谷

【题目描述】

FJ 的 \(N(1\le N\le100)\) 个牧场都是沿着一条笔直的道路分布的。每一个牧场可能有许多种品种的奶牛;FJ 拥有 \(B(1\le B\le20)\) 个不同品种的奶牛,而第 \(i\) 种奶牛的叫声音量为 \(V_i(1\le V_i\le100)\)。此外,有一股强风沿着道路吹来,将牛的叫声从左往右传递,如果某个牧场的总音量是 \(x\),那么它将传递 \(x-1\) 的音量到右边的下一个牧场。这就意味着,一个牧场里的总音量是处在该牧场的奶牛所发出的音量加上左边前一个牧场的总音量 \(-1\)。数据保证,每一个牧场内由该牧场所有奶牛所发出的总音量最多为 \(10^5\)

【输入】

\(1\) 行:两个用空格分隔的整数 \(N\)\(B\)
\(2 \sim B+1\) 行:第 \(i+1\) 行包含整数 \(V_i\)
\(B+2 \sim B+N+1\) 行:第 \(B+i+1\) 行表示在第 \(i\) 个牧场内所能监听到的总音量。

【输出】

共一行,即 FJ 拥有的最小奶牛数量。

如果 FJ 不可能拥有一种牧场配置满足给出的条件,输出 \(-1\)

【输入样例】

5 2
5
7
0
17
16
20
19

【输出样例】

4

【算法标签】

《洛谷 P2214 Mooo Moo》 #背包DP# #栈# #USACO# #2014#

【代码详解】

#include <bits/stdc++.h>
using namespace std;const int N = 100005;  // 最大容量
int n, B;  // n: 关卡数量,B: 药水类型数量
int a[105], b[105], dp[N], v[25];  // a: 原始能量需求,b: 处理后的能量需求,dp: 动态规划数组,v: 药水能量值int main()
{cin >> n >> B;  // 读入关卡数量和药水类型数量// 读入每种药水提供的能量值for (int i = 1; i <= B; i++){cin >> v[i];}// 读入每个关卡的能量需求for (int i = 1; i <= n; i++){cin >> a[i];}// 计算每个关卡实际需要的能量for (int i = 1; i <= n; i++){if (a[i - 1] > 0)  // 如果前一个关卡有剩余能量{b[i] = a[i] - (a[i - 1] - 1);  // 当前关卡需要额外补充的能量}else {b[i] = a[i];  // 否则需要全部能量}}// 初始化动态规划数组为无穷大memset(dp, 0x3f, sizeof(dp));dp[0] = 0;  // 获得0能量的成本为0// 完全背包:计算获得各种能量值所需的最少药水数量for (int i = 1; i <= B; i++){for (int j = v[i]; j <= 100000; j++){dp[j] = min(dp[j], dp[j - v[i]] + 1);}}int ans = 0;// 计算所有关卡所需的总药水数量for (int i = 1; i <= n; i++){if (dp[b[i]] != 0x3f3f3f3f)  // 如果该能量值可达{ans += dp[b[i]];}else  // 如果不可达,输出-1并结束{cout << -1 << endl;return 0;}}cout << ans << endl;  // 输出总药水数量return 0;
}

【运行结果】

5 2
5
7
0
17
16
20
19
4
http://www.jsqmd.com/news/392110/

相关文章:

  • Python基于Android的电竞社区论坛交流系统 小程序
  • 金兰桥:岐金兰AI元人文思想成长全记录(2025.8-2026.2)——基于博客园核心博文溯源
  • Python 微信小程序的校园二手商品交易生活信息服务系统
  • Python基于Android应用平台的医院病房住院移动查房系统 小程序
  • Python 微信小程序的学生评教 教学质量反馈系统
  • Python 微信小程序的学科竞赛作品管理系统
  • Enhancing Building Semantics Preservation in AI Model Training with Large Language Model Encodings
  • 导师又让重写?8个降AI率软件降AIGC网站:本科生必看的降重测评与推荐
  • Emergent Morphing Attack Detection in Open Multi-modal Large Language Models
  • UMAMI 如何做 私有化部署 在winserver 2022 上
  • 横评后发现,一键生成论文工具更适配本科生,千笔·专业论文写作工具 VS 灵感风暴AI
  • KingbaseES数据库MongoDB兼容模式实战:协议级兼容实现业务平滑迁移深度解析:原理、实战与踩坑记录
  • 苏州无人机培训破局:龙埔航空‘全链路实战赋能’方法论如何解决‘有证不会飞’难题? - 速递信息
  • 2026塑料药瓶深度选型指南:智能溯源与合规安全下的匹配策略 - 速递信息
  • 2026阀门电动装置厂家推荐:常州天勤等5家综合实力品牌测评 - 速递信息
  • 2026年质感岩板选华岩品致:从肌理到交付的全维升级方案 - 速递信息
  • 新生儿纸尿裤排行榜10强|2026年度专业选购指南 - 速递信息
  • Claude Sonnet 4.6空降!Office性能干翻旗舰模型,软件股哀嚎一片
  • 分账系统选型避坑指南:持牌机构VS四方系统,企业该如何选择? - 速递信息
  • Moxan工业服介绍
  • 线上A-Level课程辅导选购指南:不同学习目标下的机构对比与产品解析 - 品牌测评鉴赏家
  • 无人机全自动巡田分析,输入航拍图,处理,拼接+长势分析,输出,农田健康地图。
  • 剪映专业版实战:用百度AI制作《三月里的小雨》养生音乐MV
  • 2026年不锈钢天沟厂家大盘点,选对不踩雷, 304 不锈钢冷热轧板材/排水系统/不锈钢角钢,不锈钢天沟生产加工哪个好 - 品牌推荐师
  • 深入解析:长沙西贝莜面村的门店都分布在哪些位置?纯Java实现一个POI下载器一探究竟
  • 从PHP后端转Java后端代码 实现获取当前登录信息 - 教程
  • 基于遗传优化算法优化蚁群算法关键参数。 Ga-ACO,解决蚁群优化受参数影响较大的问题,将阿尔...
  • LLM大模型开发核心-LangChain框架实战
  • 美通卡闲置别闲!回收变现解锁生活新可能 - 京顺回收
  • eScan杀毒软件供应链攻击剖析和解读:一次针对信任链的精准打击