首页 > 其他分享 >CF1784C Monsters (hard version) 题解

CF1784C Monsters (hard version) 题解

时间:2023-02-12 16:36:22浏览次数:38  
标签:前缀 题解 sum hard CF1784C version 多余 当前

为了便于表述,下文中用"数"替代怪物的血量。

我们换一种不同于 easy version 中的计算答案的方法。

我们先还是按照 easy version 中的贪心操作来消除,当一个数能通过这种贪心策略被操作 $2$ 消除为 $0$,那我们就称这个数是多余的。

举个例子,例如 $\{1,1,2\}$ 中的第二个 $1$ 就是多余的,因为我们可以通过使用操作 $2$ 消除第一个 $1$ 来使第二个 $1$ 变为 $0$,但第一个 $1$ 就并不是多余的。

很显然,当一个数为 $i$,小于等于 $i$ 的数(不包含它本身)的数量大于等于 $i$ 时,$i$ 就是一个多余的数。因为多余的数并不会对答案有影响,所以我们可以直接删去这些数。

设 $b$ 为当前前缀删去多余的数后的数列,$p$ 为 $b$ 的长度,那么答案就是 $\sum_{i = 1}^{p} (b_i - i)$,化简一下就是 $\sum_{i = 1}^{p} b_i - \frac{p(p+1)}{2}$。

设 $cnt_i$ 为当前 $i$ 出现的次数,可以用权值线段树去维护 $\min x - \sum_{i=1}^{x} cnt_i$,当它为负数时就代表当前出现了多余的数,一直搜到当前最小的多余的数并把它删除即可。

我们枚举每个前缀,然后依次加入当前前缀新增的数,并删除掉多余的数,时间复杂度为 $O(n\log n)$。

标签:前缀,题解,sum,hard,CF1784C,version,多余,当前
From: https://www.cnblogs.com/kowenxrz/p/17114017.html

相关文章

  • CF1786E题解
    容易为本题的弱化版CF1786C想出一个贪心:#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongintn,a[1000000];signedmain(){ intT; scanf("%d",&......
  • ABC268 题解
    比赛链接:https://atcoder.jp/contests/abc268/tasks题解:C对于每个盘子统计一下转那几次(3种情况)能够满足条件//bySkyRainWind#include<bits/stdc++.h>#definempr......
  • YACS 2023年1月月赛 甲组 T2 分割数列(二) 题解
    题目链接继上个月的分割数列(一)又出了这道题。首先还是考虑$n^2DP$,设$f[i]$为分到$i$个的最小权重之和。转移枚举上一个在哪里分就行了。显然时间会超限,我们考虑......
  • YACS 2023年1月月赛 甲组 T1 树的独立集 题解
    题目链接半夜12:00我不睡觉来这里更文章来了。。。这次的甲组好简单,第一次$AK$了,这题看上去很难,要求什么不挨边,其实分析一下就是树形$DP$。首先要求不挨边,所以我......
  • 题解 LGP9018【[USACO23JAN] Moo Route G】
    problem现在有一条数轴,\(t\)表示当前时刻。在\(t=0\)时Bessie恰好处在\(x=0\)的位置。接下来,每秒钟Bessie会向左或者向右移动一个单位距离,我们保证Bessie是在......
  • flannel 低版本glog flag redefined error 问题解决
    最近在构建一个老版本的flannel的时候碰到了此问题,记录下,方便使用解决方法glideinstall--strip-vendor--strip-vcs参考资料https://stackoverflo......
  • go: cannot find main module, but found glide.lock 问题解决
    解决方法exportGO111MODULE=auto说明此问题主要是老golang项目构建可能会出现的,新的一般不对有此问题(都基于gomod了)参考资料https://github.co......
  • abc289g题解
    考虑枚举卖出的物品个数\(i\),把\(b_i\)从大到小排序。题目的某人会买物品的条件转化为\(b_i\geqp_j-c_j\),这说明卖出的物品的集合是排序后\(b\)的一段前缀,且卖出\(i\)个......
  • 修复华硕笔记本fn+f2在ubuntu下wifi不能够正常使用和WiFi Disabled (Hard-blocked) (
    PS:要转载请注明出处,本人版权所有。PS:这个只是基于《我自己》的理解,如果和你的原则及想法相冲突,请谅解,勿喷。前置说明  本文发布于2014-12-2211:49:16,现用MarkDo......
  • CF793G Oleg and chess 题解
    \(\text{类似于主席树优化建图,直接放一张图片。}\)#include<iostream>#include<cstdio>#include<string>#include<cstring>#include<vector>#include<map>#include......