摘要:
好题,介绍一下向上取整的整除分块 首先来看一下另一种做法吧 先看这篇文章 解释一下,再次需要操作的次数实际上就是还有多少个连续的\(1\)的段,不难发现在攻击力为\(k\)的时候,像广搜一样操作\(x\)次后,与操作一次攻击力为\(xk\)的操作是等价的,所以有最后的答案是\(ans_0+ans_k 阅读全文
摘要:
先给出做法 m,cnt = 0,0 for n in a: if cnt == 0: m = n cnt = 1 elif n == m: cnt += 1 else: cnt -= 1 return m 讲一下正确性 我们将上述看成配对操作,对于cnt==0的这个if和n==m的这个if,我们认为 阅读全文
摘要:
这道题目的模型倒是可以记住 我们发现这个配对很像摩尔投票,所以考虑原数列是否有主元素 对于一个集合,我们选出其中最大的\(a_i\),假设剩余的\(a\)的和小于等于\(a_i\)(此时有主元素),那么比较显而易见的就是最终会分出\(a_i\)个组;否则的话,我们考虑下界\(\lceil \frac 阅读全文
摘要:
通过这道题目来学习一下离散化二维前缀和思想 这里最多\(1000\)头牛,涉及的\(x\)和\(y\)最多各为\(1000\)个,于是离散化之后最多形成一个\(1000\times 1000\)的矩阵,完全可以二维前缀和 来看一下代码细节,代码只离散化了\(x\),没有离散化\(y\),简化了代码复 阅读全文