算法之道_流水线装配问题_动态规划
来源:互联网 发布:龙安威视手机远程软件 编辑:程序博客网 时间:2024/04/30 01:58
#include<stdio.h>
int Record[2][10];
int countA=0;
int countB=0;
typedef struct data
{
int da;
int min;
int Tonext;
}Data;
int min(int x ,int y,int i)
{
if(x>y)
{
if(i==1) { Record[0][countA] = 2; countA++;}
else
{ Record[1][countB]=1; countB++;
}
return y;
}
else
{ if (i==1)
{
Record[0][countA]=1; countA++;
}else
{ Record[1][countB] =2; countB++;
}
return x;
}
}
void findMin(Data A[10],Data B[10])
{
int i = 0;
int j = 0;
for( i = 1; i < 7; i++ )
{
A[i].min = min(A[i-1].min+A[i].da,B[i-1].min+B[i-1].Tonext+A[i].da,1);
printf("%d ",A[i].min);
B[i].min = min(B[i-1].min+B[i].da,A[i-1].Tonext+A[i-1].min+B[i].da,2);
printf("%d\n",B[i].min);
}
printf("%d\n",min(A[6].min,B[6].min,1));
}
void main()
{
Data A[10],B[10];
int i = 0;
A[0].min = 1;
B[0].min = 2;
for( i = 0; i < 7; i++)
{
scanf("%d",&A[i].da);
scanf("%d",&B[i].da);
}
A[0].min+=A[0].da;
B[0].min+=B[0].da;
for( i = 0; i < 6; i++ )
{
scanf("%d",&A[i].Tonext);
scanf("%d",&B[i].Tonext);
}
findMin(A,B);
printf("%d ",Record[0][5]);
int j = 1;
for(int w = 4; w >= 0; w-- )
{
printf("%d ",Record[j-1][w]); //由后向前打印
j = Record[j-1][w];
}
}
- 算法之道_流水线装配问题_动态规划
- 算法_动态规划_整数线性规划问题
- 算法_动态规划_二维01背包问题
- 算法_动态规划_独立任务最优调度问题
- 算法_动态规划_最少硬币问题
- 算法_动态规划_序关系计数问题
- 算法_动态规划_编辑距离问题
- 算法_动态规划_石子合并问题
- 算法_动态规划_乘法表问题
- 算法_动态规划_租用游艇问题
- 动态规划算法中的流水线调度问题
- 动态规划经典算法之装配站调度问题源代码
- 算法_动态规划_货币兑换
- 算法_动态规划_图像压缩
- 算法_动态规划_电路布线
- 算法_动态规划_流水作业调度
- 算法_动态规划_漂亮打印
- 算法_动态规划总结
- java PriorityQueue优先队列
- 服务器控件使用客户端脚本
- JAXB的应用,及如何自定义namespace的prefix(前缀)
- MyEclipse设置注释模板
- NSTableView中设置selectedRow的高亮颜色
- 算法之道_流水线装配问题_动态规划
- iOS高效开发必备的10款Objective-C类库
- spring的执行原理
- 螺旋式打印一个二维数组
- mysql变量使用总结
- jquery 与 javascript转换
- 设计模式 创建模式 结构模式和行为模式
- hibernate search 嵌入和关联实体映射
- 绣布上的太阳