zoukankan      html  css  js  c++  java
  • tyvj 1203 机器分配

    时间: 1000ms / 空间: 131072KiB / Java类名: Main

    描述

    总公司拥有高效生产设备M台,准备分给下属的N个公司。各分公司若获得这些设备,可以为国家提供一定的盈利。问:如何分配这M台设备才能使国家得到的盈利最大?求出最大盈利值。其中M<=100,N<=100。分配原则:每个公司有权获得任意数目的设备,但总台数不得超过总设备数M。保存数据的文件名从键盘输入。

    输入格式

    第一行保存两个数,第一个数是公司数N,第二个数是设备数M。接下来是一个N*M的矩阵,表明了第I个公司分配J台机器的盈利。

    输出格式

    输出所有公司的最大利润和

    测试样例1

    输入

    3 3 
    30 40 50 
    20 30 50 
    20 25 30

    输出

    70

    备注

    最大利润是所有公司都分得一个机器所得到。
    公司可以不分机器
    保证所有的价值都是正整数,但value[i,1..m]并不是单调的

    题解:前I公司分j台机器

    f[i][j]=max{f[i-1][j-k]+v[i][k]};

    代码:

    #include<iostream>
    #include<cstdio>
    using namespace std;
    int n,m,v[102][102],f[102][102];
    int main(){
        scanf("%d%d",&n,&m);
        for(int i=1;i<=n;i++)
         for(int j=1;j<=m;j++)
          scanf("%d",&v[i][j]);
        for(int i=1;i<=n;i++)
         for(int j=1;j<=m;j++)
          for(int k=0;k<=j;k++)
           f[i][j]=max(f[i][j],f[i-1][j-k]+v[i][k]);
        printf("%d
    ",f[n][m]);
        return 0;
    }
  • 相关阅读:
    服务器又100%了,上一个挖矿病毒解决完,这几天又来了一个新的挖矿病毒。。。。
    一些面试题
    家庭应急储备物资分类
    所学习的docker
    Mysql主从复制原理及同步延迟问题
    关于git
    小程序的get和post需要注意的地方
    CSS3 3D转换
    transform CSS3 2D知识点汇总
    HTML5基础知识总结(一)
  • 原文地址:https://www.cnblogs.com/zzyh/p/7572706.html
Copyright © 2011-2022 走看看