每日一题 3.25 tokitsukaze and Soldier

tokitsukaze and Soldier

https://ac.nowcoder.com/acm/problem/50439

这是一个贪心题
按容纳人数排序 当新加入的人的容纳人数小于总人时 去除人数差个战力最小的人
每次加入人都会记录一下最大值
最后就求出了军团战力的最大值

#include <bits/stdc++.h>
#define ll long long
ll const N=1e5+5;
using namespace std;
ll n,v[N],s[N];
priority_queue<ll, vector<ll>, greater<ll> > q;
struct T{
int v,s;
}k[N];
bool cmp(T a,T b){
    return a.s>b.s;
};
int main()
{
   scanf("%d",&n);
   for(int i=1;i<=n;++i)scanf("%d%d",&k[i].v,&k[i].s);
   sort(k+1,k+1+n,cmp);
   ll z=0,ans=0;
   for(int i=1;i<=n;++i)
   {
      z+=k[i].v;
      q.push(k[i].v);
      while(q.size()>k[i].s)
      {
          z-=q.top();
          q.pop();
      }
      ans=max(ans,z);
   }
    cout<<ans<<endl;
    return 0;
}
每日一题题解 文章被收录于专栏

每日一题题解的汇集

全部评论

相关推荐

这就是上等人的社会吗:都先停一停,有没有hxd告诉我在哪里点京东外卖,捣鼓半天,注册成了专送骑手查看图片
投递美团等公司6个岗位 > 京东美团大战,你怎么看?
点赞 评论 收藏
分享
allin秋招的大菠萝很爱交友:后续,已拿offer ~查看图片
点赞 评论 收藏
分享
03-05 12:52
吉林大学 Java
挣K存W养DOG:他的价值在于把他家里积攒的财富回馈给社会
点赞 评论 收藏
分享
评论
7
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务