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\)。不知道为啥只要在这个范围里枚举。

posted @ 2019-07-21 20:54  hfhongzy  阅读(388)  评论(7编辑  收藏  举报