• 题解 P1478 【陶陶摘苹果(升级版)】


    看着你们累死累活得快排、冒泡、结构体特殊冒泡、还有dp...
    蒟蒻表示真的不用那么麻烦!


    难度:新手村+1
    压行情况:0
    理解难度:0
    首先我们来了解一下优先队列:(自己抄的自己...)
    讲元素一个个放进队列里,自动维护(排序),然后抽出来,堆排序过程!
    原先的堆排序是要开一个数组来着...


    那么我们的思路也很简单:摘最省力气的苹果,然后减啊减,就这个样子...
    Code(c++):

    #include <iostream>
    #include <queue>//优先队列
    #include <cstdio>
    using namespace std;
    priority_queue<int,vector<int>,greater<int> >qwq;
    //小根堆,从小到大排序
    int main()
    {
    	int n,s,a,b,h,f,count=0;
    	scanf("%d%d%d%d",&n,&s,&a,&b);
    	b=a+b;//这是陶陶最大的高度
    	for (int i=1;i<=n;i++)
    	{
    		scanf("%d%d",&h,&f);
    		if (h>b||f>s)
    		{//如果陶陶没力气摘或者够不着就放弃数据
    			continue;
    		}
    		else
    		{如果摘得着就把它的力气值塞进堆里
    			qwq.push(f);
    		}
    	}
    	while (s>0&&s>=qwq.top())
        //保证下一个数据能使用,有力气摘
    	{//能摘的话就count++,然后把力气值减掉
    		s=s-qwq.top();
    		count++;
    		qwq.pop();
    	}
    	printf("%d",count);//然后把计数器输出来
    	return 0;
    }
    

    蒟蒻求过,毕竟秒杀冒泡。。。

  • 相关阅读:
    Java 处理cookie的方法
    HTML5的新标签-整体布局
    Git学习文档——文件状态git status
    Css中路径data用法
    python2
    hangfire
    Nginx系列~Nginx服务启动不了
    git形成本地仓库并从远处url拉取
    orcal和sql server中的字符串查找函数
    Eclipse 修改项目名称
  • 原文地址:https://www.cnblogs.com/jelly123/p/10385947.html
Copyright © 2020-2023  润新知