![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法竞赛进阶指南
Zaller
acm退休,考研ing...
无偿给同校学弟学妹们解答;
博客若有看不懂的或者不对的地方,直接私信我就行(如果我回复晚了,对不起都是我的错);
不用太客气等我回复,有问题直接私信发:)
ps: 随缘上线
展开
-
《算法竞赛进阶指南》蒙德里安的梦想 · 状压dp
题解AcWing 291. 蒙德里安的梦想(《算法竞赛进阶指南》打卡活动)摆放方块的时候,先放横着的,再放竖着的,其实放完横着的,竖着的也定下来了总方案数等于只放着的小方块数的合法方案数如何判断当前方案合法?每列空余位置,每一块长度均为偶数,即为合法fi,jf_i,jfi,j 表示第 iii 列被第 i−1i-1i−1 列上横着的 1×21\times 21×2 的方块占用的整列状态...原创 2020-04-27 23:39:48 · 313 阅读 · 0 评论 -
《算法竞赛进阶指南》最长公共上升子序列 · dp
题解代码原创 2020-04-02 19:19:39 · 201 阅读 · 0 评论 -
《算法竞赛进阶指南》218. 扑克牌 ·数学期望 + 记忆化搜索
题解学习来源 - AcWing 218. 扑克牌Epre=∑(pnext×Enext)+costpre−>nextE_{pre}=\sum (p_{next}\times E_{next})+cost_{pre->next}Epre=∑(pnext×Enext)+costpre−>next数学期望标准套路 ↑Ea,b,c,d,e,f=(13−a54−sum×Ea+...原创 2020-03-20 22:09:19 · 316 阅读 · 0 评论 -
《算法竞赛进阶指南》217. 绿豆蛙的归宿 · 拓扑排序 + 数学期望
题解#include <bits/stdc++.h>using namespace std;const int N = 1e6 + 10;int n, m, k[N];int d[N];double E[N];struct egde { int to, next, w;} e[N];int head[N], tot;void add(int u, i...原创 2020-03-20 20:55:48 · 156 阅读 · 0 评论 -
《算法竞赛进阶指南》214. Devu和鲜花 · 容斥
题解补题补题…#include <bits/stdc++.h>using namespace std;typedef long long ll;const int mod = 1e9 + 7;ll n, m, k;ll qpow(ll a, ll b) { a %= mod; ll res = 1; while (b) { ...原创 2020-03-19 23:06:55 · 179 阅读 · 0 评论 -
《算法竞赛进阶指南》207. 球形空间产生器 · 高斯消元
题解每当拿到一个坐标p,其和球心坐标a之间有以下关系有没有觉得等式右边有点熟悉的感觉?对吧,很明显,如果等式左边我们能搞出定值就可以直接高斯消元解线性方程了现在再拿一个坐标来,两个等式相减现在可以求啦!因此第2~n+1个坐标减去第一个坐标,就能构成n个线性方程,高斯板子带进去就行了#include <bits/stdc++.h>using namespa...原创 2020-03-19 20:01:38 · 94 阅读 · 0 评论 -
《算法竞赛进阶指南》/ poj3696 最幸运的数字 · 欧拉定理 + 同余 + 指数循环节
题解参考这篇题解 - poj3696 快速幂的优化+欧拉函数+gcd的优化+互质由8构成的数可以写成 10n−19∗8\cfrac{10^n-1}{9}*8910n−1∗8,所以题目可以改成求首先,要知道一个性质:当 ax=byax=byax=by 且 (a,b)(a,b)(a,b) 互质时,说明a的因子里没有b,那么要使等式成立,b一定在x中,即x可以乘除b然后设 d=gcd(8...原创 2020-03-14 22:33:44 · 252 阅读 · 0 评论 -
《算法竞赛进阶指南》最大公约数 · 欧拉函数
题解原创 2020-03-14 10:40:02 · 312 阅读 · 0 评论 -
《算法竞赛进阶指南》 可见的点 · 欧拉筛
题解除了(0,1)(1,0)(1,1)这三个点,其余可以被看到的点都满足 gcd(x,y)=1,对于每个行x,可以被看到的点的个数均为 ϕ(y)\phi(y)ϕ(y) ,对角线对称过去又有一组答案,所以最终答案为 3+2∗∑i=2nϕ(i)3+2*\sum^{n}_{i=2}\phi(i)3+2∗∑i=2nϕ(i)#include <bits/stdc++.h>u...原创 2020-03-13 22:18:49 · 136 阅读 · 0 评论 -
《算法竞赛进阶指南》/ P1082 同余方程
题解ax=1 (mod b)ax=1\,(mod\,b)ax=1(modb)等同于 ax+by=1ax+by=1ax+by=1扩展里的板子贴一下就好最后取最小的x正整数x=xmin+kbx=x_{min}+kbx=xmin+kbxmin=x % bx_{min}=x\,\%\,bxmin=x%b由于x可能本来就是负的,为了保证是正整数,在+b%b就好了#include &...原创 2020-03-13 20:20:11 · 132 阅读 · 0 评论 -
《算法竞赛进阶指南》表达整数的奇怪方式 · 同余
题解这里不能直接用中国剩余定理的板子,因为没有说模数都是互质的题解参考感觉这个过程不是我一眼能记住的,参照大佬的博客,我再跟一遍过程最后把n个式子合并成1个式子,也就是所以最终的答案即 m0m_0m0,其中要注意推导的过程中可能会出现的问题,因为gcd可能是负的!!!#include <bits/stdc++.h>using namespace std;...原创 2020-03-12 21:50:50 · 115 阅读 · 1 评论 -
《算法竞赛进阶指南》约数之和 · 递归
题解视频讲的更详细设 A=p1k1∗p2k2∗p3k3∗...∗pnknA=p_1^{k_1}*p_2^{k_2}*p_3^{k_3}*...*p_n^{k_n}A=p1k1∗p2k2∗p3k3∗...∗pnkn这里有两个结论:基于组合数其约数的总数 =(k1+1)∗(k2+1)...(kn+1)= (k_1+1)*(k_2+1)...(k_n+1)=(k1+1)∗(...原创 2020-03-09 22:49:01 · 244 阅读 · 0 评论 -
《算法竞赛进阶指南》最大异或对 · 01字典树
题解1e5的数据范围,n2必T由于异或总能让人往二进制上想,所以可以考虑建一棵01字典树,然后在树上找对于每个数来说能异或到的最大值,为了使得答案最大,那当然是往异或后值为1的节点深入,#include <bits/stdc++.h>using namespace std;const int N = 1e6 + 10;int a[N], t[N * 32][2]...原创 2020-03-07 16:16:57 · 121 阅读 · 0 评论 -
《算法竞赛进阶指南》 最佳牛围栏 · 二分
题解关于求平均值的最大值实数二分答案模板: r - l > 1e-5判断答案的合法性等同于判断是否存在一个长度大于F的区间,其平均值大于等于给定值而关于平均值有一个常用操作:让区间内的数都减去这个平均值现在问题转换一下变成,判断是否存在一个长度大于F的区间,使得区间和大于0判断这个区间是否存在,也就是说对于区间右端点j,要看是否存在一个区间左端点i,其之间的长度大于F,且满足 ...原创 2020-03-06 09:04:43 · 187 阅读 · 0 评论