上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 16 下一页
摘要: 看完题目后,发现直接对 \(a\) 模拟操作的情况过多,不好处理。但如果对 \(n\) 进行逆向操作,似乎可以在很少步数内就变为 \(1\)。我们大胆猜想,用最少的步数使 \(n\) 变为 \(1\),再考虑如何处理多余的次数(若次数不足则直接无解)。先列出转换后的操作: \(n\gets n + 阅读全文
posted @ 2024-01-20 18:18 FormulaOne 阅读(65) 评论(0) 推荐(0)
摘要: 蒟蒻太菜了,看不懂图论的做法,就只好找规律了。 分析题目,可以得到一些信息:\(n\) 个不同的数最多能组成 \(\dfrac{n(n-1)}{2}\) 个不相同的无序二元组,而一个 $n \times n $ 的下三角形同行相邻的数对数量为 \(\dfrac{n(n-1)}{2}\),因此可以确定 阅读全文
posted @ 2024-01-20 18:17 FormulaOne 阅读(55) 评论(0) 推荐(0)
摘要: 不难想到,求区间和可以先 \(O(n)\) 预处理前缀和,后面就能做到对于区间 \([l,r]\) 可以 \(O(1)\) 求出 \(\sum_{i=l}^r a_i\)。接下来考虑如何求解答案。 设预处理后的前缀和数组 \(sum_i=\sum_{j=1}^i a_j\)。 区间 \([l,r]\ 阅读全文
posted @ 2024-01-20 18:16 FormulaOne 阅读(49) 评论(0) 推荐(0)
摘要: Update on 2023.8.17:修正了一处小错误。 分析题目可知,答案至少为 \(\sum_{i=1}^{n} a_i\)。接下来考虑怎样使答案更大。 可以对 \(n\) 分成如下几类情况讨论: \(n=2\) 这种情况十分简单,如果选择操作最多一次,否则两次就会变为 \(0\)。用 $ \ 阅读全文
posted @ 2024-01-20 18:16 FormulaOne 阅读(52) 评论(0) 推荐(0)
摘要: 考虑将 \(1\) 号点定为树根,然后通过搜索确定结点之间的父子关系。对于每次操作,先判断该边两端的点的父子关系,然后再分类讨论进行操作。 如何维护每个点的点权呢?注意到,修改有很多次,但查询只在最后有一次,因此可以考虑树上差分。具体地,设 \(a_i\) 表示 \(i\) 的点权,\(f_i\) 阅读全文
posted @ 2024-01-20 18:15 FormulaOne 阅读(57) 评论(0) 推荐(0)
摘要: 不难想到,可以枚举每个 \(a_i\) 的倍数,并用一个数组统计出现次数,最后求最大值,理论时间复杂度 \(O(n \log n)\)。但如果 \(a_i\) 较小且重复出现,可能退化到 \(O(n^2)\)。因此可以做一个小优化:对于每个 \(a_i \le n\),提前统计出每个数出现的次数,枚 阅读全文
posted @ 2024-01-20 18:15 FormulaOne 阅读(67) 评论(0) 推荐(0)
摘要: 根据题意,不难想到贪心,将 \(a\) 从小到大排序,使得相邻两数之差的绝对值尽可能小。若存在两数之差的绝对值大于 \(k\),则将两数之间作为一个“分界线”。在确定所有“分界线”后,序列被分成了多个子段,这些子段中最多保留一个才能满足条件。根据贪心,选择保留最长的一段,用 \(n\) 减去其长度即 阅读全文
posted @ 2024-01-20 18:14 FormulaOne 阅读(41) 评论(0) 推荐(0)
摘要: 要找到这个单词,就要先找到这个单词的开头,在输入时即可判断。根据题意,保持列数不变,增加行数,直到不为字母,输出途经的字母即构成了单词。 #include <bits/stdc++.h> #define int long long using namespace std; char a[9][9]; 阅读全文
posted @ 2024-01-20 18:14 FormulaOne 阅读(26) 评论(0) 推荐(0)
摘要: 签到题,按照题意模拟即可。遍历整个数组,当 $a_i \le 10 $ 时,用 \(b_i\) 更新最大值即可。 #include <bits/stdc++.h> #define int long long using namespace std; signed main() { int T,n,a 阅读全文
posted @ 2024-01-20 18:13 FormulaOne 阅读(20) 评论(0) 推荐(0)
摘要: 看到本题,很容易想到贪心,对每一段相同的子串计算最小代价。但这种思路的评测结果显示有 \(3\) 个测试点 WA 了,因此解法错误。既然贪心行不通,我们不妨使用 dp,对每一位进行分类讨论并求最小耗时。 设 \(dp_{i,j}\) 表示 Capslock 状态为 \(j\) 时(\(j\) 为 \ 阅读全文
posted @ 2024-01-20 18:12 FormulaOne 阅读(40) 评论(0) 推荐(0)
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 16 下一页