摘要: P10173 maxiMINImax 题目传送门 题解 感觉还是比较套路的,而且不需要笛卡尔树,连我都能做出来。 这种区间 \(\min,\max\) 的题不难想到单调栈,我们可以 \(O(n)\) 处理出有几个区间的最小/大值为 \(a_i\),记为 \(ln_i,lx_i\)。然后推一下式子,写 阅读全文
posted @ 2024-02-18 19:39 operator- 阅读(23) 评论(0) 推荐(0) 编辑
摘要: P10174 Great Segments 题目传送门 题解 个人感觉这是最简单的一题。 考虑什么区间是好的,发现条件等价于从后往前维护单调栈,那么到 \(i\) 时,从 \(i\) 到单调栈前 \(k-1\) 个位置的区间均合法,更一般的,记 \(nxt_i\) 表示满足 \(i<j,a_i<a_ 阅读全文
posted @ 2024-02-18 19:38 operator- 阅读(15) 评论(0) 推荐(0) 编辑
摘要: P10171 [DTCPC 2024] 取模 题目传送门 题解 不会多项式导致的,赛后秒过。 一个显然的结论:如果原序列有相等的数答案为 \(0\),其次大于 \(4\times 10^5\) 的 \(k\) 均符合要求。问题在于小于 \(4\times 10^5\) 的答案。 赛时想了很多奇妙的算 阅读全文
posted @ 2024-02-18 09:17 operator- 阅读(60) 评论(0) 推荐(0) 编辑
摘要: Modular Sequence 题目传送门 题解 发现 \(a_i+y\) 与 \(a_i\bmod y\) 均不改变 \(a_i\) 模 \(y\) 的余数,所以答案序列的每个元素均可表示为 \(x\bmod y+ky\) 的形式,先让 \(s\) 减去 \(n\times (x\bmod y) 阅读全文
posted @ 2024-02-15 12:36 operator- 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 结论 每次交换任意两个数,将一个排列排序。 结论 \(1\):其最小操作数为 \(n-k\)。 结论 \(2\):其操作方案数为 \((n-k)!\prod\limits_{i=1}^{k}\dfrac{l_i^{l_i-2}}{(l_i-1)!}\)。 其中 \(n\) 为长度,\(k\) 为置换 阅读全文
posted @ 2024-02-14 16:25 operator- 阅读(93) 评论(0) 推荐(0) 编辑
摘要: Gadgets for dollars and pounds 题目传送门 题解 给一个单 \(\log\) 题解。 “求最早完成买 \(k\) 样东西的天数。”——很明显的二分答案。 在检验函数中,我们应当把前 \(k\) 小的物品费用之和与总金额作比较,其它题解大多使用直接排序的方法,于是就多了一 阅读全文
posted @ 2024-02-13 12:12 operator- 阅读(7) 评论(0) 推荐(0) 编辑
摘要: P10025 「HCOI-R1」孤独的 sxz 题目传送门 题解 这个真的是 div2 的 T2 吗? 分享一下个人解法,不保证是最简洁的但不需要离散化或权值线段树。注意到这个题不按常理出牌,求的是最大曼哈顿距离,所以如果没有“不能和其他人坐在同一个地方”这个限制那么答案一定是四个角的其中一个。 小 阅读全文
posted @ 2024-01-19 15:33 operator- 阅读(24) 评论(0) 推荐(0) 编辑
摘要: P10026 「HCOI-R1」哀之变化 题目传送门 题解 这么有趣的分类讨论题肯定要写一篇题解啦! 首先,感觉题目给出的两个操作很像二进制拆分,所以我们考虑倒着把 \(n\) 变成 \(1\),每次加一或除以二。 我们先把最少操作数给求出来,记为 \(m\)。直观来说,肯定是除以二的收敛速度比较快 阅读全文
posted @ 2024-01-19 15:33 operator- 阅读(13) 评论(0) 推荐(0) 编辑
摘要: P9871 [NOIP2023] 天天爱打卡 题目传送门 题解 T4 天天爱打卡(run) 考察:\(dp\)、线段树 先考虑 \(n=10^5\) 的部分分。动态规划是显然的:记 \(f_{i,0/1}\) 表示前 \(i\) 位,最后一位选/不选的最大能量。转移: \(f_{i,0}=\max( 阅读全文
posted @ 2024-01-19 15:33 operator- 阅读(56) 评论(0) 推荐(0) 编辑
摘要: P9870 [NOIP2023] 双序列拓展 题目传送门 题解 T3 双序列拓展(expand) 考察:dp、人类智慧( 部分分启示正解。 \(35pts\) 的 \(O(qnm)\) 将原题目转化为这样:两个指针分别指着两个序列,每次将任意至少一个指针向后移一个位置,并使每时每刻都满足两个指针所指 阅读全文
posted @ 2024-01-19 15:33 operator- 阅读(54) 评论(0) 推荐(0) 编辑