Codeforces 994B. Knights of a Polygonal Table
解题思路
- 将骑士按力量从小到大排序,到第i个骑士的时候,前面的i-1个骑士他都可以击败,找出金币最多的k个。
- 用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相关推荐
- CF--994B. Knights of a Polygonal Table
点击打开链接 题意: n个战士,每个人最多掠夺k个人的金币,只能掠夺战斗力比他低的人的,给出n个人的战斗力值和金币数,输出每个人做多能够得到的金币数 思路: 因为是两个顺序,所以想着用set,但是不太 ...
- UVA1364 Knights of the Round Table(双连通分量、二分图染色,超详细解释)
整理的算法模板合集: ACM模板 UVA1364 Knights of the Round Table 题目中要求互相有憎恨关系的人不能坐在相邻的位置,一个圆桌可以很形象地看作是一个环,也就是说我们两 ...
- Codeforces Round #443 (Div. 2) B. Table Tennis
Codeforces Round #443 (Div. 2) B. Table Tennis 879B 啊啊啊啊啊啊 做的时候太天真了--一开始的直觉是对的--orz后来想多了,pretest ...
- 【POJ - 2942】Knights of the Round Table(点双连通分量,二分图判断奇环奇圈)
题干: Being a knight is a very attractive career: searching for the Holy Grail, saving damsels in dist ...
- Codeforces 754E:Dasha and cyclic table
Codeforces 754E:Dasha and cyclic table 题目链接:http://codeforces.com/problemset/problem/754/E 题目大意:$A$矩 ...
- 贪心 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]; ...
- 如果圆桌骑士有特殊情况(Knights of the Round Table)
题目描述 Being a knight is a very attractive career: searching for the Holy Grail, saving damsels in dis ...
- POJ2942 UVA1364 Knights of the Round Table 圆桌骑士
POJ2942 洛谷UVA1364(博主没有翻墙uva实在是太慢了) 以骑士为结点建立无向图,两个骑士间存在边表示两个骑士可以相邻(用邻接矩阵存图,初始化全为1,读入一对憎恨关系就删去一条边即可),则 ...
- POJ 2942 Knights of the Round Table (算竞进阶习题)
很巧的一道点双 两个骑士如果相互憎恨,我们考虑连边的话,不太好处理答案,所以我们尝试一下建反图. 如果两个骑士没有相互憎恨,我们就在他们两个人之间连一条无向边,最后要让你会议召开,那么显然是选择任意一 ...
最新文章
- asp.net编程:asp.net中如何设置页面的编码
- (转)资料收集,新手必备的sql数据导入导出知识
- 浅谈DCIM平台的6化
- 1114D . Flood Fill
- python将一行作为字段_Python 变量代入,指定某一行截取输出字段怎么办?
- 傲腾会是NAND的接班人么?
- Ubuntu系统下载(清华大学开源软件镜像站)(ubuntu-20.04.1-desktop-amd64.iso)
- python制作表情,使用Python制作滑稽表情
- android 拍照和相册,Android 拍照和从相册选照片
- 16个最新创意品牌Logo设计 —— “形神”兼具的设计,方显高级和质感
- 如何批量一键下单寄快递
- python英文词频统计-Python实现统计英文文章词频的方法分析
- 用例图(use case diagram)
- 精确到秒!一位清华学霸的学习生活计划表,值得借鉴!
- Java高级面试-面经
- 打包aab_手动安装Android .abb(bundletool 如何使用)(.aab安装)(GooglePlay测试)...
- 南加大计算机专业本科sat要求,南加州大学申请条件有哪些?
- Springboot短信验证和第三方登录
- 基于Java的连连看游戏设计与实现
- Qt不使用unicode字符集
热门文章
- python秒表小项目_适合新手练习的几个python小项目
- demod函数_MATLAB信号处理工具箱函数 | 学步园
- es6-promise源码重点分析难点解析
- mysql启用组提交变量_MySQL的COMMIT_ORDER模式下组提交分组实现与BUG案例源码剖析...
- 【强烈推荐】《剑指Offer:名企面试官精讲典型编程题》一书中IT名企经典面试题
- P4774 [NOI2018]屠龙勇士
- bootstrap学习网站
- Bootstrap 学习之js插件(模态框(Modal)插件)
- poj 3082多边形相交 'Roid Rage
- 一些C和C++的常见问题集锦 ----不停更新