算法练习 动态规划 装配线调度
2016-02-10 19:28
288 查看
动态规划
装配线调度
#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<queue>
#include<climits>
#include<cstring>
using namespace std;
#define N 3
#define M 3
int a[N+1][M+1];
int main()
{
int i,j;
memset(a,0,sizeof(a));
for(i=1;i<=N;i++)
for(j=1;j<=M;j++)
cin>>a[i][j];
int s[N+1][M+1];
s
[M]=a
[M];
for(i=N-1;i>0;i--)
s[i][M]=s[i+1][M]+a[i][M];
for(j=M-1;j>0;j--)
s
[j]=s
[j+1]+a
[j];
for(i=N-1;i>0;i--)
{
for(j=M-1;j>0;j--)
{
s[i][j]=a[i][j]+max(s[i+1][j],s[i][j+1]);
}
}
cout<<s[1][1]<<endl;
return 0;
}
(如有不对,烦请各大神指点~)
装配线调度
#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<queue>
#include<climits>
#include<cstring>
using namespace std;
#define N 3
#define M 3
int a[N+1][M+1];
int main()
{
int i,j;
memset(a,0,sizeof(a));
for(i=1;i<=N;i++)
for(j=1;j<=M;j++)
cin>>a[i][j];
int s[N+1][M+1];
s
[M]=a
[M];
for(i=N-1;i>0;i--)
s[i][M]=s[i+1][M]+a[i][M];
for(j=M-1;j>0;j--)
s
[j]=s
[j+1]+a
[j];
for(i=N-1;i>0;i--)
{
for(j=M-1;j>0;j--)
{
s[i][j]=a[i][j]+max(s[i+1][j],s[i][j+1]);
}
}
cout<<s[1][1]<<endl;
return 0;
}
(如有不对,烦请各大神指点~)
相关文章推荐
- hdu 1005 矩阵快速幂模板题
- Atitit。Tree文件解析器的原理流程与设计实现 java c# php js
- 【Linux学习014】特殊权限
- spi裸板程序
- Codeforces Round #342 (Div. 2)-C. K-special Tables(模拟)
- 子元素滚动不影响父元素
- 子元素滚动不影响父元素
- The Java™ Tutorials — Concurrency :Thread Objects 线程对象
- 移动网络
- Linux - 命令
- 活着就为改变世界 -- 目录
- 杭电ACM1408——盐水的故事
- Atitit. 真正的全中国文字attilax易语言的特点以及范例
- 蓝桥杯 算法训练 ALGO-3 K好数
- 18 图形界面
- Atitit. 真正的全中国文字attilax易语言的特点以及范例
- Codeforces Round #342 (Div. 2)-B. War of the Corporations(模拟)
- Atitit. 真正的全中国文字attilax易语言的特点以及范例
- Android Volley完全解析(一),初识Volley的基本用法
- [Spring实战系列](14)Bean的自动检测