zoukankan      html  css  js  c++  java
  • [USACO07NOV]防晒霜Sunscreen

    POJ

    洛咕

    题意:有N个奶牛去晒太阳 ((1<=N<=2500)),每个奶牛各自能够忍受的阳光强度有一个最小值和一个最大值.所以奶牛就得涂抹防晒霜,防晒霜的作用是让阳光照在身上的阳光强度固定为某个值.给出了(M(1<=M<=2500))种防晒霜.每种防晒霜的固定的阳光强度和数量也给出来了,每个奶牛只能抹一瓶防晒霜,最后问能够享受晒太阳的奶牛有几个.

    分析:贪心策略:给奶牛按照最小忍受值从大到小排序,对于每一头奶牛,选择符合该奶牛的且阳光强度最大且有剩余的防晒霜即可.

    //#include<bits/stdc++.h>
    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    #include<cstring>
    #include<cmath>
    using namespace std;
    inline int read(){
        int x=0,o=1;char ch=getchar();
        while(ch!='-'&&(ch<'0'||ch>'9'))ch=getchar();
        if(ch=='-')o=-1,ch=getchar();
        while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar();
        return x*o;
    }
    const int N=2505;
    struct ppx{
    	int l,r;
    }a[N];
    struct PPX{
    	int x,y;
    }b[N];
    inline bool cmp(const ppx &x,const ppx &y){return x.l>y.l;}
    inline bool CMP(const PPX &X,const PPX &Y){return X.x>Y.x;}
    int main(){
    	int n=read(),m=read();
    	for(int i=1;i<=n;++i){
    		a[i].l=read();
    		a[i].r=read();
    	}
    	sort(a+1,a+n+1,cmp);
    	for(int i=1;i<=m;++i){
    		b[i].x=read();
    		b[i].y=read();
    	}
    	sort(b+1,b+m+1,CMP);
    	int ans=0;
    	for(int i=1;i<=n;++i)
    		for(int j=1;j<=m;++j)
    			if(b[j].x>=a[i].l&&b[j].x<=a[i].r&&b[j].y>=1){
    				++ans;--b[j].y;break;
    			}
    	printf("%d",ans);
        return 0;
    }
    
    
  • 相关阅读:
    vue-loader介绍和单页组件介绍
    webpack的插件 http-webpack-plugin。 webpack-dev-server
    webpack的介绍
    Axios 的基本使用
    如何使用 re模块的, spilt.
    为 JS 的字符串,添加一个 format 的功能。
    另一种分页器 不依赖Paginator模块的方法
    Socket初识
    网络协议
    双下方法补充以及异常处理
  • 原文地址:https://www.cnblogs.com/PPXppx/p/11230891.html
Copyright © 2011-2022 走看看