Codeforces976E Well played!

Posted 2855669158

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces976E Well played!相关的知识,希望对你有一定的参考价值。

题意:n个怪物,没每个怪物有血量和攻击力,有两种操作,第一种使得生命翻倍,第二种使得伤害等于生命值,第一种最多a次,第二种最多b次,问最后所有怪的总攻击力多少

题解:贪心,第一种操作一定加在一直怪上最优,如果不考虑攻击力,也就是要使得生命值最高,所以加在同一只怪上更优

#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
struct node{ll h, d, m;}t[200100];
ll n, a, b, s1, s2, ans;
int main(){
    ios::sync_with_stdio(0);
    cin>>n>>a>>b;
    b = min(b, n);
    for(ll i=0;i<n;i++){
        cin>>t[i].h>>t[i].d;
        t[i].m = max(0LL, t[i].h-t[i].d);
        s1 += t[i].d;
    }
    if(!b) {cout<<s1<<endl;return 0;}
    sort(t, t+n, [](node aa,node bb){return aa.m>bb.m;});
    for(ll i=0;i<b;i++) s2 += t[i].m;
    for(ll i=0;i<n;i++) ans = max(ans, s2-t[i<b?i:(b-1)].m+(t[i].h<<a)-t[i].d);
    cout<<s1+ans<<endl;
    return 0;
}

 

以上是关于Codeforces976E Well played!的主要内容,如果未能解决你的问题,请参考以下文章

cf976e Well played!

Codeforces 976E

Codeforces225B - Well-known Numbers

[codeforces538E]Demiurges Play Again

A - Playing with Paper (CodeForces - 527A)

Codeforces E. Bash Plays with Functions