枚举
Zeolim
这个作者很懒,什么都没留下…
展开
-
[枚举]LCM
题意:给a b 求 a 范围内最大的 x * y / gcd(x, y) = b; 解题思路:一开始想的是枚举lcm的倍数到a * a, 然后在倍数里枚举因子判断是否合法 直接枚举因子就可以了, 因子范围小 只用n方 枚举lcm的每个倍数都是n方 以后做题尽量枚举小范围易得的部分 代码: /* Zeolim - An AC a day keeps the bug away...原创 2019-05-14 11:41:38 · 518 阅读 · 0 评论 -
[单调栈]1156E Special Segments of Permutation
题意:给一个1-n的排列, 你需要求出有多少个区间满足a[l] + a[r] = max(a[l] - a[r]); 解题思路 首先记录每个数字的下标 然后用单调栈维护以 a[i] 为最高点的区间 然后枚举 a[i] 区间内较短一侧的数 因为1 - n 排列数值唯一且已经记录了位置, 所以可以 O(1) 的求出 (a[i] - 小区间内数 )是否在右侧区间中, 统计得解 代码: ...原创 2019-05-09 18:49:38 · 373 阅读 · 0 评论 -
[权值线段树] 1163B2 Cat Party (Hard Edition)
题意: 给一序列串求最大x 有 x前删除一个值后每个值出现次数相同 解法: B1是小范围版, 只要枚举数字就行 B2用权值线段树记录最大最小出现次数, 出现n次的数有几个, 结合B1的规律(在代码里↓)写即可 代码 /* Zeolim - An AC a day keeps the bug away */ //pragma GCC optimize(2) #includ...原创 2019-05-10 21:28:59 · 367 阅读 · 0 评论