题目链接
题目大意:一家店,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;}新闻热点
疑难解答