摘要:
Day1 T1 考前还奶了一口不会考01Trie的,也就没有学,然后60分BOOM T2 不会SAM,告辞,30分滚粗 T3 传统实现题答?2p,2u,2g分别对应素数,莫比乌斯函数,原根?没看出来,告辞 Day2 T1 写了个假算法,爆零告辞 T2 60分暴力滚粗 T3 特判也挂了 总分 60+3 阅读全文
摘要:
$Beyas$定理 首先由条件概率的计算式有 $$Pr\{A|B\}=\frac{Pr\{A\cap B\}}{Pr\{B\}}$$ 结合交换律得到 $$Pr\{A\cap B\}=Pr\{B\}Pr\{A|B\}=Pr\{A\}Pr\{B|A\}$$ 移项得到 $$Pr\{A|B\}=\frac{ 阅读全文
摘要:
我是从其他博客里看到这题的,上面说做法是wqs二分套wqs二分?但是我好懒呀,只用了一个wqs二分,于是$O(nlog^2n)$→$O(n^2logn)$ 首先我们有一个$O(n^3)$的暴力$DP$,转移好写,形式优美,但复杂度不对 该怎样发现它的凸性质呢 1.打表√ 2.冷静分析一波,每一种球肯 阅读全文
摘要:
今天模拟赛有一道 "林克卡特树" ,完全没有思路 赛后想了一想,不就是求$k+1$条不相交的链,使其权值之和最大嘛,傻了。 有一个最裸的$DP$,设$f[i][j][k]$表示在以$i$为根的子树中,选了$j$条链,$k=0$表示$i$不在链上,$k=1$表示$i$是链的一端,$k=2$表示$i$在 阅读全文
摘要:
首先给出转动操作的伪代码(摘自算法导论): PIVOT PIVOT$(N,B,A,b,c,v,l,e)$ \ \ \ \ let $\hat{A}$ be a new $m\times n$ matrix \ \ \ \ $\hat{b}_{e}=b_l/a_{le}$ \ \ \ \ for ea 阅读全文
摘要:
普通型生成函数GF: 序列${a_i}$的生成函数为$\sum\limits_{i=0}^{\infty}a_ix^i$ 常用GF的收敛形式: 1.$\sum\limits_{i=0}^{\infty}x^i=\frac{1}{1 x}$,序列${1}$的生成函数 2.$\sum\limits_{i 阅读全文
摘要:
本教程重度新手向,大神勿喷(因为楼主本人就是Linux小白)! 为了让教程合乎简约至上的原则,将不在基本操作上赘述 测试环境:酷派大神Note3 Android5.0 2GBRAM 未root 截图是截的ssh的,跟直接在手机上操作完全一致 准备termux环境 1.安装termux终端模拟器(推荐 阅读全文
摘要:
第一类斯特林数 符号为$\begin{bmatrix} n\\ m \end{bmatrix}$,定义是把$n$个数排成$m$个圆排列的方案数,递推式为(把第一类斯特林数简记为$S_1(n,m)$): $$S_1(n,m)=S_1(n 1,m 1)+(n 1)S_1(n 1,m)$$ 其中边界为 1 阅读全文
摘要:
1. "莫比乌斯反演" 2. "容斥原理及广义容斥(也就是二项式反演)" 3. "NTT+FFT+FWT+分治FFT+分块FFT" 4. "min max容斥" 5. "Burnside引理与Polya引理" 6. "斯特林数+斯特林反演" 7. "生成函数" 8. "拉格朗日反演 咕咕咕" 阅读全文
摘要:
这玩意儿一般都是跟概率期望结合的吧,就是下面这个式子($max(S)$代表集合$S$中的最大值,$min(S)$同理): $$max(S)=\sum\limits_{T\subseteq S}( 1)^{\left | T \right | 1}min(T)$$ 证明的话就考虑第$k$大的元素对$m 阅读全文
摘要:
容斥 就是这么一个公式: 因为本人太弱,不会严谨的数学证明,感性理解一下就是把那些重复的元素去掉就行了。 容斥的套路挺多的,还是要多做题。。。 广义容斥 貌似也叫二项式反演,总共有3种形式,但常用的只有两种: 1.若 $$f(n)=\sum\limits_{i=0}^{n}\binom{n}{i}g 阅读全文
摘要:
很好理解,也很好写,只要知道它的两个性质就可以自己yy了 1.堆性质 2.中序遍历序列就是原序列 代码如下: cpp include using namespace std; define N 100000 int n, a[N+5], fa[N+5], ch[N+5][2]; int stk[N+ 阅读全文
摘要:
本博客是写给那些没学过SAM(因为博主自己也没学过),想用Manacher+后缀数组做这道题的人的 题目大意 定义一个子串的价值为它在原串中出现的次数与它的长度的乘积,求最大回文子串的价值 思路 首先我们上一个马拉车,求出所有本质不同的回文子串。你也许会问,它们的数量难道不会爆int吗?事实上,它们 阅读全文
摘要:
充分性证明就先咕了,因为楼主太弱了,有一部分没看懂 霍尔定理内容 二分图G中的两部分顶点组成的集合分别为X, Y(假设有$\lvert X \rvert \leq \lvert Y \rvert$)。G中有一组无公共点的边,一端恰好为组成X的点(也就是存在完美匹配)的充分必要条件是:X中的任意k个点 阅读全文
摘要:
"原题链接" 原题让求的是$\sum\limits a_i^2$,这个东西直接求非常难求。我们考虑转化一下问题。 首先把$a_i^2$拆成$(1+1+...+1)(1+1+...+1)$,两个括号中的$1$都有$a_i$个。为什么要这样呢?仔细理解一下拆开后的式子,是不是就是相当于分别操作两次,问最 阅读全文
摘要:
陈老师的题QwQ "原题链接" 题目大意 有两个字符串$S$和$T$(都只能由'A','C','G','T'这四个字符组成),$S$已知$T$未知,还知道$S$的长度为$m$。求满足$Len(LCS(S,T))=L,1\leqslant L\leqslant |T|$的$S$的个数 先想想若$S$已 阅读全文
摘要:
题目大意: 有N堆石子,除了第一堆外,每堆石子个数都不少于前一堆的石子个数。两人轮流操作每次操作可以从一堆石子中移走任意多石子,但是要保证操作后仍然满足初始时的条件。谁没有石子可移时输掉游戏。问先手是否必胜。 要保证序列不下降,这个条件似乎有点困难,于是我们转化一下,令数列$c$为原序列的差分序列, 阅读全文
摘要:
如果没有做过 "修车" (本题的弱化版),可以先去做一下。 大致思路就是把每个厨师拆成$p$个点,分别代表倒数第几个做哪道菜,然后从每种菜向厨师连边,倒数第几个的边权就是几倍的等待时间,最后跑一波费用流即可。 但本题的数据范围有些残酷,所以我们考虑动态加边。最多只会跑$p$次$spfa$,并且每次走 阅读全文
摘要:
"原题链接" 这题貌似比较水吧,最简单的拆点,直接上代码了。 cpp include using namespace std; define N 1000 define M 5000 define INF 0x3f3f3f3f define mp make_pair define pii pair 阅读全文
摘要:
神奇的建模。。。 "原题链接" 如果你真的把交换看成交换,就$GG$了。首先我们要把交换看成是白棋的移动。 然后,很容易的就想到建模的大致思路:建立超级源点 S 和超级汇点 T ,从 S 向初始局面每个白棋所在的格子连边,从目标局面每个白棋所在的格子向 T 连边,在相邻的格子中间加一些有限制的边,跑 阅读全文
摘要:
这题的想法真的很妙啊。 看到题的第一眼,我先想到树链剖分,并把$DFS$序当成一段区间上主席树。但是会发现在询问的时候,可能会非常复杂,因为你需要把路径拆成很多条轻链和重链,它们还不一定连续,很难做(这个做法貌似可以用于子树第$k$大问题)。 于是我们换一个思路,让某个点的从它的父亲继承信息,也就是 阅读全文
摘要:
"原题链接" 题目大意 在一个有$n\times m$个方格的棋盘中,每个方格中有一个正整数。现要从方格中取数,使任意$2$个数所在方格没有公共边,且取出的数的总和最大。试设计一个满足要求的取数算法。对于给定的方格棋盘,按照取数要求编程找出总和最大的数。 来看看怎么建图: 首先我们把棋盘红蓝二染色: 阅读全文
摘要:
对偶图是一种神奇的东西! 对于一个平面图$G=(V,E)$(也就是能画在平面上,且边的交点都在顶点处的图),则它的对偶图$G^ $的定义如下: 1.$G^ $的每一个顶点对应$G$中的每一个面 2.对于$G$中的边$e$,若它的两侧为两个不同的平面$f_1^ $和$f_2^ $,则在$G^ $中有一 阅读全文
摘要:
近几天跟着dreagonm大佬学习了$dsu\ on\ tree$,来总结一下: $dsu\ on\ tree$,也就是树上启发式合并,是用来处理一类离线的树上询问问题(比如子树内的颜色种数)的不二法宝。它不仅好想好写,还有着$O(nlogn)$的优秀时间复杂度(__划重点__)。 结合一道例题来讲 阅读全文
摘要:
"原题" 就是让你求$\sum\limits_{i=1}\sum\limits_{j=1}d(ij)$(其中$d(x)$表示$x$的因数个数) 首先有引理(然而并没有证明): $d(ij)=\sum\limits_{x|i}\sum\limits_{y|j}[gcd(x,y)=1]$ 带到原式里得到 阅读全文
摘要:
没事写着玩玩,通过debian上的黑白棋测试,搜了10层,打hard应该问题不大 cpp include include using namespace std; template T min(const T &x, const T &y) { return x T max(const T &x, 阅读全文
摘要:
题目描述(权限题qwq) 一个有N个元素的集合有2^N个不同子集(包含空集),现在要在这2^N个集合中取出若干集合(至少一个),使得 它们的交集的元素个数为K,求取法的方案数,答案模1000000007。(是质数喔~) 输入格式 一行两个整数N,K 输出格式 一行为答案 样例输入: 3 2 样例输出 阅读全文
摘要:
这题貌似是个权限题qwq,我是用离线题库+本地数据包测的 题目大意: 给你$n$个体积分别为$w[i]$的物品和容积$m$,问你将每一件物品分别去掉之后,拼出$1$~$m$中每一个体积的方案数的个位数分别是多少,将答案矩阵输出。 输入样例: 3 2 1 1 2 输出样例: 11 11 21 考虑先做 阅读全文
摘要:
貌似是一道很裸的期望$DP$。直接说思路: 设$f[i]$表示到$i$位置时的期望分数,但是只有$f[i]$的话我们发现是无法转移的,我们还需要知道到$i$位置时的期望连续长度,于是我们再设一个$g[i]$表示到$i$位置时的期望连续长度,$g[i]$可以$O(1)$转移,转移方程为:$g[i]=( 阅读全文
摘要:
刚刚学习了线性基,网上那些什么线性空间之类的概念我没有细看,感觉就像是个贪心+构造。 对于一个集合$S$,它的异或线性基就是其中一些数组成的的集合$S'(S'\subset S)$,满足$S'$中的任意多个数异或出来的值的集合等于$S$中的任意多个数异或出来的值的集合。线性基的的构造方法如下: 首先 阅读全文
摘要:
题目描述 有$n(n include using namespace std; define N 1000000 int n; long long sum[N+5], ave; int main() { scanf("%d", &n); long long t, ans = 0; for(int i 阅读全文
摘要:
"BZOJ" / "洛谷" 刚开始时间复杂度估错了,只好看题解。$O(n^2)$的做法还写崩了,难受。 坑点 :是下标字典序最小,不是字典序最小! 最原始的$O(nlogn)$做法中的$f[i]$表示的是以$i$结尾的$LIS$的最大长度,本题我们为了方便,倒着求最长下降子序列,于是$f[i]$表示 阅读全文
摘要:
首先是很常用的线性筛代码: cpp define N 1000000 int n, cnt, vis[N+5], prime[N+5], phi[N+5]; void sieve() { vis[1] = phi[1] = 1; for(int i = 2; i 阅读全文
摘要:
"原题链接" / "原题链接(代理站)" 题目翻译 给你一个$n m$的迷宫和起始点,有障碍的地方不能走,同时最多向左走$x$次,向右走$y$次,向上向下没有限制,问你有多少个格子是可以到达的。 输入样例 4 5 3 2 1 2 ..... . . ... .... 输出样例 10 数据范围 $n, 阅读全文
摘要:
做的第一道斜率优化$DP$QwQ "原题链接1" / "原题链接2" 首先考虑$O(n^2)$的做法:设$f[i]$表示在$i$处建仓库的最小费用,则有转移方程: $f "i]=min\{f[j]+\sum\limits_{k=j+1}^{i}P[k" \}+C[i]$ 于是我们枚举$i$,再从$i 阅读全文
摘要:
$BSGS(baby step giant step)$算法是用来解高次同余方程的最小非负整数解的算法,即形如这个的方程: $a^x\equiv b(mod\ p)$ 其中$p$为质数(其实只要($(a,p)=1$即可) 首先考虑暴力怎么解:由费马小定理可知$a^{p 1}\equiv 1(mod\ 阅读全文
摘要:
"原题链接" 网络不好的可以到 "洛谷" 上去QwQ 题目大意 有N个点,求与y=0相切的,包含这N个点的最小圆的半径 输入输出样例 输入: 2 0 1 1 1 输出 0.625 ~~感觉最多是蓝题难度~~? 首先无解的情况很简单,如果存在一个点使得它与其他点相对于$x$轴不同侧,就无解(显然)。考 阅读全文
摘要:
"原题链接" 题目大意 读入一个正整数$n$。你有一个长度为$n$的排列。对于一次操作,我们需要做一下几步: 1.将目前序列内所有数的$gcd$加入答案中 2.将序列内随意删除一个数 3.如果序列为空,则停止操作,否则重复以上步骤操作完毕后,我们将会得到一个答案序列。请输出字典序最大的那一个答案序列 阅读全文
摘要:
最近在做些树形DP练练手 "原题链接" 大意就是给你一棵树,你可以断开任意数量的边,使得剩下的联通块大小乘积最大。 样例 8 1 2 1 3 2 4 2 5 3 6 3 7 6 8 输出 18 我首先想的是设$f[i]$表示以$i$为根的子树可获得的最大收益,但是会发现这样无法转移。考虑再加一维,$ 阅读全文