• 二分贪心杂题


    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;
    }
    
  • 相关阅读:
    vue+ajax+bootstrap+python实现增删改
    django笔记
    阻止冒泡事件的另一种写法
    c# 字符串的内存分配和驻留池( 转 )
    c# 几种深拷贝方式的比较
    JS 常用函数
    Web Api 过滤器之 AuthorizationFilter 验证过滤器
    c# await 到底等待的是什么?
    ( 转 ) CORS 有一次 OPTIONS 请求的原理
    Web Api 过滤器之 ExceptionFilter 异常过滤器
  • 原文地址:https://www.cnblogs.com/New-ljx/p/15374363.html
Copyright © 2020-2023  润新知