zoukankan      html  css  js  c++  java
  • 二分贪心杂题

    P4670 [BalticOI 2011 Day2]Plagiarism

    更改了二分的写法:将二分区间改为左闭右开的一个区间,最后答案即在L。

    注意小数0.9的处理

    #include<cstdio>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    typedef long long ll;
    int n,a[100005];
    ll ans;
    int main(){
    	scanf("%d",&n);
    	for(int i=1;i<=n;i++) scanf("%d",&a[i]);
    	sort(a+1,a+n+1);
    	for(int i=1;i<=n;i++){
    		int l=0,r=i+1;
    		while(r-l>1){
    			int mid=(l+r)>>1;
    			if(a[i]*9<=a[mid]*10) r=mid;
    			else l=mid;
    		}
    		ans+=i-l-1;
    	}
    	printf("%lld",ans);
    	return 0;
    }
    

    P2884 [USACO07MAR]Monthly Expense S

    注意最后如果sum中还有数,cnt要++,注意细节

    #include<cstdio>
    #include<iostream>
    using namespace std;
    int n,m;
    int a[100005];
    bool check(int x){
    	int sum=0,cnt=0;
    	for(int i=1;i<=n;i++){
    		if(sum+a[i]<=x){
    			sum+=a[i];
    		}
    		else{
    			sum=0;
    			cnt++;
    			if(sum+a[i]>x){
    				return 0;
    			}
    			sum+=a[i];
    		}
    	}
    	if(sum) cnt++;
    	if(cnt<=m) return 1;
    	return 0;
    }
    int main(){
    	scanf("%d%d",&n,&m);
    	for(int i=1;i<=n;i++) scanf("%d",&a[i]);
    	int l=0,r=2e9;
    	while(r-l>1){
    		int mid=(l+r)>>1;
    		if(check(mid)) r=mid;
    		else l=mid;
    	}
    	printf("%d",r);
    	return 0;
    } 
    

    跳石头

    #include<cstdio>
    #include<iostream>
    using namespace std;
    int l,n,m;
    int a[50005],cnt;
    bool check(int x){
    	int last=0,cnt=0;
    	for(int i=1;i<=n+1;i++){
    		if(a[i]-a[last]<x) cnt++;
    		else last=i;
    	}
    	if(cnt<=m) return 1;
    	return 0;
    } 
    int main(){
    	scanf("%d%d%d",&l,&n,&m);
    	a[n+1]=l;
    	for(int i=1;i<=n;i++) scanf("%d",&a[i]);
    	int l=0,r=1e9+5;
    	while(r-l>1){
    		int mid=(l+r)>>1;
    		if(check(mid)) l=mid;
    		else r=mid;
    	}
    	printf("%d",l);
    	return 0;
    }
    
  • 相关阅读:
    个人博客08
    《新浪微博平台架构》---阅读
    《阿里游戏高可用架构设计实践》---阅读
    《京东咚咚架构演进》---阅读
    《京东话费充值系统架构演进实践》--阅读
    实时获取input框内容
    html:判断两次密码不一致以及阻止提交
    《京东到家库存系统架构设计》---阅读
    《数据蜂巢架构演进之路》---阅读
    SOA案例分析浅谈
  • 原文地址:https://www.cnblogs.com/New-ljx/p/15374363.html
Copyright © 2011-2022 走看看