• SkyLee组装电脑(1537)装配线


    SkyLee组装电脑

     

    题目描述

    SkyLee想要组装一台电脑,而电脑需要按照固定的顺序进行安装,不能把配件都买好一起安装(因为SkyLee只会按照顺序安装,他分不清内存条和显卡)。

    城市里有nn个电脑城,并且每个电脑城都有所有的配件卖,除了价格不同外完全一样。一台电脑一共有mm个配件,按照安装顺序编号为1m1−m。

    假设第ii个电脑城的编号为jj的配件售价为p[i][j]p[i][j],从第ii个电脑城到第jj个电脑城的交通费用为f[i][j]f[i][j]。

    那么SkyLee组装好整台电脑最少需要多少钱呢?(配件费用+交通费用)

    输入

    多组数据输入

    第一行两个整数nm,分别为电脑城数量和配件数量(2<n,m<=500)

    接下来n行,每行m个整数,表示配件的价格p[i][j]p[i][j](0<=p[i][j]<=500)

    接下来n行,每行n个整数,表示交通费用f[i][j]f[i][j](0<=f[i][j]<=500)

    输出

    对于每组数据,输出一行,为最小费用

    输入样例

    3 3
    10 1 10
    8 5 10
    10 10 2
    0 5 2
    1 0 5
    1 1 0

    输出样例

    14

    分析:
    已知信息:
    组装费p[n][m]
    交通费f[n][n]


    ALS问题(装配线)的扩展
    #include <iostream>
    #include<cstdio>
    using namespace std;
    
    const int maxn=507;
    const int inf=999999;
    int p[maxn][maxn];
    int f[maxn][maxn];
    int dp[maxn][maxn];
    int m,n;
    void findmin(){
        int themin;
        for(int i=1;i<=n;i++){
            dp[i][1]=p[i][1];
        }
        for(int j=2;j<=m;j++){
            for(int i=1;i<=n;i++){
                    themin=inf;
                for(int k=1;k<=n;k++){
                    if(dp[k][j-1]+f[k][i]+p[i][j]<themin)
                        themin=dp[k][j-1]+f[k][i]+p[i][j];
                }
                 dp[i][j]=themin;
            }
    
        }
    }
    int main()
    {
    
        int themin;
        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",&f[i][j]);
                }
            }
            findmin();
            themin=inf;
            for(int i=1;i<=n;++i){
                if(themin>dp[i][m])
                    themin=dp[i][m];
            }
            printf("%d
    ",themin);
    
        }
    }
     
  • 相关阅读:
    看完了红米5 Plus发布会,我觉得魅蓝Note6降价降多了
    红米5/红米5 Plus逼出最强魅蓝Note6?降价后已成性价比神机
    java.lang.NoClassDefFoundError: org/apache/ibatis/mapping/DatabaseIdProvider
    mac tree命令
    spring boot集成dubbo
    玩转Spring Boot 集成Dubbo
    Linux下复制粘贴快捷键
    用创业舞动飞扬的青春
    SpringMVC 学习笔记(一) Hello World
    从 Kubernetes 谈容器网络
  • 原文地址:https://www.cnblogs.com/loganlzj/p/10111876.html
Copyright © 2020-2023  润新知