大意:n个骑士, 每个骑士有战力p, 钱c, 每个骑士可以抢战力比他低的钱, 每个骑士最多抢k次, 对每个骑士求出最大钱数

按战力排序后, 堆维护动态前k大即可

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <queue>
#define REP(i,a,n) for(int i=a;i<=n;++i)
using namespace std;
typedef long long ll; const int N = 2e5+10;
int n, m, k;
ll sum, a[N];
struct _ {int p, c, id;}q[N]; priority_queue<int,vector<int>,greater<int> > s; int main() {
s.push(0x7fffffff);
scanf("%d%d", &n, &k);
REP(i,1,n) scanf("%d",&q[i].p),q[i].id=i;
REP(i,1,n) scanf("%d",&q[i].c);
sort(q+1,q+1+n,[](_ a,_ b) {return a.p<b.p;});
REP(i,1,n) {
a[q[i].id] = sum+q[i].c;
if (s.size()<=k) s.push(q[i].c),sum+=q[i].c;
else if (s.top()<q[i].c) {
sum += q[i].c-s.top();
s.pop();s.push(q[i].c);
}
}
REP(i,1,n) printf("%lld ", a[i]);
puts("");
}

最新文章

  1. BPM配置故事之案例10-获取外部数据
  2. 根据xml文件名获取xml数据并转化为实体。
  3. .NET编码解码(HtmlEncode与HtmlEncode)
  4. 《IBM BPM实战指南》读书笔记
  5. [osx] 设置crontab
  6. mysql 时间函数转换
  7. Linux常用文件管理命令
  8. php异步调试和线上调试网站程序的方法
  9. 1509: [NOI2003]逃学的小孩 - BZOJ
  10. 【WinForm】使用NSIS发布程序
  11. struts2面试题
  12. hdu 5627 Clarke and MST(最大 生成树)
  13. #include &lt;boost/shared_ptr.hpp&gt;
  14. XP实验报告
  15. SpringBoot应用的前台目录
  16. python中线程和进程(二)
  17. 微信扫码登录(3)---授权码code获取用户基本信息
  18. c/c++ linux 进程间通信系列1,使用signal,kill
  19. ORA-27302: 错误发生在: sskgpwrm1
  20. BZOJ2160拉拉队排练——回文自动机

热门文章

  1. MySQL root账户密码设为“root”后执行命令提示ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
  2. Zookeeper学习记录(二):使用以及配置
  3. sqlserver 判断各种不存在
  4. 【前端开发】利用Fiddler抓包工具进行本地调试
  5. troubleshooting-Kerberos 鉴权异常
  6. 解决mysql的Too many connections
  7. 20145105 《Java程序设计》第10周学习总结
  8. Python3基础 issubclass 判断基类
  9. BZOJ 4552: [Tjoi2016&amp;Heoi2016]排序 线段树 二分
  10. POJ 3687 Labeling Balls(拓扑排序)题解