摘要: Solution 一眼 \(\mathcal{O}(n)\) 吊打 \(\mathcal{O}(n \log n)\)。 求个前缀和,然后双指针去移动,求最大值。 int qzh[N][2], a[N]; int maxx = 0, ansl, ansr; int f = 0; int cnt = 阅读全文
posted @ 2022-06-22 15:31 TLE_Automation 阅读(57) 评论(0) 推荐(0)
摘要: 阅读理解题,读懂了就是sb题。 建议多模两遍样例就会做了。 我们首先要知道我们能有多少种饲料可以用,用一个变量来存所有的 \(a_i\) 二进制表示下是否在这一位上有 \(1\)。 如果所有的 \(a_i\) 在这一位下都没有 \(1\)。 那说明这种饲料一定不能用,也就是这一位上一定不能为 \(1 阅读全文
posted @ 2022-06-18 15:43 TLE_Automation 阅读(300) 评论(0) 推荐(1)
该文被密码保护。 阅读全文
posted @ 2022-06-16 21:07 TLE_Automation 阅读(1) 评论(0) 推荐(0)
摘要: 感谢 @奇乐编程学院 的图。 KMP 算法,是一种利用已经知道的信息来避免重复运算的字符串匹配算法。 KMP 的算法流程 对于字符串匹配,暴力算法是一位一位的比较,但不同时,将起始指针加 $1$。然后继续匹配,复杂度为 $\mathcal {O} (nm)$。 那我们就想,再没有匹配上的这一位之前的 阅读全文
posted @ 2022-06-15 15:37 TLE_Automation 阅读(41) 评论(1) 推荐(1)
摘要: Solution 更新一下,之前写的太烂了。 首先我们能想到一个暴力算法,就是枚举分配到国内区和国外区的廊桥个数,然后用两个优先队列来模拟,复杂度 $\mathcal {O}(n^2 \log n)$ 预计得分: 40 然后我们考虑,当一个区的廊桥数确定为 $x$ 的时候,另一个廊桥数是 $n - 阅读全文
posted @ 2022-06-14 09:10 TLE_Automation 阅读(519) 评论(0) 推荐(1)
摘要: A 直接输出 \(A_{r, c}\) 即可。 B 没看数据范围,直接写的二分。 对于这个光的范围二分,然后判断合不合法即可。 int n, k; double x[MAXN], y[MAXN]; int a[MAXN]; double ans; #define eps 1e-6 bool vis[ 阅读全文
posted @ 2022-06-13 17:37 TLE_Automation 阅读(93) 评论(0) 推荐(0)
摘要: 数学笔记 提高数论 阅读全文
posted @ 2022-06-10 22:26 TLE_Automation 阅读(136) 评论(1) 推荐(1)
摘要: 题目就是求 \(1 \wedge 2 \wedge 3 ..... \wedge N\) 的值。 我们有一个性质: \(a \wedge (a + 1) \wedge (a + 2) \wedge (a + 3) = 0\) 证明一下: 首先很明显,这四个数的二进制下不同的位数只有最后两位。 \(0 阅读全文
posted @ 2022-06-04 17:07 TLE_Automation 阅读(41) 评论(0) 推荐(0)
摘要: 维护一个区间的最大最小值用的,是离线做法,区间不能往回动。 用队列来实现。 队首就是答案,当值小的时候就踢出去,也有的虽然值大,但编号不在这个区间,也踢出去。 deque <node> q1, q2; int sc1, sc2; int Max[N], Min[N]; signed main() { 阅读全文
posted @ 2022-06-04 15:45 TLE_Automation 阅读(39) 评论(0) 推荐(0)
摘要: 单调栈 就是一个栈,不过栈内元素保证单调性。即,栈内元素要么从小到大,要么从大到小。而单调栈维护的就是一个数前/后第一个大于/小于他的数。 如何维护的,谁把他删了谁就是答案。 例如这组数据 5 1 4 2 3 5 来求每个数后面的比他大的值。 我们从从后往前枚举,从后往前的原因是我要考虑每个数后面的 阅读全文
posted @ 2022-06-04 07:53 TLE_Automation 阅读(47) 评论(0) 推荐(0)