【二分题目】

二分

分巧克力

分巧克力

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;
        }

}
相关推荐
往事随风去29 分钟前
Java 中的 Consumer 与 Supplier 接口
java·面试·响应式编程
北城以北888837 分钟前
Java高级编程--XML
xml·java·开发语言·intellij-idea
SXJR1 小时前
Java mp4parser 实现视频mp4 切割
java·python·音视频
冬天vs不冷1 小时前
Java基础(十一):关键字final详解
java·开发语言
上官浩仁1 小时前
springboot maven 多环境配置入门与实战
java·spring boot·maven
元直数字电路验证1 小时前
新建Jakarta EE项目,Maven Archetype 选项无法加载出内容该怎么办?
java·maven
我叫汪枫1 小时前
Spring Boot图片验证码功能实现详解 - 从零开始到完美运行
java·前端·javascript·css·算法·html
小王不爱笑1321 小时前
Java基础知识(十四)
java·windows·python
HMBBLOVEPDX1 小时前
C++(深拷贝和浅拷贝)
开发语言·c++·浅拷贝和深拷贝
l1t1 小时前
DeepSeek辅助编写的利用quick_xml把xml转为csv的rust程序
xml·开发语言·人工智能·rust·解析器·quick-xml