摘要: 经典题目,对于绝对众数只需要考虑这一个序列的中位数在序列中出现次数是否大于一半即可。 这道题用线段树合并维护一下就做完了。 点击查看代码 #include<bits/stdc++.h> #define fir first #define sec second #define int long lon 阅读全文
posted @ 2024-08-22 16:33 ~Cyan~ 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 逆天贪心 设对于一个点 \(x\) 花费 \(d\) 步能走到的最左边为 \(L_{x,d}\),最右边为 \(R_{x,d}\)。 主要证明一个东西:若 \((a,b)\) 这个询问中区间 \([L_{a,x},R_{a,x}]\) 与 \([L_{b,y},R_{b,y}]\) 有交,那么必然存 阅读全文
posted @ 2024-08-22 16:02 ~Cyan~ 阅读(3) 评论(0) 推荐(0) 编辑
摘要: AT_joisc2017_c 手持ち花火 一道神秘贪心题。 首先显然是二分速度 \(v\)。 然后发现题意可以被理解成其他人逐渐向 \(k\) 靠近,所以若跑了区间 \([l,r]\) ,那么跑的距离就是 \(x_r - x_l\) ,所以就要尽量增长跑动的时间,而注意到题意不是一碰到就要点燃,所以 阅读全文
posted @ 2024-08-21 21:18 ~Cyan~ 阅读(2) 评论(0) 推荐(0) 编辑
摘要: Priority Queue 3 题意:有一个小根堆和 \(1\) ~ \(n\) 个数,以及一个操作序列,+ 表示 \(push\), - 表示 \(pop\),\(pop\) 有 \(m\) 次,问你有多少种插入顺序使得最后的 pop 集合与给出的的数字集合 \(Y\) 相同。 首先有个浅显的发 阅读全文
posted @ 2024-07-24 16:32 ~Cyan~ 阅读(2) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2024-01-31 14:36 ~Cyan~ 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 传送门 A B 这道题只需知道一个判断括号序列的性质,设左括号为 \(1\),右括号为 \(-1\),则对于 \([l,r]\) 满足其为合法括号序列就是 $\forall l \le i \le r,sum_i \ge suml-1 $,又因为每次只会 \(+1\) 或 \(-1\),所以每次记录 阅读全文
posted @ 2024-01-27 16:50 ~Cyan~ 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 1.kmp 和 AC 自动机 AC自动机可以理解为多个串之间的kmp,具体还是非常简单。 首先建出 trie 树,接着你要做的就是将一段后缀连向与之相同的前缀,这样就构成了 fail tree。 具体应用: 1.求多个字符串分别在模式串出现的次数,在fail tree上解决即可。 2.做动态转移方程 阅读全文
posted @ 2024-01-27 16:44 ~Cyan~ 阅读(4) 评论(0) 推荐(0) 编辑
摘要: P4198 楼房重建 非常好题目,首先你显然能够得到一个楼房看得见的条件:当斜率严格大于之前的所有斜率时,这栋楼房可以被看见。 接着我们考虑线段树 \(sum_i\) 维护 \([l,r]\) 从 \(l\) 出发可以看到的楼房数。我们发现重点在于 push_up 函数的实现,设左区间为 \(ls\ 阅读全文
posted @ 2024-01-26 15:06 ~Cyan~ 阅读(2) 评论(0) 推荐(0) 编辑
摘要: powerful number 定义:对于一个正整数 \(x={p_1}^{k_1}{p_2}^{k_2}{p_3}^{k_3}...{p_n}^{k_n}\),满足 \(\forall_{1\le i \le n},k_i>1\)。 性质1:所有 powerful number 都能被写成 \(a 阅读全文
posted @ 2024-01-26 14:58 ~Cyan~ 阅读(13) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2024-01-24 16:13 ~Cyan~ 阅读(2) 评论(1) 推荐(1) 编辑