• Java实现洛谷 P1873 砍树(StreamTokenizer+IO+二分)


    P1873 砍树

    在这里插入图片描述

    输入输出样例
    输入  
    5 20
    4 42 40 26 46
    输出 
    36
    

    PS:
    get新知识,以前只知道STringTokenizer并没有了解过StreamTokenizer,这次才知道
    原来io输入的jdk提供了方法接收这个,大概感觉貌似差不多,好久没用io了,一边百度一边用
    现学现卖哈哈

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.io.PrintWriter;
    import java.io.StreamTokenizer;
    
    public class 砍树 {
    
    	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 m = (int)in.nval;
    	    int[] s = new int[n];
    	    int l = 0,r = 0;
    	    for(int i = 0;i < n;i++) {
    	    	in.nextToken();
    	    	s[i] = (int)in.nval;
    	    	r = Math.max(r, s[i]);
    	    }
    	    while(l <= r) {
    	    	int mid = (l + r) / 2;
    	    	if(judge(mid,s,m)) {
    	    		l = mid + 1;
    	    	}else {
    	    		r = mid - 1;
    	    	}
    	    }
    	    out.print(l - 1);
    	    out.close();
    	}
    	
    	public static boolean judge(int mid,int[] s,int m) {
    		int sum = 0;
    		for(int i = 0;i < s.length;i++) {
    			if(s[i] > mid) {
    				sum += (s[i] - mid);
    				if(sum >= m) {
    					return true;
    				}
    			}
    		}
    		return false;
    	}
    }
    
    
  • 相关阅读:
    jquery小知识点
    jQuery 插件开发(1)
    js闭包实际用途
    javascript中的闭包
    Asp.Net Mvc: 浅析TempData机制
    WebService 简单应用
    SQLServer中游标实例介绍(转)
    使用jQuery Ajax功能的时候需要注意的一个问题
    Asp.Net中判断是否登录,及是否有权限?
    Asp.net MVC3中全局图片防盗链
  • 原文地址:https://www.cnblogs.com/a1439775520/p/12946303.html
Copyright © 2020-2023  润新知