Loading

摘要: 先把普及组的坑填了,提高组以后慢慢填。(但普及组好像也没填完?) part1 杂项 \(1.\) 世界上较大的CPU生产厂家有Intel,AMD, Cyrix(现在被VIA与AMD分别收购生产线与技术),IBM。(参考:百度百科)(2016普) \(2.\) 计算机储存单位转换 8 bit = 1 阅读全文
posted @ 2021-09-19 08:59 cqbzjyh 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 传送门 Solution. 很显然的一道 DP 。 定义状态 \(dp_{i,j}\) 为在第 \(i\) 行有 \(j\) 个换行的方案数。 假设第 \(i-1\) 行为 \(\texttt{f}\) ,那么第 \(i\) 行就必须多一个换行,所以 \(dp_{i,j}=dp_{i-1,j-1}\ 阅读全文
posted @ 2022-03-12 19:18 cqbzjyh 阅读(48) 评论(0) 推荐(0) 编辑
摘要: 传送门 Solution. 莫队模板题。 \(vis_x\) 表示数值为 \(x\) 的数出现的次数。 \(cnt_x\) 表示出现次数为 \(x\) 的数的个数。 在 \(add\) 函数中我们直接求 \(vis_x\) 的最大值,即是出现次数最多的个数。在 \(del\) 函数中我们要注意如果当 阅读全文
posted @ 2022-03-09 10:12 cqbzjyh 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 Solution. IDA* \(+\) 模拟 对于这道题,我们的估价函数为中间 \(8\) 个数数值数量最多的数字个数与 \(8\) 的差值。然后再加上每种移动的模拟即可。没什么思维难度,纯靠模拟能力。 Code. 有点长,将就看吧。 #include <bits/stdc++.h> 阅读全文
posted @ 2022-02-12 09:32 cqbzjyh 阅读(26) 评论(0) 推荐(0) 编辑
摘要: link Solution. 不难发现这是一道没有深度的搜索,既然它没有深度,我们就给他加一个深度,让它变成迭代加深搜索。 首先我们枚举深度 dep ,然后我们容易发现这个分母肯定不是随机变化,是在一个范围内变化。不妨设这个分母为 \(i\) ,当前拆分的分数为 \(\frac{x}{y}\) 。显 阅读全文
posted @ 2022-02-10 14:44 cqbzjyh 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 1.用途 康托展开可以用来求一个 \(1 \sim n\) 的任意排列的排名。是一个很好的 \(\texttt{hash}\) 方法。 2.算法介绍 时间复杂度 普通的康托展开可以 \(\mathcal{O}(n^2)\) 的复杂度内求出排名,加上树状数组优化后则可以 \(\mathcal{O}(n 阅读全文
posted @ 2022-02-07 18:21 cqbzjyh 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 Solution. 我们首先发现答案是具有单调性的:砸的雪球越多构成「完美单词」的机率就越大。所有我们可以进行二分答案。 然后在 check 里面进行的操作有如下几种: 统计单词序列中每个单词出现的次数 删除位置在 \(1 \sim x\) 的字母( \(x\) 为二分的砸的雪球数量) 阅读全文
posted @ 2022-02-02 22:44 cqbzjyh 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 题面 Solution. 我们可以直观地发现 \([a,b]\) 之间能被 \(k\) 整除的个数可以等价于 \([a,b]\) 中第一个能被 \(k\) 整除的数减去最后一个能被 \(k\) 整除的数的差除 \(k\) 加 \(1\)。 我们设 \(x\in[a,b]\) 是第一个能被 \(k\) 阅读全文
posted @ 2022-01-24 15:13 cqbzjyh 阅读(41) 评论(0) 推荐(0) 编辑
摘要: Soulution. 先将原数组复制三份。 然后,我们可以用一个单调递减队列来维护 KUN 值。当某个时刻发现队首元素 \(a_i\) 除以 \(2\) 比队尾元素 \(j\) 大,这就表明了 \(i\) 元素以前已经被弹出的元素都将会在 \(j\) 处暂停播放音乐。于是我们就用数组记录答案,然后 阅读全文
posted @ 2022-01-21 22:11 cqbzjyh 阅读(25) 评论(0) 推荐(0) 编辑
摘要: Solution. 不难想到前缀和,设 A 数组的前缀和为 \(sum\), 如果 \(sum_i=sum_j\),则 \(i \sim j\) 这一段的和一定为 \(0\) 。对于当前的 \(sum_i\), 它就可以与之前的每一个值等于 \(sum_i\) 的元素构成区间和为 \(0\) ,于是 阅读全文
posted @ 2021-12-18 23:25 cqbzjyh 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 分块好像不会被卡。 Solution. 我们可以用一个 \(b\) 数组来记录该块的每种字母的数量。 在每次查询的时候,我们可以新建一个桶,根据分块的基本思想,如果 \(l\) 和 \(r\) 在同一块,就直接将 \(l \sim r\) 之间的字母加入桶。否则就把 \(l\) 和 \(r\) 之间 阅读全文
posted @ 2021-12-18 23:23 cqbzjyh 阅读(35) 评论(0) 推荐(0) 编辑