摘要: A 找到最后一个点的位置,使用 substr 函数。 B 模拟,记得边界是循环的。 C 容易发现答案为: \[\min_p(\sum_{i=1}^{p}a_i)+\sum_{i=1}^{n}a_i \]D 由于不同状态数只有 \(60^4\),容易搜索,但是我去吃饭了,所以没能快速切掉。 E 有一个 阅读全文
posted @ 2024-02-06 13:38 luogu_gza 阅读(30) 评论(0) 推荐(0)
摘要: A 本质就是判断 \(\prod_{i=1}^{n} b_i\) 是否能整除 \(2023\)。 输出被移除的数,只要令 \(k-1\) 个为 \(1\),剩下的一个随便算算即可。 B 非常难绷。 首先将 \(a\) 和 \(b\) 都除以 \(\operatorname{gcd}(a,b)\),并 阅读全文
posted @ 2024-02-04 17:06 luogu_gza 阅读(24) 评论(0) 推荐(0)
摘要: A 一笔带过,维护可能的最大值和最小值,并对于 3 操作特殊维护一下即可。 B 枚举第一个人删多少个数(贪心的想,一定删最大的几个,因为假如留着一定会对第二个人有利) 第二个人一定是翻的越多越好,且翻的都是最大的几个数。 使用前缀和容易计算答案。 C 妙妙题。 枚举 \(k\),接着发现 \(a_i 阅读全文
posted @ 2024-02-02 22:44 luogu_gza 阅读(34) 评论(0) 推荐(0)
摘要: A 贪心。 首先判无解。 如果一个位置要变成 A,那么它右边必须要有个 B。 如果一个位置要变成 B,那么它右边必须要有个 A。 然后算答案,首先有一个明显的上限: \[\sum_{i=1}^{n}[s_i \neq t_i] \]假设我们有 \(i\) 位置要变成 A,\(j\) 位置要变成 B, 阅读全文
posted @ 2024-01-31 22:00 luogu_gza 阅读(37) 评论(0) 推荐(0)
摘要: 所有代码都在如下模板中运行 #include<bits/stdc++.h> using namespace std; namespace gza{ #define int long long #define pb push_back #define MT int TTT=R;while(TTT--) 阅读全文
posted @ 2024-01-25 21:32 luogu_gza 阅读(25) 评论(0) 推荐(0)
摘要: P1337 模拟退火是一门玄学,我发现全看手气,因此,为了避免消耗手气,赛前我只练四道。 本题精度要求较高,因此选取较低温度,较高 delta,温度下限取到 1e-14。 P2503 这道题目中,随机化才是神。 连续分段问题可以 dp,这道题目,我们选择 random_shuffle后再 dp,正确 阅读全文
posted @ 2023-10-05 15:29 luogu_gza 阅读(37) 评论(0) 推荐(0)
摘要: UVA11997 考虑一个简化版,P1631,这个版本使用堆维护即可。 这个版本怎么做呢?依次合并每一行。 P6033 有一个性质,就是每一次合成出来的都是单调递增的,所以每次取出合的和没和的的最小的两个互相比较即可。 但是要预先排序,桶排即可。 P9565 考虑维护 \(60\) 个并查集,也就是 阅读全文
posted @ 2023-10-05 15:29 luogu_gza 阅读(16) 评论(0) 推荐(0)
摘要: P9209 考虑一个贪心,首先一定总是只有一段连续段。 所以答案就是这个样子了。 \[\sum w_i+(n-i)\max(l_i,r_i) \]CF1661D 从右往左扫一遍,要加就加最牛逼的。 维护问题的二阶差分即可。 P9378 哦宇宙射线! 贪心一下,每次让最脆弱的被轰掉。 AT_abc25 阅读全文
posted @ 2023-10-05 15:29 luogu_gza 阅读(16) 评论(0) 推荐(0)