标签:队列 牛客 int sum tokitsukaze Soldier second ans ll
对于忍受程度越高的人,程度越低的能够做到,程度更高的人也能做到,因此我们按程度从大到小排序后,用优先队列维护
我们枚举每一天,将大于等于这天忍受程度都放进优先队列后,弹出小的直到满足要求
#include<bits/stdc++.h> using namespace std; const int N=1e5+10; typedef long long ll; typedef pair<ll,ll> pll; pll g[N]; int main(){ ios::sync_with_stdio(false); int n; cin>>n; int i; for(i=0;i<n;i++){ cin>>g[i].second; cin>>g[i].first; } sort(g,g+n); reverse(g,g+n); priority_queue<int,vector<int>,greater<int>> q; int j; ll sum=0; ll ans=0; for(i=n,j=0;i>=0;i--){ while(j<n&&g[j].first>=i){ q.push(g[j].second); sum+=g[j].second; j++; } while((int)q.size()>i){ auto t=q.top(); q.pop(); sum-=t; } ans=max(ans,sum); } cout<<ans<<endl; }View Code
标签:队列,牛客,int,sum,tokitsukaze,Soldier,second,ans,ll 来源: https://www.cnblogs.com/ctyakwf/p/13725806.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。