【二分题目】

二分

分巧克力

分巧克力

java 复制代码
import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改
public class Main {
public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        int n=scan.nextInt();
        int k=scan.nextInt();//小朋友
        int[][] area=new int[n][2];
        for(int i=0;i<n;i++){
            int h=scan.nextInt();
            int w=scan.nextInt();
            area[i][0]=h;
            area[i][1]=w;
        }
        System.out.println(function(area,k));
        scan.close();
}
	
    static int function(int[][]area,int k){
        int l=1;//巧克力边长最小为l
        int r=(int) 1e5;//边长最大为r
        int mid=0;
        while(l<r) {
        	mid=(l+r+1)/2;
        	if(check(area,mid)>=k) {//取满足条件的最大边长,满足条件时动l,所以循环条件时>=
        		l=mid;
        	}else {
        		r=mid-1;
        	}
        }
		return l;
        
    }
    //判断边长为mid的巧克力,可以分成几块
	private static int check(int[][]area,int mid) {
		// TODO Auto-generated method stub
		int res=0;
		for(int i=0;i<area.length;i++) {
			res+=(area[i][0]/mid)*(area[i][1]/mid);
		}
		return res;
	}
}

求阶乘

求阶乘

java 复制代码
import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
       long k=scan.nextLong();
       long l=0;//最小是0!
       long r=(long) 1e19;//最大是1e19 !
       while(l<r){//
           long mid=(l+r)>>1;
           if(check(mid)>=k){//找满足条件的最小N,满足条件时动r,所以执行r=mid,所以条件是>=
               r=mid;
           }else{
               l=mid+1;
           }
       }
       if(check(r)==k){
           System.out.println(r);
       }else{
           System.out.println(-1);
       }
        scan.close();
    }
    //检查一下数字num的阶乘末尾的0的个数
    static long check(long num){
        long res=0;
        while(num!=0){
            res+=num/5;
            num/=5;
        }
        return res;
    }
}

计算方程

计算方程

java 复制代码
import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
	  public static void main(String[] args) {
	        Scanner scan = new Scanner(System.in);
	        //在此输入您的代码..
	        int t=scan.nextInt();
	        for(int i=0;i<t;i++){
	            int k=scan.nextInt();
	            int m=scan.nextInt();
	            System.out.println(func(k,m));
	        }
	        scan.close();
	    }
	    static int func(int k,int m){
	        int l=1,r=(int)1e8,mid;
	        while(l<r){
	            mid=(l+r)/2;
	            if(check(mid,k,m)){
	                r=mid;
	            }else {
	                l=mid+1;
	            }
	        }
	        return l;
	    }
        static boolean check(int x,int k,int m){
            return Math.sqrt(x)+(int)(Math.log(x)/Math.log(k))>m;
        }

}
相关推荐
ftpeak3 分钟前
《Cargo 参考手册》第二十一章:Cargo 包命令
开发语言·rust
yudiandian20145 分钟前
03 Eclipse 配置 JDK 环境
java·ide·eclipse
_码力全开_5 分钟前
P1005 [NOIP 2007 提高组] 矩阵取数游戏
java·c语言·c++·python·算法·矩阵·go
陈一Tender9 分钟前
JavaWeb后端实战(登录认证 & 令牌技术 & 拦截器 & 过滤器)
java·开发语言·spring boot·mysql
Camel卡蒙9 分钟前
红黑树详细介绍(五大规则、保持平衡操作、Java实现)
java·开发语言·算法
jerryinwuhan13 分钟前
机器人模拟器(python)
开发语言·python·机器人
孤廖36 分钟前
吃透 C++ 栈和队列:stack/queue/priority_queue 用法 + 模拟 + STL 标准实现对比
java·开发语言·数据结构·c++·人工智能·深度学习·算法
我命由我1234538 分钟前
Android 对话框 - 对话框全屏显示(设置 Window 属性、使用自定义样式、继承 DialogFragment 实现、继承 Dialog 实现)
android·java·java-ee·android studio·android jetpack·android-studio·android runtime
驰羽44 分钟前
[GO]GORM中的Tag映射规则
开发语言·golang
Full Stack Developme1 小时前
java.net 包详解
java·python·.net