CF EducationalRound93 E.Two Types of Spells(权值线段树+堆维护最值)
题意每个魔法都有自己的伤害,魔法1是加倍魔法,可以加倍后一个魔法的伤害,魔法0是普通魔法,给出q个更新,要求每次更新后计算魔法能造成的伤害最大值。思路设加倍魔法数量为k,权值线段树每次查询前k大的伤害和sumk(加倍多出来的伤害),mutiset维护魔法1和魔法2的最值,如果魔法1的最小值比魔法0的最大值大或不存在魔法0,sumk就要改变,因为至多加倍k-1个魔法1。代码#include<bits/stdc++.h>#define ll long long#define LL lo
原创
2020-08-17 22:14:36 ·
244 阅读 ·
0 评论