line_A_cost是生产线A的代价;
line_B_cost是生产线B的代价
AB_cost是从生产线A转到生产线B的代价
BA_cost是从生产线B转到生产线A的代价
代码如下:
#include <stdio.h>
#include <vector>
void ProductionLine(std::vector<int>& line_A_cost, std::vector<int>& line_B_cost,
std::vector<int>& AB_cost, std::vector<int>& BA_cost) {
if (line_A_cost.size() != line_B_cost.size() ||
AB_cost.size() != BA_cost.size() ||
line_A_cost.size() - AB_cost.size() != 1 ||
line_A_cost.size() < 1) {
return;
}
std::vector<char> memo_A;
std::vector<char> memo_B;
std::vector<int> cost_A(1, line_A_cost[0]);
std::vector<int> cost_B(1, line_B_cost[0]);
int min_cost = 0;
for (int i = 1; i < line_A_cost.size(); ++i) {
if ((cost_A[i - 1] + line_A_cost[i]) < (cost_B[i - 1] + BA_cost[i - 1] + line_A_cost[i])