zoukankan      html  css  js  c++  java
  • 光盘行动

    题目:

    Alice看到了有很多菜没最后都没有吃完。

    本着不浪费的精神,她决定将这些菜打包好分发给各位亲戚带走。
    每分钟,Alice可以选择一份菜,填满一个打包盒(如果填不满也不会用其他的菜去补充)。
    距离散会还有一段时间,他们希望你计算一下所需打包盒的最小容积
    这样既能准时完成所有菜品的打包,也能分成更多份给不同的人。

    输入:

    第一行是样例个数K(1<=K<=1000)。
    每组样例的第一行是剩菜的个数N(1<=N<=1000),可用时间T(1<=T<=1000),保证N<=T。
    第二行N个整数,表示每盘菜的剩余量Ai(1<=Ai<=10000)。

    3
    4 8
    3 6 7 11
    5 6
    30 11 23 4 20
    5 9
    10 11 12 13 14

    输出:

    每组样例输出一个数字,即打包盒的最小容量。

    4
    23
    10

    #include <stdio.h>
    #include <iostream>
    #include <math.h>
    #include <string.h>
    using namespace std;
    const double PI=acos(-1.0);
    int n,t;
    int s[105];
    bool check(int x){
        int cot=0;
        for(int i=0;i<n;i++){
            cot+=s[i]/x;
            if(s[i]%x!=0){
                cot++;
            }
            if(t-cot<n-i-1){
                return false;
            }
        }
        if(cot<=t) return true;
        else return false;
    }
    int main(){
        int k;
        int l=0,r=0,mid;
        cin>>k;
        for(int i=0;i<k;i++){
            cin>>n>>t;
            memset(s,n,sizeof(s));
            for(int j=0;j<n;j++){
                cin>>s[j];
                r=max(r,s[j]);
            }
            while(l<=r){
                mid=(l+r)/2;
                if(check(mid)){
                    r=mid-1;
                }
                else l=mid+1;
            }
            cout<<l<<endl;
        }
    }
  • 相关阅读:
    32-数据链路层,PPP协议
    31-NAT
    30-安全技术,ACL
    ensp实验:配置DHCP
    29-应用层,DHCP协议
    ensp实验:配置stp
    28-STP,选举过程、端口状态、计时器、拓扑变化
    27-交换机,STP
    26-交换机,GVRP
    Manually APK Downgrade for split apks
  • 原文地址:https://www.cnblogs.com/xusi/p/12333974.html
Copyright © 2011-2022 走看看