解题思路

  1. 将骑士按力量从小到大排序,到第i个骑士的时候,前面的i-1个骑士他都可以击败,找出金币最多的k个。
  2. 用multiset存金币最多的k个骑士的金币数,如果多余k个,则删除金币数最小的,直到只有k个数字。

我就是因为没有用multiset在最后5分钟被hack了。

代码

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int n,k;
//输入,p表示力量,c表示金币,idx表示输入时的位置
struct node{ll p;ll c;int idx;
}a[500050];bool cmp(node x, node y){return x.p < y.p;
}
ll ans[500050];
int main(){ios::sync_with_stdio(false); cin >> n >> k;//输入并按力量从小到大排序for(int i = 1;i <= n; ++i) cin >> a[i].p, a[i].idx = i;for(int i = 1;i <= n; ++i) cin >> a[i].c;sort(a+1,a+1+n,cmp);multiset <int> s; //存第i个骑士可以击败的不超过k个骑士的金币数 for(int i = 1;i <= n; ++i){ans[a[i].idx] = a[i].c; for(auto t:s){ans[a[i].idx] += t;}s.insert(a[i].c);//如果将第i个骑士的金币数插入之后大于k个数字,就删除到只有k个 while(s.size() > k){s.erase(s.begin());}}for(int i = 1;i <= n; ++i) cout << ans[i] << " ";cout << endl;return 0;
}

Codeforces 994B. Knights of a Polygonal Table相关推荐

  1. CF--994B. Knights of a Polygonal Table

    点击打开链接 题意: n个战士,每个人最多掠夺k个人的金币,只能掠夺战斗力比他低的人的,给出n个人的战斗力值和金币数,输出每个人做多能够得到的金币数 思路: 因为是两个顺序,所以想着用set,但是不太 ...

  2. UVA1364 Knights of the Round Table(双连通分量、二分图染色,超详细解释)

    整理的算法模板合集: ACM模板 UVA1364 Knights of the Round Table 题目中要求互相有憎恨关系的人不能坐在相邻的位置,一个圆桌可以很形象地看作是一个环,也就是说我们两 ...

  3. Codeforces Round #443 (Div. 2) B. Table Tennis

    Codeforces Round #443 (Div. 2) B. Table Tennis     879B 啊啊啊啊啊啊 做的时候太天真了--一开始的直觉是对的--orz后来想多了,pretest ...

  4. 【POJ - 2942】Knights of the Round Table(点双连通分量,二分图判断奇环奇圈)

    题干: Being a knight is a very attractive career: searching for the Holy Grail, saving damsels in dist ...

  5. Codeforces 754E:Dasha and cyclic table

    Codeforces 754E:Dasha and cyclic table 题目链接:http://codeforces.com/problemset/problem/754/E 题目大意:$A$矩 ...

  6. 贪心 Codeforces Round #273 (Div. 2) C. Table Decorations

    题目传送门 1 /* 2 贪心:排序后,当a[3] > 2 * (a[1] + a[2]), 可以最多的2个,其他的都是1个,ggr,ggb, ggr... ans = a[1] + a[2]; ...

  7. 如果圆桌骑士有特殊情况(Knights of the Round Table)

    题目描述 Being a knight is a very attractive career: searching for the Holy Grail, saving damsels in dis ...

  8. POJ2942 UVA1364 Knights of the Round Table 圆桌骑士

    POJ2942 洛谷UVA1364(博主没有翻墙uva实在是太慢了) 以骑士为结点建立无向图,两个骑士间存在边表示两个骑士可以相邻(用邻接矩阵存图,初始化全为1,读入一对憎恨关系就删去一条边即可),则 ...

  9. POJ 2942 Knights of the Round Table (算竞进阶习题)

    很巧的一道点双 两个骑士如果相互憎恨,我们考虑连边的话,不太好处理答案,所以我们尝试一下建反图. 如果两个骑士没有相互憎恨,我们就在他们两个人之间连一条无向边,最后要让你会议召开,那么显然是选择任意一 ...

最新文章

  1. asp.net编程:asp.net中如何设置页面的编码
  2. (转)资料收集,新手必备的sql数据导入导出知识
  3. 浅谈DCIM平台的6化
  4. 1114D . Flood Fill
  5. python将一行作为字段_Python 变量代入,指定某一行截取输出字段怎么办?
  6. 傲腾会是NAND的接班人么?
  7. Ubuntu系统下载(清华大学开源软件镜像站)(ubuntu-20.04.1-desktop-amd64.iso)
  8. python制作表情,使用Python制作滑稽表情
  9. android 拍照和相册,Android 拍照和从相册选照片
  10. 16个最新创意品牌Logo设计 —— “形神”兼具的设计,方显高级和质感
  11. 如何批量一键下单寄快递
  12. python英文词频统计-Python实现统计英文文章词频的方法分析
  13. 用例图(use case diagram)
  14. 精确到秒!一位清华学霸的学习生活计划表,值得借鉴!
  15. Java高级面试-面经
  16. 打包aab_手动安装Android .abb(bundletool 如何使用)(.aab安装)(GooglePlay测试)...
  17. 南加大计算机专业本科sat要求,南加州大学申请条件有哪些?
  18. Springboot短信验证和第三方登录
  19. 基于Java的连连看游戏设计与实现
  20. Qt不使用unicode字符集

热门文章

  1. python秒表小项目_适合新手练习的几个python小项目
  2. demod函数_MATLAB信号处理工具箱函数 | 学步园
  3. es6-promise源码重点分析难点解析
  4. mysql启用组提交变量_MySQL的COMMIT_ORDER模式下组提交分组实现与BUG案例源码剖析...
  5. 【强烈推荐】《剑指Offer:名企面试官精讲典型编程题》一书中IT名企经典面试题
  6. P4774 [NOI2018]屠龙勇士
  7. bootstrap学习网站
  8. Bootstrap 学习之js插件(模态框(Modal)插件)
  9. poj 3082多边形相交 'Roid Rage
  10. 一些C和C++的常见问题集锦 ----不停更新