64 说好的ALS呢?
来源:互联网 发布:e4a源码 编辑:程序博客网 时间:2024/04/25 08:59
说好的ALS呢?
时间限制: 1000 ms 内存限制: 65536 kb
总通过人数: 130 总提交人数: 145
题目描述
每一个手办都是有灵魂的,下面这个高达手办,帅到爆炸有木有O-o。然而要制作这样一件神器却要费不少功夫。假设现在某厂商引进了制作的整套流水车间,决定量产拯救世界。此车间有n条流水线,每条流水线线有m个装配站,编号都为1-m,每条工作线的第i个装配站都执行相同的功能。拼装一个手办要经过m个装配站才能加工完成,经过第i条工作线的第j个装配站要花费p[i][j]的时间,从第i个工作线移动到第j个工作线要花费t[i][j]的时间,请问制造一个高达最少时间是多少?
输入
多组测试数据
对于每一组测试数据,第一行两个整数输入 N,M(100>=N,M>0),分别代表N条工作线和每条线有M个装配站。
接下来N行每行M个数( N*M 的矩阵,第i行第j个数代表描述中的p[i][j] ),0<权值<=100。
接下来N行每行N个数( N*N的矩阵,第i行第j个数代表描述中的t[i][j] ),0<权值<=100。
输出
对于每组数据,输出一行,a+b的值
输入样例
3 310 1 108 5 1010 10 20 5 21 0 51 1 0
输出样例
14
解析:
流水线调度问题。
用T[i][j]表示第i条流水线到第j个装配站的最短时间。假设装配到了任意(第k条)流水线的第n站,且从第一站到n-1站都是最短时间完成的,那么从n-1到n的最短时间为min(T[i][n-1]+p[i][n]+t[i][k]),其中i=1到n。
所以状态转移方程为:
or(int station=2; station<=m; station++) for(int endLine = 1; endLine<=n; endLine++) for(int startLine=1; startLine<=n; startLine++) T[endLine][station] = min(T[endLine][station], T[startLine][station-1]+p[endLine][station] + t[startLine][endLine]);
最后遍历T[i][n]记录最小时间即为答案。
代码:
#include<cstdio>#include<algorithm>#define INF 0x3f3f3f3f#define maxn 107#define LL long longusing namespace std;int n,m;int p[maxn][maxn],t[maxn][maxn],T[maxn][maxn];int Floyd(){ for(int i = 1;i <= n;i++) { for(int j = 1;j <= m;j++) { T[i][j] = INF; } } for(int i = 1;i <= n;i++) { T[i][1] = p[i][1]; } for(int i = 2;i <= m;i++) { for(int j = 1;j <= n;j++) { for(int k = 1;k <= n;k++) { T[j][i] = min(T[j][i],T[k][i-1]+p[j][i]+t[k][j]); } } } int ans = INF; for(int i = 1;i <= n;i++) { ans = min(ans,T[i][m]); } return ans;}int main(){ while(~scanf("%d%d",&n,&m)) { for(int i = 1;i <= n;i++) { for(int j = 1;j <= m;j++) { scanf("%d",&p[i][j]); } } for(int i = 1;i <= n;i++) { for(int j = 1;j <= n;j++) { scanf("%d",&t[i][j]); } } printf("%d\n",Floyd()); }}
阅读全文
0 0
- 64 说好的ALS呢?
- 说好的Cache呢
- 说好的每天呢?
- 说好的博客呢
- 说好的加班呢
- 说好的公休假呢?
- old_blog 说好的复制呢?
- SDUSTOJ-说好的点呢
- 【图灵有聊】说好的安全呢?
- 刘翔——说好的2012呢
- 说好的及格呢(这首歌真好听)
- 娱乐——说好的及格呢
- 说好的8点之前呢
- Duang ! P6 PPM 说好的R9呢?
- 叁拾叁,说好的女助理呢?
- 中国雅虎殒身记:当初说好的独立上市呢?
- 电脑不要睡了,说好的wifi呢?
- 说好的30天直播生死呢? -- 前言
- Java面试题笔试题汇总
- zookeeper集群及mycat配置搭建
- redis学习系列(十一)--redis-复制功能
- xmlpull解析
- WeakReference 学习和使用
- 64 说好的ALS呢?
- LeetCode-448:Find All Numbers Disappeared in an Array (寻找缺失多个数字)
- python学习-Day8-python流程控制之if、for、which、
- 关于Unity动画系统优化,你可能遇到这些问题
- 阅读长文档时如何在Word2013文档中插入书签以便下次继续阅读
- Linux安装JSON-C
- ios获取sim卡信息以及手机号码
- 查看GUID成员函数列表
- 深入理解Java的接口和抽象类