[POI 2012]Warehouse Store(堆+贪心)

题目链接

http://main.edu.pl/en/archive/oi/19/hur

题目大意

有一家专卖一种商品的店,考虑连续的n天。
第i天上午会进货Ai件商品,中午的时候会有顾客需要购买Bi件商品,可以选择满足顾客的要求,或是无视掉他。
如果要满足顾客的需求,就必须要有足够的库存。问最多能够满足多少个顾客的需求。

思路

应该是个很显然的贪心做法吧。类似这样的贪心真的是非常多的了。
维护一个大根堆。从第一天开始往后扫,假如当日剩余库存量足够满足当日的需求订单的话,就标记满足这个订单,并将这个订单中购买商品的数量加入大根堆。若当日剩余库存量不够满足当日的需求订单,且大根堆堆顶的订单大小比当日的订单大小大的话,就弹出堆顶,标记满足当日的订单,并取消掉堆顶的订单,将当日的订单大小加入堆中。

代码

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <algorithm>
#include <queue>

#define MAXN 260000

using namespace std;

typedef long long int LL;

struct Node
{
    int id;
    LL val;
    Node(){}
    Node(int _id,LL _val):id(_id),val(_val){}
};

bool operator<(Node a,Node b)
{
    return a.val<b.val;
}

bool operator>(Node a,Node b)
{
    return a.val>b.val;
}

priority_queue<Node>heap;
LL a[MAXN],b[MAXN];
int anslist[MAXN];

int main()
{
    int n,ans=0;
    LL rest=0;
    scanf("%d",&n);
    for(int i=1;i<=n;i++) scanf("%lld",&a[i]);
    for(int i=1;i<=n;i++) scanf("%lld",&b[i]);
    for(int i=1;i<=n;i++)
    {
        rest+=a[i];
        if(rest-b[i]<0)
        {
            if(heap.top().val>b[i])
            {
                rest+=heap.top().val;
                heap.pop();
                rest-=b[i];
                heap.push(Node(i,b[i]));
            }
        }
        else
        {
            rest-=b[i];
            heap.push(Node(i,b[i]));
        }
    }
    while(!heap.empty())
    {
        anslist[++ans]=heap.top().id;
        heap.pop();
    }
    sort(anslist+1,anslist+ans+1);
    printf("%d\n",ans);
    for(int i=1;i<=ans;i++)
        printf("%d ",anslist[i]);
    printf("\n");
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 2012-2021年期间,百度地图点击量激增,。该点亮了在POI数据方面取得了重大突破与丰硕成果。 首先,在数据广度方面,百度POI数据覆盖范围不断扩大。从城市范围到县级范围,再到乡镇、村庄的覆盖,百度POI数据涵盖了更多的地理位置信息,为用户提供了更准确、细致的地理位置标识。 其次,在数据深度方面,百度POI数据逐渐丰富与完善。从最初提供基本的商家、景点信息,到后来增加了酒店、餐厅、娱乐场所等更多类别的POI数据,百度POI数据的种类更加丰富多样,用户能够更方便地查找到所需的具体位置与服务。 此外,百度POI数据还不断更新与优化,保证了数据的时效性与准确性。2012-2021年期间,百度通过引入大量国内外的数据合作伙伴,对POI进行不断的更新与整理,提高了数据的准确性和质量。此外,百度还通过众包的方式,鼓励用户亲身体验并提供POI数据的反馈,加快了数据的更新速度。 至今,百度POI数据已经成为用户寻找位置、探索周边、选择服务的重要工具。它不仅为用户提供了丰富的信息资源,也促进了电商、O2O等领域的快速发展。相信在未来,百度POI数据将继续发挥重要的作用,为用户带来更好的地理位置服务体验。 ### 回答2: 2012-2021年间,百度POI数据经历了长足的发展和变化。百度POIPoint of Interest)是指百度地图中所标注的各种地点和位置信息,如餐馆、商店、景点等。 首先,百度POI数据在这十年间数量迅速增加。随着用户对位置信息需求的增长和百度地图用户群体的扩大,越来越多的POI数据被纳入百度地图数据库中。这使得用户可以更方便地查询、导航和了解周围的位置信息。 其次,百度POI数据的准确性和完整性也得到了提升。百度不断优化算法和增加数据源,以提高POI数据的可信度和实用性。例如,百度通过搜集用户的反馈信息和使用大数据分析技术,不断更新POI信息,保证了数据的最新性和准确性。 另外,百度还逐渐完善了POI数据的分类和检索方式。除了常见的餐馆、商店等基础分类,百度还增加了更具细分特色的POI数据,如咖啡馆、超市、健身房等。同时,借助人工智能和自然语言处理技术,百度也加强了对POI数据的语义理解和智能检索能力,提供了更优质的POI搜索结果。 最后,随着移动互联网的普及和技术的发展,百度还将POI数据与其他服务相结合,创造了更多有价值的功能。例如,百度将POI数据与打车服务相结合,提供了快速叫车的功能;将POI数据与外卖服务相结合,实现了一键订餐和送餐服务。 总之,2012-2021年间,百度POI数据经历了数量的大幅增加,准确性的提升,分类和检索方式的完善,以及与其他服务的结合创新。这些改进使得用户能够更方便地获取、利用和享受基于位置信息的服务。 ### 回答3: 2012年至2021年期间,百度POI(兴趣点)数据经历了长足的发展和变化。POI数据是指百度地图上所标注的各类地理位置信息,包括商业设施、交通设施、餐饮娱乐、医疗教育等。 在这十年间,随着移动互联网的普及和用户需求的增加,百度POI数据逐渐扩大和完善。首先,百度增加了大量新的POI数据点,覆盖了更多的城市和区域。不仅一线城市和旅游热点地区有了详细的POI信息,二线城市和乡村地区的POI数据也得到了增强。 其次,百度POI数据的分类和分类精度也得到了提高。原先的POI分类主要包括餐饮、购物、住宿等基本类别,而现在的POI数据能更加详细地划分为各种具体类型,如咖啡厅、超市、酒店等,方便用户查找和选择。 在数据更新方面,百度也加强了POI数据的更新频率和准确性。由于城市的发展变化以及商业设施的兴衰,百度通过不断收集用户反馈和行业动态,及时更新POI数据,确保用户能获得最新最准确的信息。 此外,随着技术的进步,2012年至2021年间,百度POI数据也逐渐与其他数据源进行整合。例如,百度结合了社交媒体数据、公共交通数据等,使得POI数据更具实时性和多样化。 总的来说,2012-2021年是百度POI数据不断发展和完善的十年。通过增加新的POI数据点、提高分类和分类精度、加强数据更新和与其他数据源整合,百度不断提升了POI数据的质量和覆盖面,为用户提供更好的地理位置信息服务。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值