摘要:
栈 后进先出 数组模拟即可 例1 设计一个支持push,pop,top等操作并且可以在**O(1)**时间内检索出最小元素的堆栈 显然一个栈维护最小值时,pop后无法O(1)知道其他最小值 二叉堆是支持查最值的,但是O(logn)的 所以我们可以建两个栈,一个栈存原数据,另一个维护从栈顶到now的m 阅读全文
摘要:
BSGS大步小步算法 用于解决离散对数问题: 已知 \(a^x≡b (mod\quad p)\),求 x 的最小非负整数解。其中 \(gcd(a,p)=1\)。 Small Step:对于 \(i ϵ [0,S)\) ,求出 \(a^i% p=A[i]\) Big Step:对于 \(j ϵ [0, 阅读全文
摘要:
•期望计算方法:每种事件的值乘该事件发生的概率 $ E(X)=∑x_i P(X=x_i )$ 随机的抛掷一枚骰子,所得骰子的点数的数学期望为 (1+2+3+4+5+6)/6 =3.5 例1:POJ 2096找bug Description •有s个系统,n种bug,小明每天找出一个bug,可能是任意 阅读全文
摘要:
欧拉函数与欧拉定理 证明&结论 https://www.cnblogs.com/lhm-/p/12229648.html 欧拉定理 容斥原理求欧拉函数(了解) 1、如果 i % p == 0 ,那么 phi (i*p) = phi (i) * p。 显然,与 i 互质的每一个数都与 i*p 互质。 阅读全文
摘要:
素数 素数与合数 •若一个大于一的正整数P,其约数只有1和P本身,称其为素数(质数)。若其有超过两个约数,则为合数。 素数无限定理 •正整数集中包含无限个素数。 •反证:假设素数有限,设其为$p_1~p_n$,构造$s=1+π(pi)\(,若s是素数,矛盾;若s是合数,则\)(p_1-p_n)$都不 阅读全文
摘要:
等差子序列 等差序列只要找三个数就行 x,y,z 想法枚举中间数y O(n) , 公差 d O(n) 看看y-d和y+d是不是在y的同侧(预处理每个数的pos) 这样就O (n^2) 了 优化枚举d的复杂度 我们可以搞个0/1数组,在y左边的设为1,右边的设为0 然后我们查以 y 为中心的是不是个回 阅读全文
摘要:
Solution 把原来的pos排序,二分时间 t ,然后更新成新的pos’ ,再排序比较二者顺序是否完全相同。 疑难:对k不会处理 60 pts std: 其实就差一点想到正解。。。我们对新的pos’ 求出最长上升子序列LIS , 然后 若序列长度>=n-k 就可行 (n^2暴力枚举任意两个点相撞 阅读全文
摘要:
过不了大样例 查不出错。。。可能想错了 wawawa爆零了 #include <cstdio> #include <vector> #include <cstring> #include <iostream> using namespace std; const int N=500005; inli 阅读全文
摘要:
量化交易 (Lg题目有问题,会TLE) https://codeforces.com/problemset/problem/865/D CF上AC https://www.cnblogs.com/Yuzao/p/6886194.html 两个操作: 1、第j天买入 2、第i天卖出(j<i) 用一个小 阅读全文
摘要:
挺进 题意:给你一颗树,要求断掉一条边,使得剩下两个联通快的直径之和最大 假设我们枚举断哪一条边,在logn时间内求出两个联通快的直径(树剖lca) 不就行了嘛 怎么做呢,我们发现,可以用树的dfs序来维护,我们用一个线段树维护一个区间内的直径的端点和长度 如何合并呢? 我们假设两块的直径端点分别为 阅读全文