机器分配

机器分配 HNOI

Time Limit:10000MS  Memory Limit:65536K
Total Submit:164 Accepted:104
Case Time Limit:1000MS

Description

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

Input

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

Output

最大盈利

Sample Input

15 10
36 67 86 8 82 88 1 96 75 82
107 68 136 105 99 104 61 176 127 133
184 120 223 179 198 134 113 247 225 205
283 136 273 217 249 140 117 312 296 205
286 207 315 306 291 224 209 346 370 272
292 279 317 332 372 227 223 375 370 295
361 327 363 373 453 277 286 410 463 316
393 413 369 387 542 302 289 419 473 393
425 443 455 407 561 358 336 477 491 445
469 521 554 478 589 440 364 572 537 512
475 534 570 520 603 530 405 574 602 593
496 542 591 547 654 587 431 587 664 637
577 632 657 645 700 635 527 620 680 680
656 643 670 670 730 715 573 676 721 707
713 719 685 685 757 770 642 744 728 745

Sample Output

1167

Source

CWJ

 

 

var
 i,j,k,l,m,n:longint;
 a,b:array[0..21,0..21]of longint;
begin
 read(m,n);
 for i:=1 to m do
  begin
for j:=1 to n do
   read(a[j,i]);
readln;
end;
 for i:=1 to n do
  for j:=0 to m do
   for k:=0 to j do
    if b[i-1,k]+a[i,j-k]>b[i,j] then b[i,j]:=b[i-1,k]+a[i,j-k];
 write(b[n,m]);

end.

 

 

动态转移方程:b[i-1,k]+a[i,j-k]>b[i,j] then b[i,j]:=b[i-1,k]+a[i,j-k];

在探讨如何使用动态规划解决机器分配问题以实现盈利最大化时,首先需要理解动态规划的基本概念和原理。动态规划特别适用于多阶段决策过程的优化问题,其中机器分配问题就是一个典型的多阶段决策问题。为了解决这个问题,我们需要定义合适的状态、阶段和决策,以及构建状态转移方程。这里,状态可以表示为分配给每个公司的机器数量,阶段则是每一个公司,决策是在当前阶段为该公司的机器分配数量。 参考资源链接:[动态规划详解:决策与状态转移的优化策略](https://wenku.youkuaiyun.com/doc/31s6w29zg5?spm=1055.2569.3001.10343) 构建状态转移方程是动态规划中的核心步骤。对于机器分配问题,设F[i][j]表示前i个公司分配j台机器的最大盈利。状态转移方程将会考虑所有可能的决策,即为第i个公司分配0至M台机器的情况,并更新F[i][j]以反映当前阶段的最大盈利。具体来说,状态转移方程可以表示为:F[i][j] = max(F[i-1][j-k] + profit(k)),其中profit(k)是分配给第i个公司的k台机器所带来的盈利,k的范围是0到M。 在这个问题中,边界条件非常关键。初始条件是F[0][0],表示没有公司也没有机器时的情况,通常这个值是0。同时,由于每个公司只能分配至多M台机器,因此对于所有的j>M,F[i][j]应该设置为一个不可能达到的值,以避免在实际计算中使用这些情况。 状态转移方程和边界条件的正确设置是动态规划解决问题的基础,而动态规划算法的时间复杂度通常与状态数量和决策数量的乘积成正比。在机器分配问题中,如果假设有N个公司和M台机器,时间复杂度为O(N*M^2)。 为了帮助理解这一过程,建议参考《动态规划详解:决策与状态转移的优化策略》。该PPT详细介绍了动态规划的原理,并通过案例深入讲解了如何建立状态转移方程,如何设定边界条件,以及如何应用动态规划解决优化问题。通过学习这个资料,你可以获得更全面和深入的理解,不仅限于机器分配问题,还能应用到其他动态规划问题中,达到盈利最大化的目标。 参考资源链接:[动态规划详解:决策与状态转移的优化策略](https://wenku.youkuaiyun.com/doc/31s6w29zg5?spm=1055.2569.3001.10343)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值