Location via proxy:
[ UP ]
[Report a bug]
[Manage cookies]
No cookies
No scripts
No ads
No referrer
Show this form
会员
T恤
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
望舒草
就让失散的誓言飞舞吧,随西风飘荡
管理
[置顶]
构造题, 交互题选做
摘要: 构造题, 交互题选做。还会选入一些其他妙妙题
阅读全文
posted @ 2021-02-02 20:49 duyiblue
阅读(2901)
评论(23)
推荐(14)
2024年5月14日
康复训练
摘要: 主播正在备战 NAC,所以做一些简单的 ICPC 题。QwQ 你一辈子就都是磕 ddtt 的命了,早早地知道了 ddtt 的好,你就再也不会羡慕别人的cp了。你的幸福指数和精神体验都被拉高到了远超其他人的程度,你少走了二十年弯路,找到了世界上最好磕的cp。磕 ddtt 的第一口,就是你最接近神的时刻,戴门!
阅读全文
posted @ 2024-05-14 00:47 duyiblue
阅读(106)
评论(2)
推荐(0)
2022年4月22日
AP Computer Science A 学习笔记
摘要: 只是站在一个前 oier 的个人角度整理了 AP Computer Science A 考试要注意的地方,比较适合有 OI 基础的读者,比如会 C++ 但没学过 Java,懂算法但没学过面向对象编程。祝大家考试顺利!
阅读全文
posted @ 2022-04-22 16:45 duyiblue
阅读(793)
评论(0)
推荐(1)
2022年4月10日
LOJ6807 「THUPC 2022 初赛」最小公倍树
摘要: Kruskal 算法。考虑哪些边有可能被贪心选中。因为最小公倍数的要求太复杂、太苛刻,我们不妨忽略“最小”,只考虑是公倍数。因为这样新产生的边边权更大,不会影响答案。考虑点权是 k 的倍数的点之间的边,发现有用的边其中一个端点一定是大于等于 L 的第一个 k 的倍数。于是有用的总边数就被压缩到了 O(n log n) 级别。直接执行 kruskal 算法即可。此外,我们还可以不事先排序,用 priority_queue 把空间复杂度优化到 O(n)。
阅读全文
posted @ 2022-04-10 18:15 duyiblue
阅读(260)
评论(2)
推荐(1)
CF1656D K-good
摘要: 先考虑 k 是偶数的情况,此时 k 必须是 2n 的约数,且不能是 n 的约数,并且 k 要尽量小,所以令 k = 2 的 (n 里 2 的最高次数 + 1) 次方即可。若 k 还是太大,说明偶数无解,考虑奇数。此时有一个非常巧妙的想法:令 k2 = 2n / k。会发现这个 k2 一定是满足条件的。
阅读全文
posted @ 2022-04-10 13:17 duyiblue
阅读(115)
评论(0)
推荐(1)
2022年3月17日
洛谷P8098 「USACO 2022.1 Gold」Tests for Haybales
摘要: 从 i 向 b[i] + 1 连边,得到一棵树。考虑分层,问题转化为构造一个数组,使得每个节点的值小于父亲的值,但大于父亲同一层左边节点的值。在 dfs 离开一个节点时记录的 dfs 序就满足这个要求。
阅读全文
posted @ 2022-03-17 21:18 duyiblue
阅读(149)
评论(0)
推荐(0)
2022年3月16日
洛谷P8096 「USACO 2022.1 Gold」Drought
摘要: 把所有位置按下标的奇偶性分类。考虑每个前缀里,两类位置上数的和之差。把对 h 的操作,变为对这个差序列的操作。操作变成了每次选一个小于 n 的位置,将它的值减 1。只要想清楚最终差序列的样子,就很容易求出合法差序列的数量了。
阅读全文
posted @ 2022-03-16 22:33 duyiblue
阅读(267)
评论(0)
推荐(1)
2022年3月15日
CF1647F Madoka and Laziness
摘要: 首先,全局最大值一定是其中一个子序列的最大值,所以只需要考虑另一个子序列的最大值是几。根据这两个“最大值”,整个序列被划分为三段,前一段两个序列都递增,中间一增一减,第三段都递减。第一段和第三段可以用简单 DP 完成最优划分。中间段其实也可以用一个类似的 DP 来划分。DP 定义的关键是考虑与 i 不同的另一个子序列最后一个元素是几,转移时考虑 i 和 i - 1 在不在同一个序列中。
阅读全文
posted @ 2022-03-15 14:18 duyiblue
阅读(141)
评论(0)
推荐(1)
2022年2月26日
LOJ3664 「JOI 2022 Final」选举
摘要: 分析题目性质,找出一些最基本的贪心策略(比如把 B 从小到大排序)。然后枚举总共获得了几个协作者,这样就能知道每个仅获得选票的州的用时,进而可以 DP。朴素的 DP 是 O(N^3) 的,总时间复杂度 O(N^4)。进一步观察问题特性后,可以把 DP 优化到 O(n^2)。
阅读全文
posted @ 2022-02-26 16:56 duyiblue
阅读(512)
评论(2)
推荐(3)
2022年1月26日
LeetCode 小水题选做(更新中)
摘要: 退役后智商恢复 and 底层码农防失业。
阅读全文
posted @ 2022-01-26 22:58 duyiblue
阅读(414)
评论(3)
推荐(1)
2021年4月7日
LOJ2313 「HAOI2017」供给侧改革
摘要: lcp 就是后缀树上的 lca。因为字符串随机,所以后缀树树高是 O(log n) 级别的。将询问离线,从小到大枚举 R,暴力跳祖先,更新一些 i 的答案。需要数据结构支持:前缀对一个值取 max,区间求和。发现要取 max 的值是 O(log n) 级别的,对每个值记录最大位置,就可以实现 O(1) 修改,O(log n) 查询。总时间复杂度 O(n log n)。
阅读全文
posted @ 2021-04-07 15:55 duyiblue
阅读(290)
评论(0)
推荐(1)
2021年3月27日
「NOI Online 2021 #1」岛屿探险
摘要: 分 b > d 和 b <= d 两种情况讨论。关于 b, d 做 cdq 分治。每次考虑右边对左边的贡献,这样 b, d 的大小关系就解决了。第一种情况比较简单,就是在可持久化 01 trie 里查询一下就行了第二种可以考虑每个 b 对 d 的贡献,方法就和第一种情况差不多了,也就是把“查询”改成“打标记”。
阅读全文
posted @ 2021-03-27 15:17 duyiblue
阅读(2835)
评论(9)
推荐(8)
2021年3月25日
CF1089I Interval-Free Permutations
摘要: 用总数减去不合法的排列数。考虑不合法的排列里的极长不合法段,那么不合法的排列可以分为两类:有两个极长不合法段的,或者有三个及以上极长不合法段的。对于前者,发现至少有一个不合法段是前缀或后缀,且数值为 1...k,可以递推求出其方案数(二次容斥)。对于后者,不合法段一定不相交。考虑用 DP 对齐进行划分,再用前面处理好的答案算出其排列方案数。
阅读全文
posted @ 2021-03-25 23:18 duyiblue
阅读(214)
评论(0)
推荐(1)
CF1188D Make Equal
摘要: 首先把问题转化为:有一个给定的数组 b[1...n],一个数 x,使得所有 (b[i] + x) 的二进制里 1 的个数之和最小。从低到高逐位 DP,发现要考虑上一位有没有进位,那么状态数是 2^n 的。进一步观察,因为每个数加的 x 是一样的,所以在这些低位上原数值越大,越有可能进位。所以状态里只需要记录有多少个数进位,然后把序列排个序,就知道具体是哪些数进位了
阅读全文
posted @ 2021-03-25 23:12 duyiblue
阅读(223)
评论(0)
推荐(0)
2021年3月16日
CF538H Summer Dichotomy
摘要: 本文提供了两种解法。一种是硬核数据结构做法。将限制转化为一个几何问题(双矩形的交),用扫描线求解。第二种是巧妙的贪心,证明了如何选择 n1, n2 是最有可能有解的,于是在确定 n1, n2 后,直接进行二分图染色即可
阅读全文
posted @ 2021-03-16 17:37 duyiblue
阅读(210)
评论(1)
推荐(1)
2021年3月15日
CF871E Restore the Tree
摘要: 以第一个关键节点为根。根据:v 在 x, y 的路径上,当且仅当 dis(v, x) + dis(v, y) = dis(x, y),可以确定每个关键点到根的路径。接下来按深度从小到大加入剩余的节点。只需要在已经确定的部分里为它找到一个父亲即可
阅读全文
posted @ 2021-03-15 13:09 duyiblue
阅读(245)
评论(2)
推荐(0)
下一页
公告