About & Ideas & Queries
About
Blog主现高一,文化课和OI啥都不会
本Blog主太懒,所以很多内容都缩在一个文章里,如数学、图论大礼包
https://wenku.baidu.com/view/56d76029647d27284b735158.html
Ideas
- 看一个结论: \(n=0,n=1\)的时候显然成立
\(n\geq2\)时,假设\(n-1,n-2\)都成立,则:\(\sum_{i=k}^n\tbinom{i}{k}=\tbinom{n}{k}+\sum_{i=k}^{n-1}\tbinom{i}{k}=\tbinom{n}{k}+\tbinom{n}{k+1}=\tbinom{n+1}{k+1}\)
update:底下评论里的AH队长why执政 指正要把n=k提出来
-
\(O(\sum_{d|n} d^{0.5})=O(n ^{0.5 + \epsilon})<O(n^{0.75})\)
-
\(x | \frac{n}{y} \Longleftrightarrow y | \frac{n}{x}\),证明显然,然而没想到用
-
\(\gcd(a^m - b^m, a^n - b^n)=a^{\gcd(m, n)} - b^{\gcd(m, n)},\gcd(a,b)=1\)
-
一个重复2次的子串长度2L,一定包含s[1], s[1 + L], s[1 + 2*L],...,中的某相邻两项
-
儿子的值对父亲有贡献,考虑树剖
-
线段树归并建树可以处理出对于每个x,左右儿子最大的<=x的树的多少,这样可以询问时可以O(1)转移,是二维数点常用技巧
-
对于LIS可以考虑差分前缀maxf数组,或是记录二分LIS的单调栈(状压技巧)
-
对于排列问题一种考虑方式是从1i推到1i+1
-
区间dp的种种套路:比如断成2个区间考虑,比如考虑去掉最后一个点(或块)
-
一种线段树求全局答案的方法:结点只保存完全在区间内的操作,其他操作在祖先处考虑(如扫描线区间覆盖)
-
s个[0,mod]的随机变量max的期望是mod/(s+1)*s
-
\(a-b \leq a \text{ xor } b\)
-
若\(a>b,\gcd(a, b)\leq a - b\)
-
二维曼哈顿距离最小生成树:考虑一个45度区域里只有一个最近需要连边。树状数组优化即可。
-
在01trie上解决一类问题:每次把当前集合划分成第k位是0和1的两个集合,递归到k-1位去做再考虑合并(叫二进制分组?)
-
一个二维问题无法下手,考虑行列分开,可能行列是独立的。
-
设\(m\)为最大数,\(c\)为不同数字个数;一种\(O(n + mc)\)求严格LIS:\(f(i, j)\)表示前\(i\)个数以数字\(j\)结尾的LIS,然后这个可以把第一维滚掉。每次\(f(a[i])\)去刷\(f(a[i]+1)\)到\(f(m)\)的值,遇到\(\geq f(a[i])\)就停。冷静分析一下复杂度很对:\(f\)一共就\(c\)种取值,每种取值最坏把\(m\)个位置都覆盖一遍。
-
求若干个有序数组,每个数组选一个数然后加起来,求\(Kth\):两两合并。合并\(A,B\),先将\((a[1], b[i])\)入大根堆,每次取出(a[i], b[j])的时候再把\((a[i + 1], b[j])\)丢进去。
-
计数dp时,考虑整体的加减和加入最小数;规定一个顺序(从小到大)最后乘一下阶乘。
-
点分治:单调队列按秩合并以优化复杂度
-
模意义下无法开根号?扩域试试!
-
据说\(Z=(a+bi)^n\),\(Z\)的共轭复数的\(n\)次方=\(Z\)的\(n\)次方的共轭复数
证明:用\(Z'=a-bi\)表示\(Z=a+bi\)的共轭复数
先证一个结论:\(A’B‘=(AB)'\)。使用定义即可。
然后归纳,\(n=1\)显然成立
假设\(n=k\)成立,即\((Z^k)'=(Z')^k\)
两边乘以\(Z'\):\((Z^k)'Z'=(Z')^{k+1}\)
再用一下上面的结论:\((Z^{k+1})'=(Z')^{k+1}\)
Q.E.D
-
\([i \bmod 2 = 0]=\frac{(-1)^i+1^i}{2}\)
-
无向图连通图简单环个数\(2^{m-n}\)。简单环可以表示成任意基环xor(基环值任意生成树,非树边与树上路径形成的环)。基环可以用dfs在\(O(n+m)\)时间里找到。
-
\(\lfloor \frac{a}{c} \rfloor +\lfloor \frac{b}{c} \rfloor \leq \lfloor \frac{a + b}{c} \rfloor\)
-
\(\prod (a_i !) \mid (\sum a_i)!\)
-
max树上差分用左偏树即可。或者反向倍增。
-
树形dp中u选fa必选可以考虑按dfs序dp
-
拓扑标记:n到1分配,找出度为0最大点
-
听说随机点集凸包上点个数的期望是\(O(\sqrt n)\)的
-
排列问题有时候可以用预支付思想。
-
一个语法小trick:
struct cmp {
bool operator () (const Node &a, const Node &b) const {
return a.d < b.d;
}
};
priority_queue<Node, vector<Node>, cmp> pq;
//用cmp排序,每次取最后一个
-
\(d(n)=O(n^{\frac{1.066}{\ln \ln n}})\),int和ll以内约数个数最大分别为\(10^3\)和\(10^5\)级别
-
二维的某些问题考虑标号以2n为基(因为坐标差在-(n-1) 到 (n-1)之间),方便使用卷积。
-
带删除堆:两个priority_queue即可实现
-
若给定多边形不知顺逆顺序,通过符号是否相反来判断凹凸,及点在多边形内外。另外求点到线段距离西先求夹角大小。
-
令\(n = \prod_{i = 1}^k p_i ^ {c_i}\),\(f(n) = \max(c_i), g=f*\mu\)
若存在\(c_i \not = c_j\),则\(g(n) = 0\)。
否则\(𝑔(𝑛)=(−1)^{𝑘+1}\)
Queries
Q1
一个常见的方程\(ax+by=c\),现在扩欧求出特解\(x_0,y_0\),然后\(x=x_0-\frac{b}{(a, b)}t, y=y_0+\frac{a}{(a, b)}t\)
现在想找到一组解,在满足\(|x|+|y|\)是奇数的情况下,\(|x| + |y|\)尽可能小
题解做法是枚举所有满足\(| t | \leq 1 + \frac{c}{(a, b)}\)的\(t\)。不知道为啥只要在这个范围里枚举。
本文作者:hfhongzy
本文链接:https://www.cnblogs.com/hongzy/p/11222674.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步