#19255. 线粒体的能量预算
线粒体的能量预算
你好,我是阿西莫夫。
在细胞生物学中,线粒体(Mitochondria) 被称为细胞的“动力工厂”,它通过呼吸作用产生 ATP(三磷酸腺苷)。ATP 是生命活动的“通用货币”。
但是,细胞内的 ATP 存量并不是无限的。细胞每时每刻都面临着无数的需求:主动运输离子、合成蛋白质、进行细胞分裂、肌肉收缩……每一个动作都要消耗 ATP。
这就构成了一个最经典的 “资源分配问题”:在预算(ATP总量)有限的情况下,如何选择生理活动,使得细胞获得的生存效益最大化?
这正是 0/1 背包问题(0/1 Knapsack Problem) 的完美映射。
[OI 题库] 线粒体的“能量预算” (The Cell's Energy Budget)
题目背景
“ATP 是生命的硬通货,每一分子都必须花在刀刃上。”
你是一个细胞的“首席执行官”。你的线粒体刚刚通过有氧呼吸产生了一批 ATP,总能量值为 (Capacity)。
现在,细胞核下达了 项紧急的生理任务(如合成某种酶、泵出钠离子等)。
- 第 项任务需要消耗 的 ATP。
- 第 项任务完成后,能为细胞带来 的“生存价值”(Value)。
- 每一项任务要么完全不做,要么做且仅做一次(0/1 选择)。
请你制定一个能量分配方案,在不超出 ATP 总预算的前提下,使细胞获得的生存价值总和最大。
题目描述
输入 ATP 总量 和任务数量 。 接下来输入 个任务的消耗 和价值 。 请输出最大可能的生存价值。
输入格式
第一行包含两个整数 。
- :ATP 总预算(背包容量)。
- :任务数量(物品数量)。
接下来 行,每行包含两个整数 。
- :第 项任务消耗的 ATP。
- :第 项任务的生存价值。
输出格式
一个整数,表示最大的生存价值总和。
样例数据
样例 1
10 4
2 3
3 4
4 5
5 6
13
解析: 总 ATP = 10。
- 方案 A:选任务 1, 2, 3。消耗 。价值 。
- 方案 B:选任务 1, 2, 4。消耗 。价值 。
- 方案 C:选任务 3, 4。消耗 。价值 。 最大价值为 13。
样例 2 (大任务)
5 3
10 100
10 100
10 100
0
解析:所有的任务消耗都超过了总预算 5,一个都做不了。
数据范围
- (ATP 总是有限的)
- 考察点:0/1 背包动态规划(一维数组优化)。