Knights of a Polygonal Table CodeForces - 994B (贪心)
2024-10-20 08:37:50
大意: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("");
}
最新文章
- BPM配置故事之案例10-获取外部数据
- 根据xml文件名获取xml数据并转化为实体。
- .NET编码解码(HtmlEncode与HtmlEncode)
- 《IBM BPM实战指南》读书笔记
- [osx] 设置crontab
- mysql 时间函数转换
- Linux常用文件管理命令
- php异步调试和线上调试网站程序的方法
- 1509: [NOI2003]逃学的小孩 - BZOJ
- 【WinForm】使用NSIS发布程序
- struts2面试题
- hdu 5627 Clarke and MST(最大 生成树)
- #include <;boost/shared_ptr.hpp>;
- XP实验报告
- SpringBoot应用的前台目录
- python中线程和进程(二)
- 微信扫码登录(3)---授权码code获取用户基本信息
- c/c++ linux 进程间通信系列1,使用signal,kill
- ORA-27302: 错误发生在: sskgpwrm1
- BZOJ2160拉拉队排练——回文自动机
热门文章
- MySQL root账户密码设为“root”后执行命令提示ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
- Zookeeper学习记录(二):使用以及配置
- sqlserver 判断各种不存在
- 【前端开发】利用Fiddler抓包工具进行本地调试
- troubleshooting-Kerberos 鉴权异常
- 解决mysql的Too many connections
- 20145105 《Java程序设计》第10周学习总结
- Python3基础 issubclass 判断基类
- BZOJ 4552: [Tjoi2016&;Heoi2016]排序 线段树 二分
- POJ 3687 Labeling Balls(拓扑排序)题解