华华给月月准备礼物题解

华华给月月准备礼物

https://ac.nowcoder.com/acm/problem/23049

很典型的一个二分求解题。
理解题意后我们会发现,我们只需要找到一个长度,让每一根棍子可以锯出这种长的的总个数大于等于想要获得的棍子个数即可。
所以我们可以在长度为1和我们所拥有的棍子中最长的那根棍子的长度之间进行二分。
先把num[]数组排序,如果可以获得的大于等于k的话就记录这个长度,然后往右找,小于k的话就往左找。
最后输出max即可,代码如下。
import java.util.*;
import java.math.*;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StreamTokenizer;
import java.io.OutputStreamWriter;
import java.io.BufferedReader;
import java.io.PrintWriter;
public class Main {
    public static void main(String args[])throws IOException
    {
         StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
        PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
        in.nextToken();
        int n = (int)in.nval;
        in.nextToken();
        int k = (int)in.nval;
        int num[] = new int[n];
        for(int t=0;t<n;t++)
        {
            in.nextToken();
            num[t] = (int)in.nval;
        }
       int sum=0;
        Arrays.sort(num);
        int l=1,r=num[n-1],mid=(l+r)>>1,max=0;
        while(l<=r)
        {
            mid=(l+r)>>1;
            if(check(mid,num)>=k)
            {
                max = Math.max(max,mid);
                l = mid+1;
            }
            else{
                r = mid-1;
            }
        }
        out.print(max);
        out.flush();
        
   }
    public static int check(int p,int num[])
    {
        int sum=0;
        for(int i=0;i<num.length;i++)
        {
            sum+=(num[i]/p);
        }
         return sum;
        
    }
 }



全部评论

相关推荐

07-01 17:14
中北大学 Java
兄弟们是真是假
牛客46374834...:我在boss上投java岗从来没成功过
点赞 评论 收藏
分享
仁者伍敌:服务员还要脱颖而出,这是五星级酒店吗
点赞 评论 收藏
分享
06-17 00:26
门头沟学院 Java
程序员小白条:建议换下项目,智能 AI 旅游推荐平台:https://github.com/luoye6/vue3_tourism_frontend 智能 AI 校园二手交易平台:https://github.com/luoye6/vue3_trade_frontend GPT 智能图书馆:https://github.com/luoye6/Vue_BookManageSystem 选项目要选自己能掌握的,然后最好能自己拓展的,分布式这种尽量别去写,不然你只能背八股文了,另外实习的话要多投,尤其是学历不利的情况下,多找几段实习,最好公司title大一点的
无实习如何秋招上岸
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务