• [bzoj1707]tanning分配防晒霜_贪心+排序


    tanning分配防晒霜 bzoj-1707

        题目大意:给出每个点所能接受的区间,给出m个可以使单个点固定在一个值的方法,每种方法能使用有限次。

        注释:1<=N<=2500

          想法:这题是瞎jb写然后A了,看了大佬的证明才知道自己写的贪心是正确的。对于每一个防晒霜来讲,我显然是想让它使用在上界更大的奶牛身上,证明太恶心了,luogu上全都是,自己随意看一下就好了qwq。

        最后,附上丑陋的代码... ...

    #include <iostream>
    #include <cstdio>
    #include <algorithm>
    using namespace std;
    int ans;
    struct Node
    {
    	int l,r;
    }a[10010];
    bool cmp_for_a(Node a,Node b)
    {
    	return a.r==b.r?a.l<b.l:a.r<b.r;
    }
    struct Abcd
    {
    	int val;
    	int num;
    }b[10010];
    bool cmp_for_b(Abcd a,Abcd b)
    {
    	return a.val<b.val;
    }
    inline bool check(int i,int j)
    {
    	if(a[i].l<=b[j].val&&a[i].r>=b[j].val&&b[j].num) return true;
    	return false;
    }
    int main()
    {
    	int n,m;
    	scanf("%d%d",&n,&m);
    	for(int i=1;i<=n;i++)
    	{
    		scanf("%d%d",&a[i].l,&a[i].r);
    	}
    	for(int i=1;i<=m;i++)
    	{
    		scanf("%d%d",&b[i].val,&b[i].num);
    	}
    	sort(a+1,a+n+1,cmp_for_a);
    	sort(b+1,b+m+1,cmp_for_b);
    	// bool flag;
    	for(int i=1;i<=n;i++)
    	{
    		// flag=false;
    		for(int j=1;j<=m;j++)
    		{
    			if(check(i,j))
    			{
    				// flag=true;
    				ans++;
    				b[j].num--;
    				break;
    			}
    		}
    	}
    	printf("%d
    ",ans);
    	return 0;
    }
    

         小结:贪心题总是很有意思qwq

  • 相关阅读:
    Spring spEL
    Spring 使用外部部署文件
    Spring 自动装配
    spring 属性配置细节
    hdu 1054 Strategic Game
    fzu 2037 Maximum Value Problem
    将博客搬至CSDN
    HDU 4714 Tree2Cycle
    HDU 1009 The Shortest Path in Nya Graph
    POJ 1942 Paths on a Grid 组合数的优化
  • 原文地址:https://www.cnblogs.com/ShuraK/p/8612294.html
Copyright © 2020-2023  润新知