摘要: 伞兵题,写了一下午。 开始想错了构造方法,写完才发现,然后又想和写了很久( 给出一个排列,每次可以把其划分成若干段,段内不变,段出现顺序反转,求构造方案使排列有序。 题目要求在 \(n\) 次内完成排序,这引导着我们想到一次排上一个,要是能够第一次把 \(1\) 放在最前面,第二次把 \(2\) 放 阅读全文
posted @ 2021-08-07 15:50 Acfboy 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 分治 nb!!! 没想到分治居然会出现在这里啊。 输入 \(n\) 个数组成的集合。若它的一个非空子集和大于 \(k\) 则它是优秀的。若在所有包含 \(x\) 的非空子集中去掉 \(x\) 它和仍大于 \(k\) 则称 \(x\) 是无用的。求无用的数个数。 很容易想到将问题转化成求对于每个数是否 阅读全文
posted @ 2021-08-05 16:14 Acfboy 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 这题其实没什么好记录的,只是因为我被一个看上去有些神奇但实际上和我做法一样的做法困扰了好久。 主要是这样的一个方程 \(f_{i, j, k} = f_{i-1, j, k} + f_{i, j-1, k} - f_{i-1, j-1, k} + f_{i-1, j-1, k-1} \times [ 阅读全文
posted @ 2021-08-05 15:09 Acfboy 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 本以为自己对树上这些小操作玩得挺溜,但做了这道题还是发现有一些不到位的地方。 这么著名的题目就不用再写一遍了。 首先肯定是要研究一下能被观测到的条件,很套路地分成上下两部分讨论。 不难发现,一个点 \(u\) 能观测到的人必须满足 \(dep_u-w_u = dep_t-dis(s, t)\) 或 阅读全文
posted @ 2021-08-05 10:08 Acfboy 阅读(59) 评论(0) 推荐(0) 编辑
摘要: 反悔贪心 yyds! 给出数组 \(a\),每次可以花费 \(x\) 让一个数减去 \(1\),花费 \(y\) 让一个数加上 \(1\),或者花费 \(z\left|i-j\right|\) 让 \(a_i\) 减去 \(1\),\(a_j\) 加上 \(1\)。求让 \(a\) 变成 \(b\) 阅读全文
posted @ 2021-08-04 09:09 Acfboy 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 我果然一点组合数学都不会。 这里记录两个小 trick,因为短,所以就不分开了。 CF1525E \(n\) 个城市,\(m\) 个点,每秒等概率随机点亮一个未点亮的城市,被点亮的城市在此后第 \(j\) 秒能照亮距离 \(j+1\) 以内的点,求最后照亮点的期望。 首先转换成每个点的概率和是老套路 阅读全文
posted @ 2021-08-03 10:10 Acfboy 阅读(66) 评论(0) 推荐(0) 编辑
摘要: JROI 的比赛题。 不是特别难想,但是一些关于浮点数的操作需要注意。 因为精度问题等浮点数的问题,赛场上 \(100 \to 4\),赛后也调了一晚上,交了一页多才过。 从一个点出发,每次只能顺时针或逆时针转 \(90\deg\),且相邻两次不能转的方向相同,乱序给出所有转折点,求所有线段的长度的 阅读全文
posted @ 2021-08-03 08:44 Acfboy 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 组合计数题,赛场上还读错了题。 不过不读错也做不出。 求 \(\sum_{i=1}^{3n} {i \choose x}\)。 令 \(f_{x, m} = \sum_{i=0}^{n-1} {3i+m \choose x}\),则答案是 \(f_{x, 0} + {3n \choose x}\)。 阅读全文
posted @ 2021-08-02 11:28 Acfboy 阅读(68) 评论(0) 推荐(0) 编辑
摘要: 这题是课上的例题。 可是今天再做却仍然不会…… 给定一张有向图,求最长的边权递增路径。 很快可以想到 dp。 一开始的 dp 思路是对于没一条边,用起点的各个边去更新终点。但是这样复杂度是边数的平方(菊花图),渔神想出了化边为点跑最短路的巧妙做法,遗憾的是,菊花图照样把建边复杂度卡到平方。 边太麻烦 阅读全文
posted @ 2021-08-01 15:04 Acfboy 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 这题赛场上看了觉得完全不可做,这我连跑一遍都不能在 \(O(n)\) 时间内解决,却给我十万个询问,十万个点和边。 没想到短短不到 \(40\) 行代码就解决了。算法竞赛的魅力啊! \(n\) 个城市,\(m\) 辆车,对于第 \(i\) 辆车在 \(s_i + 0.5\) 时刻从 \(u_i\) 阅读全文
posted @ 2021-08-01 10:04 Acfboy 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 没想到 ABC 居然会考原根!数论没学好的我根本不会,赛时还看着形式像离散对数,以为是 BSGS 的什么妙用呢。 给定质数 \(p\),求在 \([0, p-1]\) 范围内的 \((x, y)\) 满足存在 \(n\) 使 \(x^n \equiv y \pmod p\) 的有序数对 \((x, 阅读全文
posted @ 2021-08-01 09:08 Acfboy 阅读(182) 评论(0) 推荐(0) 编辑
摘要: tips 智商不够,码量来凑。 在给定的线段中选出一个线段权值极差最小的子集,使得其覆盖了 \([1, m]\)。 比赛结束前最后 \(15\) 分钟想出了一个较为复杂的解法,不仅码量大,而且跑得还慢,所以没能在赛场上切了这题。 看到题目首先有的一个想法是二分,在考虑验证的时候发现按照权值排好序后区 阅读全文
posted @ 2021-07-31 10:34 Acfboy 阅读(84) 评论(0) 推荐(0) 编辑
摘要: 上大分的计划失败了。D 没有做出来。 这场吹爆啊!!!都是只有语言基础就可以做的思维题!!!赶紧加 favorites! 样例彩蛋 构造长度为 \(n\) 的小写字母组成的字符串,使任意一个子串都出现奇数次。 开始想着若干个叠着总会出现偶数个,于是就去想奇奇怪怪的做法,比如 aaba 的重复。但这样 阅读全文
posted @ 2021-07-30 11:42 Acfboy 阅读(30) 评论(0) 推荐(0) 编辑
摘要: 似乎是第一次做这个样子的容斥题。 给定一棵树,把每条边染成黑色或白色,有 \(m\) 个限制,限制了 \(u\to v\) 的路径上必须有至少一个黑色,求方案数。 “至少有一个”这是一个很难求的条件,所以可以反过来。 可题目和我以前做过的容斥题目都不一样,它反了后不是全部不满足的,而是至少有一个不满 阅读全文
posted @ 2021-07-29 16:46 Acfboy 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 妙啊!充分说明了猜结论的重要性 把 \(a\) 重新排列使选出若干个位置,新数组中这些位置的和于元素组不同,没有重复元素。 看到 \(n \le 22\) 就开始想,肯定是非多项式复杂度的做法,想着从一个开始慢慢往里放,像个办法保证和前面的所有组合的差都不为相反数。可是没法证明任何正确性或错误性。 阅读全文
posted @ 2021-07-29 14:17 Acfboy 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 这伞兵题目花了我两个小时?! 求积是平方数的给定数组子序列个数。 注意到数据范围 \(a_i \le 70\),那么就只有 \(19\) 个质数,可以记录每一个质数。 又因为积只关心所有质因数的个数的奇偶性,所以把它们对 \(2\) 取模,那么就可以愉快地状压了。 但还是有点不对, \(n\) 有 阅读全文
posted @ 2021-07-29 10:40 Acfboy 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 著名的 ODT 场的题。 给 \(m\) 个数,放到 \(1\to n\) 一个位置上,若 \(1\to n\) 都被填满且不下降就胜。强制在线。 看到题忽然觉得是水题,这不就最长不下降子序列的那个吗!直接上个二分就准备交了,装模作样地论证了一番:“这最长不下降子序列都最长了它又保证有解那肯定是了” 阅读全文
posted @ 2021-07-28 16:36 Acfboy 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 这题分讨略有点恶心啊。 题面给了一堆运动的点,要求一个时刻时正着覆盖所有点的最小矩形最小。 脑补了一下觉得这是一个单峰函数,于是想着三分,但是又不太确定,所以写。 模拟一下可以发现,很多点其实是对答案没有影响的,因为它们的运行速度都一样,所以在同一个方向上运行的点只有最左边和最右边(最上最下)的是有 阅读全文
posted @ 2021-07-28 15:24 Acfboy 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 基础好不扎实啊,这样一个分层图都没有想出。 题目就不再写一遍了。 开始看到 \(n \le 50, x \le 50\) 的时候就已经想到可能是分层图了,可是觉得这个不太好分啊,也不知道应该分成什么样子。然后就想了一些奇奇怪怪的做法,还没想出来。 其实就是分层图。 既然这个钱在哪里补不好弄,那么就直 阅读全文
posted @ 2021-07-28 10:58 Acfboy 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 好题! 求 \(\gcd\) 为 \(x\) 且和为 \(y\) 的序列个数。 首先容易想到把问题转换成和为 \(\frac{y}{x}\),gcd 是 \(1\) 的方案数。 然后我想着能否通过容斥的方式计算这个东西,比如先插板算出没有限制的,再把每一个约数减直接插板造成的贡献减掉,最后把重复减去 阅读全文
posted @ 2021-07-27 16:03 Acfboy 阅读(34) 评论(0) 推荐(0) 编辑