摘要: 常用算法设计和优化策略(本蒟蒻不定期更新) 下面是紫书上讲的常用算法设计策略和优化策略: 分治法:将问题分成相同的独立子问题求解。拆分出的问题必须有最优子结构性质(子问题求出的是最优解) 动态规划。本质是:对于一个问题,通过定义状态与状态间的关系来 分解问题 。利用单阶段问题之间的联系,或者同一阶段阅读全文
posted @ 2018-03-01 23:14 pechpo 阅读(41) 评论(0) 编辑
摘要: CF70D(动态凸包) 给出q( include include using namespace std; typedef long long LL; const LL maxn=1e5+5; double ox=0, oy=0; struct Point{ LL op, x, y; double 阅读全文
posted @ 2018-07-23 15:33 pechpo 阅读(2) 评论(0) 编辑
摘要: (multi)set的某些操作 我们可以把multiset当作平衡树用~ 注意,必须定义小于运算符。 s.begin() 返回指向第一个元素的迭代器。 s.end() 返回指向最后元素的后面那个虚拟元素的迭代器。 s.clear() 删除所有元素。 s.empty() 判断容器是否为空。 s.ins阅读全文
posted @ 2018-07-23 10:04 pechpo 阅读(3) 评论(0) 编辑
摘要: 旅行(树剖+主席树) 给定一个n( include using namespace std; const int maxn=1e5+5, INF=0x3f3f; int n, m, root; struct Edge{ int to, nxt; }e[maxn 2]; int cnte, fir[m阅读全文
posted @ 2018-07-22 23:19 pechpo 阅读(6) 评论(0) 编辑
摘要: (切)糕(动归) 一个集合的价值为其中的最大数减去最小数。给定n个数,请问有多少种划分集合的方案,使得集合的总价值小于k? 我们先把所有元素排好序。由于一个数必须被选,我们可以定义状态$f[i][j][k]$,表示选到第i个数,未结束集合数为j,集合总价值为k的方案数。由于一个数可以开启一个集合,关阅读全文
posted @ 2018-07-22 19:16 pechpo 阅读(4) 评论(0) 编辑
摘要: 中国剩余定理 今有物不知其数,三三数之剩二(除以3余2),五五数之剩三(除以5余3),七七数之剩二(除以7余2),问物几何? 这是《孙子算经》中的一个问题,称为“孙子问题”。这个问题的一般解法称为中国剩余定理。具体解法分三步: 1. 找出三个数:从3和5的公倍数中找出被7除余1的最小数15,从3和7阅读全文
posted @ 2018-07-20 20:51 pechpo 阅读(8) 评论(0) 编辑
摘要: 组合数恒等式 本蒟蒻太弱了。。为了不误导。。这个博客仅供个人使用。。 排列数:在n个元素中选m个元素作为排列,排列数显然是$n^{\underline m}=\frac{n!}{(n m)!}$。 组合数:在n个元素中选出m个作为集合,不同的集合数为$\binom{n}{m}$。由于一个集合对应m个阅读全文
posted @ 2018-07-17 18:59 pechpo 阅读(7) 评论(0) 编辑
摘要: 数(数学) 给出n( include include using namespace std; typedef long long LL; //////Miller Rabin素数判定////// const LL m=7, A[m]={2, 3, 5, 7, 11, 13, 17}; LL fmu阅读全文
posted @ 2018-07-16 18:35 pechpo 阅读(6) 评论(0) 编辑
摘要: 线性筛素数(欧拉筛) 欧拉筛为啥是$O(n)$的呢?我们先来看看代码。 c++ include using namespace std; const int maxn=10000000; int n, m, prime[maxn], isnt_prime[maxn], tot; void get_p阅读全文
posted @ 2018-07-15 16:56 pechpo 阅读(11) 评论(0) 编辑
摘要: Miller Rabin素数测试 给出一个小于1e18的数,问它是否为质数?不超过50组询问。 "hihocoder" 我是真的菜,为了不误导他人,本篇仅供个人使用。 首先,一个1e18的数,朴素$O(\sqrt{n})$素数判定肯定爆炸。怎么办呢? 我们知道,对于素数p,只要a不是p的倍数,一定有阅读全文
posted @ 2018-07-15 16:37 pechpo 阅读(5) 评论(0) 编辑
摘要: 咕咕(数位dp+AC自动机) 若一个字符串的字符集合是0~m 1,那么称它为m进制字符串。给出n个m进制字符串$s_i$,每个字符串的权值为$v_i$。对于另一个m进制字符串$S$,设$s_i$在S中的出现次数是$cnt_i$,那么$s_i$对$S$的价值的贡献就是$v_i cnt_i$。因此,$V阅读全文
posted @ 2018-07-14 16:11 pechpo 阅读(6) 评论(0) 编辑