51nod 1205 流水线调度
来源:互联网 发布:数据恢复软件恢复率高 编辑:程序博客网 时间:2024/04/29 18:47
1205 流水线调度
基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 收藏 关注
N个作业{1,2,…,n}要在由2台机器M1和M2组成的流水线上完成加工。每个作业加工的顺序都是先在M1上加工,然后在M2上加工。M1和M2加工作业i所需的时间分别为a[i]和b[i]。你可以安排每个作业的执行顺序,使得从第一个作业在机器M1上开始加工,到最后一个作业在机器M2上加工完成所需的时间最少。求这个最少的时间。
Input
第1行:1个数N,表示作业的数量。(2 <= N <= 50000)
第2 - N + 1行:每行两个数,中间用空格分隔,表示在M1和M2上加工所需的时间a[i], b[i]。(1 <= a[i], b[i] <= 10000)。
Output
输出完成所有作业所需的最少时间。
Input示例
4
3 7
2 1
1 1
4 2
Output示例
14
https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1205
Johnson算法
暑假再补充
#include <bits/stdc++.h>using namespace std;long long tag[500005];long long de[500005];struct node{ long long x,y,z;} a[500005],b[500005],d[500005],c[1000005];bool cmp(node l,node r){ return l.x<r.x;}int main(){ memset(a,0,sizeof(a)); memset(tag,0,sizeof(tag)); memset(de,0,sizeof(de)); memset(b,0,sizeof(b)); memset(c,0,sizeof(c)); memset(d,0,sizeof(d)); long long n; while(cin>>n) { for(long long i=0;i<n;i++) { cin>>a[i].x; a[i].y=i; cin>>b[i].x; b[i].y=i; d[i].x=a[i].x; d[i].y=b[i].x; } sort(a,a+n,cmp); sort(b,b+n,cmp); long long l=0,r=0,s=0; while(l<n||r<n) { if(l<n&&(r==n||a[l].x<b[r].x)) { c[s].y=a[l].y; c[s].z=1; c[s++].x=a[l].x; l++; } else { c[s].y=b[r].y; c[s].z=0; c[s++].x=b[r].x; r++; }//cout<<l<<' '<<r<<"z"<<endl; } long long x=0,y=0; l=1;r=n; for(long long i=0;i<s;i++) { if(c[i].z==1&&tag[c[i].y]==0) { tag[c[i].y]=1; de[l++]=c[i].y; } else if(tag[c[i].y]==0) { tag[c[i].y]=1; de[r--]=c[i].y; } } for(long long i=1;i<=n;i++) { x+=d[de[i]].x; y=max(x,y); y+=d[de[i]].y; } cout<<y<<endl; }}
阅读全文
0 0
- 51nod-1205 流水线调度
- 51nod 1205 流水线调度
- 51nod 1205 流水线调度
- 51nod 1205 流水线调度
- 51Nod-1205-流水线调度
- 51nod 1205 流水线调度(Johnson规则)
- 贪心(流水线调度问题) 51nod 1205
- 经典问题:流水线调度(51nod)
- 51nod 1205 流水线调度 贪心(写排序函数)Johnson算法
- 流水线调度
- 流水线调度
- 流水线调度
- 流水线作业调度问题
- 流水线调度dp问题
- 动态规划---->流水线调度问题
- 动态规划之johnson流水线调度
- 动态规划算法中的流水线调度问题
- n流水线m装配站调度问题
- LeetCode 15.3Sum
- 合并两个排序的链表
- 头文件
- linux下的wc命令详解
- MySQL索引
- 51nod 1205 流水线调度
- Ubuntu 14.04安装配置NFS服务器
- 树的子结构
- BootCamp 分区 作死+修复记
- 大型网站系统与JAVA中间件学习
- hadoop集群查看进程情况
- numpy安装
- MySQL 对于千万级的大表要怎么优化?
- 第八章方差分析以及线性回归(2)