首页 > 学院 > 开发设计 > 正文

2802: [Poi2012]Warehouse Store

2019-11-06 07:24:05
字体:
来源:转载
供稿:网友

题目链接

题目大意:一家店,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;}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表