上一页 1 2 3 4 5 6 7 8 ··· 30 下一页
摘要: Glad to see you! 题解: 交互题一般都是需要用二分去完成。 在二分时候每次检查左边和右边哪边会和答案更近, 然后在更近的那段新区间去重复检查, 知道区间长度为1。 在检查的时候,可以使得答案更近贴近于左边,或者右边。 代码: #include<bits/stdc++.h> using 阅读全文
posted @ 2019-05-18 15:27 Schenker 阅读(224) 评论(0) 推荐(0) 编辑
摘要: Partial Sums 题解: 一个数列多次前缀和之后, 对于第i个数来说他的答案就是 唯一注意的就是这个k会到1e9。 观察可能,其实我们最多也就用了n个组合数, 并且这个C(n, m) 的 m 足够小。 所以我们可以根据定义先把这几个组合数先预处理出来。 代码: #include<bits/s 阅读全文
posted @ 2019-05-18 14:14 Schenker 阅读(265) 评论(0) 推荐(0) 编辑
摘要: Number Transformation II 题解: 对于操作2来说, a - a % x[i] 就会到左边离a最近的x[i]的倍数。 也就是说 [ k * x[i] + 1, (k+1)* x[i] -1 ]这段区间的的数都会走到 k * x[i]上。 所以对于每个位置都先计算出他到右边最远的 阅读全文
posted @ 2019-05-18 12:47 Schenker 阅读(171) 评论(0) 推荐(0) 编辑
摘要: Bear and Polynomials 题解: 如果改变一个其中的一个数,那么需要知道的是,前面的数都可以进到当前位来,如果过不来的话,那么就会因为前面有数导致无法变成0。 所以我们将前面的数不断向高位转移,找到第一个不能往上进位的位置, p。 现在只有在0 <= i <= p 的时候才有解。 然 阅读全文
posted @ 2019-05-18 10:45 Schenker 阅读(202) 评论(0) 推荐(0) 编辑
摘要: Martian Strings 题解: 对于询问串, 我们可以从前往后先跑一遍exkmp。 然后在倒过来,从后往前跑一遍exkmp。 我们就可以记录下 对于每个正向匹配来说,最左边的点在哪里。 对于每个反向匹配来说,最右边的点在哪里。 然后判断可不可以构成这个串就好了。 代码: #include<b 阅读全文
posted @ 2019-05-17 17:28 Schenker 阅读(292) 评论(0) 推荐(0) 编辑
摘要: Sum of Medians 题解: 对于这个题目,先想到是建立5棵Splay,然后每次更新把后面一段区间的树切下来,然后再转圈圈把切下来的树和别的树合并。 但是感觉写起来太麻烦就放弃了。 建立5棵线段树。 然后 seg[rt][i]代表的是只考虑当前所管辖的区间中的情况下, 下标对5取余之后为 i 阅读全文
posted @ 2019-05-17 16:39 Schenker 阅读(136) 评论(0) 推荐(0) 编辑
摘要: Coloring Brackets 题解: dp[ l ] [ r ] [ lc ] [ rc ] 代表的是第在区间[ l , r] 的情况下 左端点颜色是lc, 右端点颜色是rc的方案数是多少。 然后记忆化DP。 将一个序列拆成一个个匹配的序列。 为了防止一开始序列不匹配,所以从2个虚拟的地方开始 阅读全文
posted @ 2019-05-17 14:29 Schenker 阅读(122) 评论(0) 推荐(0) 编辑
摘要: Om Nom and Necklace 题意: 询问每个前缀是否能构成A + B + A + ...+ B + A这个形式。 题解: 首先要明白的是KMP求最小循环节,然后算出前面有多少个重复的串。 一个串有2种构成方式: 1. SSSSSS, 及这个串刚好是全由S构成的的,一共z个S。 需要明白的 阅读全文
posted @ 2019-05-16 23:43 Schenker 阅读(177) 评论(0) 推荐(0) 编辑
摘要: High Cry 题解: 把思路转换成总-非法方案数。 对于第i个点来说 找到L[i], R[i] 然后 对于所有的在[ L[i], R[i] ] 的值都 < a[i], 然后对于第i个点来说 在 [L[i], i]这段区间中找到最大的x使得 a[x] | a[x+1] | ... | a[i] > 阅读全文
posted @ 2019-05-16 17:47 Schenker 阅读(131) 评论(0) 推荐(0) 编辑
摘要: The hat 题解: 定义d[i]为第i个数和他对面的差值。 然后我们可以发现d[i]和d[i+1]的差值只会有3种情况2, -2, 0。 并且可以知道 d[i] = - d[i+n/2] 所以如果一开始n = 4 * k 即 d[1] 是偶数的话, 一定有d[i] = 0的情况。 如果d[l] 阅读全文
posted @ 2019-05-16 11:43 Schenker 阅读(139) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 30 下一页