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