Codeforces #488div.2 - 994B - Knights of a Polygonal Table(堆+贪心)

news/2024/5/20 5:06:04 标签: codeforces, , 贪心

很明显要维护一个大小为k的小顶,每次判断小顶是否值得被剔除。
需要注意两点:
①力量相同的骑士共用一个状态;
为0时可能会导致取空的情况;
③10*10^9>INTMAX

#include <cstdio>
#include <queue>
#include <algorithm>
using namespace std;
struct ap{int k,b,id;}a[100005];
bool cmp(ap x,ap y){return x.k<y.k;}
long long ansx[100005];
int main(){
    int n,m;
    scanf("%d%d",&n,&m);
    for(int i=1;i<=n;i++){
        scanf("%d",&a[i].k);
        a[i].id=i;
    }
    for(int i=1;i<=n;i++){
        scanf("%d",&a[i].b);
    }
    sort(a+1,a+1+n,cmp);
    priority_queue<int,vector<int>,greater<int> >Q;
    long long ans=0,ansp=0;
    for(int i=1;i<=n;i++){
        if(a[i].k!=a[i-1].k)ansp=ans;
        ansx[a[i].id]=ansp+a[i].b;
        if(m&&Q.size()==m&&Q.top()<a[i].b){
            ans-=Q.top();Q.pop();
            ans+=a[i].b;Q.push(a[i].b);
        }
        if(Q.size()<m){
            Q.push(a[i].b);
            ans+=a[i].b;
        }
    }
    for(int i=1;i<=n;i++){
        printf("%I64d ",ansx[i]);
    }
}

http://www.niftyadmin.cn/n/1247191.html

相关文章

在ubuntu上面安装perl

随着人们对编程效率追求热情的提高&#xff0c;脚本语言便开始深受人们的喜爱&#xff0c;其中就包括perl。在这里我们不深究perl的历史&#xff0c;也不争论perl和Python孰优孰劣&#xff0c;我们看看怎么在ubuntu上面安装perl&#xff0c;我用的版本是ubuntu11.10。 在www.pe…

Codeforces #488div.2 - 994C - Two Squares(计算几何入门)

第一个也是很简单就容易判断的是&#xff1a;两个线段一旦相交就一定是YES 然后就是判断不相交但是也是YES的情况了&#xff0c;我们可以这样思考&#xff1a; 依照题意&#xff0c;正方形的点是按时钟顺序给出的&#xff0c;那么在正方形中的点就一定会被头尾依次相连的四个…

Perl调用shell命令方法小结

一、system perl也可以用system调用shell的命令,它和awk的system一样,返回值也是它调用的命令的退出状态. 复制代码代码如下:[rootAX3sp2 ~]# cat aa.pl#! /usr/bin/perl -w$file "wt.pl";system("ls -l wt.pl");$result system "ls -l $file"…

Codeforces #488div.2 - 994E - Careful Maneuvering(状态压缩+暴力枚举)

唉&#xff01;&#xff01;读错题了&#xff01;(0,0)也可以。话说我是怎么读成要挖去原点的… 首先讲一下状态压缩的方法&#xff1a;每一位代表一架大飞船&#xff0c;那么长度为6060的位串就代表了一组大飞船。 其次我们考虑何时飞船能被击毁&#xff1a;很明显当大飞船和…

ubuntu系统下安装windows并引导双系统

首先&#xff0c;感谢wenbusy&#xff0c;给了我很大的帮助&#xff0c;以下部分内容来自于该博主。 windows系统安装ubuntu很容易&#xff0c;但在ubuntu下如何安装windows构成双系统并成功引导&#xff1f;本文来详细介绍。 系统环境&#xff1a;ubuntu14.04LTS&#xff0c;安…

BUPT kamiyoru's training #1 codeforces#486div.3

A - Diverse Team 签到题就不多说了。 #include <cstdio> int find[105]; int main(){int n,k,distinc0,a;scanf("%d%d",&n,&k);for(int i1;i<n;i){scanf("%d",&a);if(!find[a]){find[a]i;distinc;}}puts(distinc>k?"YES&…

pyHeatMap:使用Python绘制热图的库

pyHeatMap是一个使用Python生成热图的库&#xff0c;基本代码是我一年多之前写的&#xff0c;最近把它从项目中抠出来做成一个独立的库并开源。(https://github.com/oldj/pyheatmap) 可以直接下载源码安装最新的版本&#xff0c;也可以通过pip或easy_install安装稳定的发布版&a…

BUPT kamiyoru's training #2 codeforces#485div.2

A - Infinity Gauntlet 签到题&#xff0c;就不多扯了。 #include <iostream> #include <string> #include <map> using namespace std; char str[10][10]{"","Power","Time","Space","Soul","Re…