zoukankan      html  css  js  c++  java
  • P2183 巧克力(二分答案)

    P2183 巧克力

    题目描述

    佳佳邀请了M个同学到家里玩。为了招待客人,她需要将巧克力分给她的好朋友们。她有N(1<=N<=5000)块巧克力,但是大小各不一样,第i块巧克力大小为为1*Xi(1<=i<=N,1<=Xi<=10000)

    为了公平,她需要让每人所分得的巧克力大小一样,而且为了礼貌,巧克力是一整块地分给客人。所以她需要将巧克力分成大小为S的M块,而且使得S最大。但她很忙还要照顾她的客人,所以就将任务交给你了,你需要求出S。

    输入输出格式

    输入格式:

    第一行,N,M

    下接N行为N块巧克力的大小。

    输出格式:

    仅有一行,为巧克力大小S。

    输入输出样例

    输入样例#1:
    Input.txt
       9 5
       1
       2
       3
       4
       5
       6
       7
       8
       9
    
    输出样例#1:
     Output.txt
       5
     1 #include<cstdio>
     2 #include<algorithm>
     3 using namespace std;
     4 int a[5010];
     5 int main()
     6 {
     7     int n,m,l=1e9,r=0;
     8     scanf("%d%d",&n,&m);
     9     for (int i=1; i<=n; ++i)
    10     {
    11         scanf("%d",&a[i]);
    12         l = min(l,a[i]);    //初始l,r 
    13         r = max(r,a[i]);
    14     }
    15     while (l<=r)    //二分 
    16     {
    17         int mid = (l+r)>>1;
    18         int sum = 0;
    19         for (int i=1; i<=n; ++i)
    20             sum += a[i]/mid;    //数一下能切几块 
    21         if (sum>=m) l = mid+1;
    22         else r = mid-1;
    23     }
    24     printf("%d",l-1);
    25     return 0;
    26 }
  • 相关阅读:
    Python 环境安装教程(Windows 10)
    去掉页面状态栏的方法
    iOS开发init方法解析
    xCode删除storyboard,新建window并启动
    应用程序代理AppDelegate解析
    nib文件的注册及加载
    cocospods的安装与应用
    Objective-C 理解之方括号[ ]的使用
    36辆自动赛车和6条跑道的问题
    编程珠玑第二章
  • 原文地址:https://www.cnblogs.com/mjtcn/p/7087241.html
Copyright © 2011-2022 走看看