zoukankan      html  css  js  c++  java
  • 2019牛客暑期多校训练营(第六场)D-Move

    [题目大意]

    n个物品及其体积,用k个相同的箱子装,求能装下这n个物品的箱子的最小容积。

    对于一个箱子,每次都先装能装下的最大的物品,不能满足则开始装下一个箱子。

    [思路]

    ans = max (  vol [i] , ceil(sum ( vol [i]] ) / k ))  ,while(ans++)直到能装下所有物品。

    [代码]

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 const int maxn=1e3+3;
     4 int arr[maxn];
     5 int n,m;
     6 int vol[maxn];
     7 bool check(int now)
     8 {
     9     int num_box=0;
    10     memset(vol,0,sizeof(vol));
    11     for(int i=n; i>=1; i--)
    12     {
    13         bool flag=false;
    14         for(int j=0; j<num_box; j++)
    15         {
    16             if(vol[j]+arr[i]<=now)
    17             {
    18                 vol[j]+=arr[i];
    19                 flag=true;
    20                 break;
    21             }
    22         }
    23         if(!flag)
    24         {
    25             vol[num_box]=arr[i];
    26             num_box++;
    27         }
    28         if(num_box>m)return false;
    29     }
    30     return true;
    31 }
    32 int main()
    33 {
    34     int t;
    35     scanf("%d",&t);
    36     int k=1;
    37     while(k<=t)
    38     {
    39         int ans=0;
    40         int sum=0;
    41         scanf("%d%d",&n,&m);
    42         for(int i=1; i<=n; i++)
    43         {
    44             scanf("%d",&arr[i]);
    45             sum+=arr[i];
    46             ans=max(arr[i],ans);
    47         }
    48         ans=max(ans,sum/m);
    49         sort(arr+1,arr+n+1);
    50         while(!check(ans))
    51         {
    52             ans++;
    53         }
    54         printf("Case #%d: %d
    ",k,ans);
    55         k++;
    56     }
    57     return 0;
    58 }
    59 /*
    60 3
    61 3 2
    62 6 6 7
    63 5 3
    64 1 2 3 4 5
    65 */
  • 相关阅读:
    HDU 2602 Bone Collector (01背包)
    POJ 3624 Charm Bracelet (01背包)
    人见人爱A^B
    算菜价 HDU_2090
    Stride Convolution
    PaddingValid convolutionsSame convolutions
    Latex修改局部字体大小
    端到端的深度学习
    多任务学习(multi-task learning)
    迁移学习(Transfer learning)
  • 原文地址:https://www.cnblogs.com/CharlieWade/p/11301117.html
Copyright © 2011-2022 走看看