该文被密码保护。 阅读全文
posted @ 2024-02-19 14:59 最爱丁珰 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 好题,介绍一下向上取整的整除分块 首先来看一下另一种做法吧 先看这篇文章 解释一下,再次需要操作的次数实际上就是还有多少个连续的\(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 最爱丁珰 阅读(1) 评论(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) 编辑
摘要: 这个模型太经典了就不说了,但是提一下一个扩展 如果题目给的这\(n\)个货仓是动态给的,同时动态询问中位数以及距离和,怎么做? 这个时候就要用对顶堆,可以用两个变量记录两个堆里元素总和,用小根堆总和-中位数∗小根堆大小+中位数∗大根堆大小-大根堆总和即为货仓选址总距离,时间复杂度为\(O(1)\) 阅读全文
posted @ 2024-04-14 20:59 最爱丁珰 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 转化成差分之后,差分数组里面正数的和一定不会小于负数的和的绝对值(因为\(h_i>0\)),所以答案的下界是正数的和 我们来证明一定存在一种方案达到下界 用数学归纳法。设差分数组为\(d\) 显然\(d_1≥0\);也有\(d_1+d_2≥0\)(假设\(d_2\)为负),也就是说,我们可以通过先操 阅读全文
posted @ 2024-04-14 19:17 最爱丁珰 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 来严格证明一下 就是证明每一次操作中,中间的牛一定至少有一头牛的身高与两端相等,所以每次都要进行操作 假设这次操作是说\(l\)和\(r\)可以互相看见,那么我们就要将\([l+1,r-1]\)的身高减一 从最开始,\([l,r]\)的身高都是相同的。在这次操作之前,由于是不会出现矛盾的,所以影响只 阅读全文
posted @ 2024-04-14 10:07 最爱丁珰 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 证明一下反悔贪心正确性 假设我们当前考虑的第\(i\)个物品,前面\(i-1\)个物品已经是满足题意的情况下尽量大的\(t\)个物品了 注意由于这是反悔贪心,所以别从全局的决策包容性的角度考虑,因为之前做出的选择可能根本不是全局最优解;我们应该考虑这种决策之后,对于前\(i\)个物品来说,一定是尽量 阅读全文
posted @ 2024-04-14 09:31 最爱丁珰 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 先考虑无解的情况,来看样例三,很容易发现是因为\(k\)太大了,所以每次都会修改之前已经改好的。于是我们猜想,如果任意一段连续的数的长度都小于\(k\),那么就无解,证明比较容易,反证就好了,如果存在一个解,那么这个解的最后一步操作,一定是连续的\(k\)个格子,而且这\(k\)个格子的颜色一定要一 阅读全文
posted @ 2024-04-14 09:17 最爱丁珰 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 这是QT代码必须包含的头文件 代码首先要创建一个程序对象,return也要这么写 这个头文件是创立弹出窗口中的标签的(也就是文本框) 使用的时候这么创建对象 这个头文件是创建行编辑框 仍然是这么创建对象用 这个头文件是创建按钮 仍然是这么创建对象用 这些对象都有一个成员函数setText,也就是输出 阅读全文
posted @ 2024-04-13 00:04 最爱丁珰 阅读(2) 评论(0) 推荐(0) 编辑