本题按子阵基准发电量做一次全局比例调整,再对结果向上取整。
max_capacity、min_capacity、base_generation,记基准数组 base,并计算 total = sum(base)、min_total = sum(min)。total > station_capacity,总缩减量为 total - station_capacity。子阵 i 的可缩减空间为 base[i] - min[i],按空间占比分配缩减量;若可缩减空间之和为 0,说明全部已到下限仍超标,返回全 0。total < min_total,总增加量为 min_total - total。子阵 i 的可放大空间为 max[i] - base[i],按空间占比分配增加量;若可放大空间之和为 0,返回全 0。ceil 得到整数答案。某地面光伏电站按区域划分为多个子阵。每个子阵的发电能力有明确的约束:
系统需要根据这些约束,预测整个电站的发电量。预测策略是:
当总发电量超过电站容量时,按各子阵的可用缩减空间比例分配缩减量
可用缩减空间 = base_generation − min_capacity;表示该子阵还能减少多少发电量而不低于下限
缩减量按此比例分配:缩减量i = 总缩减量 × (可用缩减空间i / 总可用缩减空间)
当总发电量低于总下限时,按各子阵的可用放大空间比例分配增加量
可用放大空间 = max_capacity - base_generation;表示该子阵还能增加多少发电量而不超过上限
增加量按此比例分配:增加量i = 总增加量 × (可用放大空间i / 总可用放大空间)
sub_arrays: 子阵列表,每个子阵是一个三元组[max_capacity, min_capacity, base_generation],均为整数
station_capacity: 电站总容量上限(整数)
返回一维数组,每个元素是对应子阵的预测发电量(向上整数) 如果无法在约束范围内满足总容量要求,返回全 0 数组
最终预测发电量必须满足:min_capacity≤predicted_generation≤max_capacity
输入
[[1000, 800, 900],[1200, 900, 1100],[800, 600, 700]],2800
输出
[900,1100,700]
输入
[[1000, 800, 800],[1200, 900, 900],[800, 600, 600]],2600
输出
[800,900,600]
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册