⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 attemper.cpp

📁 使用动态规划的方法求接出怎样在两条装配线上以最快的时间完成装配任务
💻 CPP
字号:
#include <iostream>

using namespace std;

int main()
{
    freopen("in.txt","r",stdin);
    freopen("out.txt","w",stdout);
    int e1,e2,x1,x2,n,*f1,*f2,*g1,*g2,*l1,*l2,*t1,*t2,i,j,f,l;
    cout<<"请分别输入进入两条装配线的时间:"<<endl;
    cin>>e1>>e2;
    cout<<"请分别输入离开两条装配线的时间:"<<endl;
    cin>>x1>>x2; 
    cout<<"输入两条装配线的长度:"<<endl;
    cin>>n;
    cout<<"输入第一条装配线各装配器的时间:"<<endl;
    g1=new int[n+1]; 
    f1=new int[n+1];
    l1=new int[n+1];
    t1=new int[n+1];
    for(i=1;i<=n;i++)
    cin>>g1[i];
    cout<<"输入第二条装配线各装配器的时间:"<<endl;
    f2=new int[n+1];
    g2=new int[n+1];
    l2=new int[n+1];
    t2=new int[n+1];
    for(i=1;i<=n;i++)
    cin>>g2[i];
    cout<<"输入从第一条装配线到第二条装配线的各个时间:"<<endl;
    for(i=1;i<=n-1;i++)
    cin>>t1[i];
    cout<<"输入从第二条装配线到第一条装配线的各个时间:"<<endl;
    for(i=1;i<=n-1;i++)
    cin>>t2[i]; 
    f1[1]=e1+g1[1];
    f2[1]=e2+g2[1];
    l1[1]=1;
    l2[1]=2;
    for(j=2;j<=n;j++)
    {
                    if(f1[j-1]+g1[j]<=f2[j-1]+g1[j]+t2[j-1])
                    {
                                                            f1[j]=f1[j-1]+g1[j];
                                                            l1[j]=1;
                                                            }
                     else
                     {
                         f1[j]=f2[j-1]+g1[j]+t2[j-1];
                         l1[j]=2;
                     }
                     
                     if(f2[j-1]+g2[j]<=f1[j-1]+g2[j]+t1[j-1])
                     {
                                                             f2[j]=f2[j-1]+g2[j];
                                                             l2[j]=2;
                                                             }
                     else
                     {
                         f2[j]=f1[j-1]+g2[j]+t1[j-1];
                         l2[j]=1;
                         }
    }
    
    if(f1[n]+x1<=f2[n]+x2)
    {
                          f=f1[n]+x1;
                          l=1;
                          }
    else
    {
        f=f2[n]+x2;
        l=2;
        }
        cout<<"最短路线需耗时:"<<endl<<f<<endl; 
    return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -