动态规划1——之工厂生产线问题
来源:互联网 发布:赌nba的软件 编辑:程序博客网 时间:2024/04/28 19:07
#include <iostream>
#define LINELENGTH 6
int line_1[] = {7, 9, 3, 4, 8, 4} ;
int line_2[] = {8, 5, 6, 4, 5, 7} ;
int time_1[] = {2, 2, 1, 2, 2, 1} ;
int time_2[] = {4, 2, 3, 1, 3, 4} ;
int best_line_1[6] = {0} ;
int best_line_2[6] = {0} ;
int short_time_line_1[6] = {0} ;
int short_time_line_2[6] = {0} ;
int time_line1_to_end = 3 ;
int time_line2_to_end = 2 ;
int lastStep ;
int lastTime;
void PrintLine(int stationNumber,int line )
{
if ( stationNumber > 0 ) {
if ( line == 2) {
PrintLine(stationNumber -1 , best_line_2[stationNumber - 1]) ;
std::cout<<"Station"<<stationNumber<<" Line 2"<<std::endl;
}
else {
PrintLine(stationNumber -1 , best_line_1[stationNumber - 1]) ;
std::cout<<"Station"<<stationNumber<<" Line 1"<<std::endl;
}
}
}
void FindBest()
{
best_line_1[0] = 1 ;
best_line_2[0] = 2;
short_time_line_1[0] = time_1[0] + line_1[0];
short_time_line_2[0] = time_2[0] + line_2[0];
for(int i = 1; i < 6 ; i++) {
if (short_time_line_1[i-1] > short_time_line_2[i-1] + time_1[i]) {
short_time_line_1[i] = short_time_line_2[i-1] + time_1[i] + line_1[i];
best_line_1[i] = 2;
}
else {
short_time_line_1[i] = short_time_line_1[i-1] +line_1[i] ;
best_line_1[i] = 1;
}
if (short_time_line_2[i-1] > short_time_line_1[i-1] + time_2[i]) {
short_time_line_2[i] = short_time_line_1[i-1] + time_2[i] + line_2[i] ;
best_line_2[i] = 1;
}
else {
short_time_line_2[i] = short_time_line_2[i-1] +line_2[i] ;
best_line_2[i] = 2;
}
}//end of for
if ( short_time_line_1[LINELENGTH -1] + time_line1_to_end > short_time_line_2[LINELENGTH -1] + time_line2_to_end ) {
lastTime = short_time_line_2[LINELENGTH -1] + time_line2_to_end ;
lastStep = 2 ;
}
else
{
lastTime = short_time_line_1[LINELENGTH -1] + time_line1_to_end;
lastStep = 1 ;
}
std::cout<<"Total time is "<<lastTime<<std::endl;
if ( lastStep > 1){
PrintLine(LINELENGTH, 2) ;
//std::cout<<"Station"<<LINELENGTH<<"Line 2"<<std::endl;
}
else {
PrintLine(LINELENGTH, 1) ;
//std::cout<<"Station"<<LINELENGTH<<"Line 1"<<std::endl;
}
}
int main()
{
FindBest();
getchar();
return 0;
}
- 动态规划1——之工厂生产线问题
- 编程练习-动态规划(生产线问题)
- 程序碎片- 生产线动态规划(循环)
- 动态规划之——背包问题
- 【算法】——动态规划之0-1背包问题
- 动态规划0—1背包问题
- 动态规划0—1背包问题
- 动态规划0—1背包问题
- 动态规划0—1背包问题
- 动态规划0—1背包问题
- 动态规划0—1背包问题
- 动态规划0—1背包问题
- 动态规划—0-1背包问题
- 动态规划0—1背包问题
- 动态规划0—1背包问题
- 动态规划0—1背包问题
- 动态规划——背包系列之装箱问题
- 《编程之美》买书问题——动态规划
- 程序设计之工厂设计模式
- 不得不提的事务处理
- Ubuntu SecureCRT安装连接及解决乱码
- 程序设计之核心“高内聚,低耦合”
- 纯SDK方式截屏并且保存为BMP格式
- 动态规划1——之工厂生产线问题
- sicily 2014
- 二 设计模式之工厂方法模式
- 第三天,Java基础学习_线程
- java基础4--面向对象(下)(继承、final关键字)
- Java中从键盘获取输入值
- 数据库操作(不断更新)
- 三 设计模式之抽象工厂模式
- site