2802: [Poi2012]Warehouse Store

来源:互联网 发布:多臂老虎机推荐算法 编辑:程序博客网 时间:2024/06/16 12:37

题目链接

题目大意:一家店,n天。第i天上午会进货Ai件,中午的时候有顾客购买Bi件,可以选择满足或是无视。问最多能够满足多少个顾客的需求。

题解:闷声贪大心

#include <iostream>#include <cstdio>#include <algorithm>#include <queue>using namespace std;priority_queue <pair<int,int> > q;#define MP(b,i) make_pair<int,int>(b, i)int n,s;long long now;int vis[250005],a[250005],b[250005];int main(){    cin>>n;    for(int i=1;i<=n;i++)    scanf("%d",&a[i]);    for(int i=1;i<=n;i++)    scanf("%d",&b[i]);    for(int i=1;i<=n;i++)    {        s++;vis[i]=1;now+=a[i]-b[i];q.push(MP(b[i],i));        if(now<0){vis[q.top().second]=0,now+=q.top().first,q.pop();s--;}    }    cout<<s<<endl;    for(int i=1;i<=n;i++)    if(vis[i]) printf("%d ",i);    return 0;} 
0 0
原创粉丝点击