摘要: 题目链接 因为是选取 \(2^k\) 张牌进行决斗,所以考虑 ST 表。 我们设 \(f_{i,k}\) 表示的是从第 \(i\) 张牌开始,连续 \(2^k\) 张牌进行决斗,最终剩下的那张牌的力量大小。显然转移就是 \(f_{i,k} = |f_{i,k-1}-f_{i+2^{k-1},k-1} 阅读全文
posted @ 2025-05-07 10:31 jxy2012 阅读(16) 评论(0) 推荐(0)
摘要: 题目链接 首先预处理出每一个左括号和它匹配的右括号和每一个右括号和它匹配的左括号,这里用个栈维护就好。 之后考虑修改操作。显然这东西可以链表解决,但是链表太难写了,考虑别的做法。 我们可以用线段树。初始全部是 \(0\),表示没有被删除。每次修改操作就是在一对括号中间的位置区间推平成 \(1\),表 阅读全文
posted @ 2025-05-06 14:06 jxy2012 阅读(16) 评论(0) 推荐(0)
摘要: 题目链接 E1 题解 这次题目是问你有多少个 \(i\) 可以消掉一个 \([1,k]\) 的前缀。 首先,我们和刚才一样,计算每个 \(a_i\) 可以删除的最大区间。如果最大区间的左端点不是 \(1\),显然它对答案没有任何贡献。 我们假设算出来的右端点是 \(R\),那么 \(a_i\) 能删 阅读全文
posted @ 2025-04-09 11:32 jxy2012 阅读(10) 评论(0) 推荐(0)
摘要: 题目链接 和 这题 几乎一样。 观察样例后发现题意就是说有 \(n\) 个数,每个数 \(a_i\) 每次可以选择一个 \(j \in \{i+1,i-1\}\),使得 \(a_i \ge a_j\),将\(a_i\) 变为 \(a_i+a_j\) 并将 \(a_j\) 删除,问有多少个 \(a_i 阅读全文
posted @ 2025-04-09 10:49 jxy2012 阅读(31) 评论(0) 推荐(0)
摘要: 题目链接 因为题目要求最终所选的区间长度不为 \(1\),所以,显然存在结论:每次询问的答案区间长度不是 \(2\) 就是 \(3\)。 考虑证明。 假设存在长度 \(k \geq 4\) 的区间 \(S = [a_1, a_2, \dots, a_k]\),其平均值为 \(M\),则: 将 \(S 阅读全文
posted @ 2025-04-03 07:33 jxy2012 阅读(19) 评论(0) 推荐(0)
摘要: 题目链接 考虑这样一个字符串如何计算它有多少个子串为合法的括号序列: ()(()()())((())) 答案为 \(\frac{3 \times 4}{2} + \frac{3 \times 4}{2} + \frac{1 \times 2}{2} + \frac{1 \times 2}{2} = 阅读全文
posted @ 2025-03-27 13:51 jxy2012 阅读(26) 评论(0) 推荐(1)
摘要: 关于高精度 阅读全文
posted @ 2025-03-25 21:25 jxy2012 阅读(25) 评论(0) 推荐(1)
摘要: 半个小时才 ak,太菜了。 阅读全文
posted @ 2025-03-19 12:56 jxy2012 阅读(54) 评论(1) 推荐(0)
摘要: 题目链接 日本人怎么出这么简单的题,建议降橙。 首先考虑如果不插入的话,怎么计算数量。 根据乘法原理,显然答案是 \(\sum_{i=1}^n{[s_i=O](\sum_{j=1}^{i-1}{[s_i=J]})(\sum_{j=i+1}^{n}{[s_i=I]})}\) 这东西用前缀和优化一下是线 阅读全文
posted @ 2025-03-19 10:33 jxy2012 阅读(23) 评论(1) 推荐(1)
摘要: 题目链接 因为要让方差越大越好,所以要让序列 \(c\) 尽可能的不稳定。也就是说,要让小的数尽可能小,大的数尽可能大。 所以显然,\(c_i\) 一定在 \(a_i\) 和 \(b_i\) 之中。 由于题目中的数组都是排序过的,所以一定存在一个分割点 \(i\) 满足对于所有 \(1 \le j 阅读全文
posted @ 2025-03-19 10:33 jxy2012 阅读(38) 评论(0) 推荐(1)
//雪花飘落效果