随笔分类 -  模板

摘要:Floyd 参考: "Floyd 算法" "第一篇Floyed题解" 模板题: "寻宝之路Clear And Present Danger" "牛栏Cow Hurdles" Floyd的思路:首先 $f[i][j]$ 表示的是 $i$ 到 $j$ 的最短路径的长度, $f[i][j]$初始化的时候, 阅读全文
posted @ 2019-08-19 23:38 caoanda 阅读(169) 评论(0) 推荐(0)
摘要:参考: "当小球遇上盒子" 默认问题:把 n 个小球放到 m 个盒子里,分别有三项要求: ①球是否相同 ②盒子是否相同 ③能否有空盒。 1.球相同,盒子不同,不能有空盒 利用插板法,n 个小球中间会存在 n 1 个空,用 m 1 块板插入这些空中,可以将 n 个小球分为 m 块,因此: $$ ans 阅读全文
posted @ 2019-08-18 14:42 caoanda 阅读(466) 评论(0) 推荐(0)
摘要:$O(n^2)$: 阅读全文
posted @ 2019-08-17 18:42 caoanda 阅读(159) 评论(0) 推荐(0)
摘要:`from kuangbin` 包含了 `+ / ^ % = (istream&, BigNum&); friend ostream& operator(const BigNum & T)const; bool operator==(const BigNum & T)const; bool oper 阅读全文
posted @ 2019-08-17 09:47 caoanda 阅读(212) 评论(0) 推荐(0)
摘要:`From kuangbin` 支持加法,乘法, `char BigInt` 初始化 阅读全文
posted @ 2019-08-15 22:46 caoanda 阅读(210) 评论(0) 推荐(0)
摘要:参考: "卡特兰数" 很经典的问题有:合法括号匹配、矩阵从左下角到右上角不走对角线、二叉树构成问题、凸多边形的三角形划分等等 一般会用到的公式有 $$ f(n)=\displaystyle\sum_{i=0}^{n 1} f(i) f(n i 1) $$ 注: 通项公式: $$ f(n)=\bino 阅读全文
posted @ 2019-08-15 16:17 caoanda 阅读(205) 评论(0) 推荐(0)
摘要:参考: "关于\_\_int128" 本身可以进行的运算有 还有各种位运算符 但是 不可以进行输入输出的操作,如果想要进行输入输出需要自定义函数 可以在 64 位的编译器中运行 亲测 大概最多能够储存 4e22 左右的数 输入: cpp void print(__int128 x) { if (x9 阅读全文
posted @ 2019-08-15 15:44 caoanda 阅读(602) 评论(3) 推荐(1)
摘要:错排公式的推导可以看: "不容易系列之(4)——考新郎" cpp ll sum[30]; for(int i=3;i 阅读全文
posted @ 2019-08-15 13:42 caoanda 阅读(189) 评论(0) 推荐(0)
摘要:其实树状数组和线段树写树剖都差不多,只是换了一种储存数据的方式,一种占用空间小,但是相对耗时,一种占用空间大,但是很快。 模板题: "树链剖分" 用树状数组会 tle 但是这也是一种思路 cpp // Created by CAD on 2019/8/11. include using namesp 阅读全文
posted @ 2019-08-12 19:06 caoanda 阅读(242) 评论(0) 推荐(0)
摘要:模板题: "树链剖分" 参考博客: "树链剖分详解(洛谷模板 P3384)" 前置技能: "线段树" cpp void build(int s,int t,int p) { if(s==t) { d[p]=wt[s]%mod; / 此处wt[]是排序好之后的序号对应的权重 / return; } i 阅读全文
posted @ 2019-08-12 18:35 caoanda 阅读(231) 评论(0) 推荐(0)
摘要:差分的还原操作千万不能 记错,是 ch[i][j]+= ch[i 1][j 1]+ch[i 1][j]+ch[i][j 1] 模板: cpp / 还原为正常数组 / for (int i=1; i 阅读全文
posted @ 2019-08-12 13:34 caoanda 阅读(207) 评论(0) 推荐(0)
摘要:参考:线段树 模板题:线段树模板 写线段树需要注意的几点: build和update的时候最后记得加和!(d[p]=d[p<<1]+d[p<<1|1]) lazy标记下传后记得把父节点的清除!(laz[p]=0) // Created by CAD #include <bits/stdc++.h> 阅读全文
posted @ 2019-08-11 15:59 caoanda 阅读(169) 评论(0) 推荐(0)
摘要:前置技能: "前缀数组" 参考博客: "KMP算法(kuangbin)" cpp const int maxn=1e5; int Next[maxn]; / 求前缀数组 / / t[0]对应Next[1] / / Next[0]= 1 / void getNext(string t) { int i 阅读全文
posted @ 2019-08-09 00:29 caoanda 阅读(223) 评论(0) 推荐(0)
摘要:参考博客: "KMP算法(kuangbin)" 另讲得比较好的博客或网站: "前缀函数与 KMP 算法" "KMP算法(研究总结,字符串)" cpp const int maxn=1e5; int Next[maxn]; / 求前缀数组 / / t[0]对应的Next数组值为Next[1] / / 阅读全文
posted @ 2019-08-09 00:06 caoanda 阅读(1105) 评论(0) 推荐(0)