Chinaunix首页 | 论坛 | 博客
  • 博客访问: 293363
  • 博文数量: 69
  • 博客积分: 2946
  • 博客等级: 少校
  • 技术积分: 800
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-09 04:15
文章分类

全部博文(69)

文章存档

2013年(6)

2012年(16)

2011年(18)

2010年(29)

分类: C/C++

2010-08-02 23:40:15

E1→A1→A2→A3→A4→…An→X1→

E2→B1→B2→B3→B4→…Bn→X2→        其中 从有A1→B2,B1→A2….Ai→B(i+1), Bi→A(i+1)      在图中不好画出,在此补充。

这个题目应该来说很简单,从i到i+1,第一列中需要比较两次,第二列也需要比较两次,设置两个数组a1,a2;

a1[i]表示从开始到第i+1道工序在第一条生产线上完成所需要的最少时间;

a2[i]表示从开始到第i+1道工序在第二条生产线上完成所需要的最少时间;

代码比较容易写出,但写的比较粗糙。


Code:
    #include<iostream>
    #include<cstdlib>
    #define max 1005
    int a1[max];
    int a2[max];
    using namespace std ;
    int main()
    {
    int n ;
    int rezult ;
    int E1 , E2 , X1 ,X2 ;
    cin>>n ;
    cin>>E1 >>E2 >>X1 >>X2 ;
    int* p1 =new int[n];
    int* p2 =new int[n];
    int* T1 =new int[n-1];
    int* T2 =new int[n-1];
    int i = 0 ;
    while(i<n)
    cin>>p1[i++];
    i=0;
    while(i<n)
    cin>>p2[i++];
    i=0;
    while(i<n-1)
    cin>>T1[i++];
    i=0;
    while(i<n-1)
    cin>>T2[i++];
    int sum1 , sum2 ;
    sum1 = a1[0]= E1+p1[0] ;
    sum2 = a2[0]= E2+p2[0] ;
    for(int i=0;i<n-1;i++)
    {
    a1[i+1]=a1[i]+p1[i+1];
    sum1= a2[i]+T2[i]+p1[i+1];
    a1[i+1] = sum1<a1[i+1]? sum1:a1[i+1];
    a2[i+1]=a2[i]+p2[i+1];
    sum2=a1[i]+T1[i]+p2[i+1];
    a2[i+1]=sum2<a2[i+1]?sum2:a2[i+1];
    }
    delete [] p1 ,p2,T1,T2 ;
    a1[n-1]=a1[n-1]+X1;
    a2[n-1]=a2[n-1]+X2;
    rezult = a1[n-1]<a2[n-1]?a1[n-1]:a2[n-1];
    cout<<rezult<<endl;
    system(“pause”);
    return 0 ;
    }


阅读(598) | 评论(0) | 转发(1) |
0

上一篇:wordpress中插入代码

下一篇:xmu1031 to the max

给主人留下些什么吧!~~