摘要: "题目链接" 问题分析 一道比较标准的模板题。唯一需要考虑的是换根操作。 发现换根对链上的操作并没有影响,考虑对树上以$u$为根子树的影响。设原树上以$u$为根的子树是$T$。如果新的根在$T$的外部,那么以$u$为根的子树不变。如果新根就是$u$,那么子树就是整棵树。否则,取原树中$u$的一个儿子 阅读全文
posted @ 2019-08-07 15:00 chy_2003 阅读(198) 评论(0) 推荐(0) 编辑
摘要: ubuntu16.04配置 [TOC] 安装vim 换源 替换为清华源: 最后 使源生效。 安装Chrome 可选软件 Typora VsCode KolourPaint QQ , Marp , Netease Cloud Music , Sougou输入法 , wpsOffice ,…… ubun 阅读全文
posted @ 2019-08-04 14:04 chy_2003 阅读(1477) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 问题分析 题意不难理解。~~只是为什么绳子固定的那个端点不算一个钉子~~ 然后没有什么想法,于是就考虑暴力。不难发现,每次找到一个圈之后,长度就会剩下不到一半。于是至多找$\log L$次圈。每次找圈可能找到$O(n)$个点,找下一个点需要$O(n)$的时间。于是得到一个虚假的总时间复 阅读全文
posted @ 2019-08-04 10:59 chy_2003 阅读(260) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 问题分析 ~~吐槽一下这个预处理比DP还长的题……~~ 首先对限制从小到大排序,然后不难发现对于每一种大小限制都是独立的。离散后考虑$F[i][j]$表示以$i$结尾,上一个音高为限制大小的位置$j$的方案种数。不难发现对于一些右端点相同的限制,左端点最右的限制才有效。这样就可以$n^ 阅读全文
posted @ 2019-08-02 18:48 chy_2003 阅读(210) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 问题分析 要求树上最远距离,很显然就想到了树的直径。关于树的直径,有下面几个结论: 如果一棵树的直径两个端点为$a,b$,那么树上一个点$v$开始的最长路径是$v\rightarrow a$或$v \rightarrow b$。 如果有两棵树,直径分别为$a_1,b_1$和$a_2,b 阅读全文
posted @ 2019-07-30 15:30 chy_2003 阅读(185) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 题目大意 本题解中向量与点互通。 题目大概就是判断一个凸包$B$平移$\overrightarrow v$之后是否与凸包$A$有相交。相交即$\exists b \in B, b + \overrightarrow v =a\in A$。 如果转换一下,就是$\exists b \in 阅读全文
posted @ 2019-07-29 18:55 chy_2003 阅读(253) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 题目分析 实则毫无思路…… 由于权值是两维的,首先尝试正常操作排序一维。然后问题就变成了求另外一维的最小。不难想到另外一维是一个最小生成树。每次的答案就是$1$到$n$路径上的两个最大加起来(不一定是枚举的一维加上另一维的最大)。 然后考虑如何维护。动态加边的最小生成树自然用LCT维护 阅读全文
posted @ 2019-07-26 18:46 chy_2003 阅读(133) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 解题思路 简单的DAG上DP即可。 参考程序 c include using namespace std; const int Maxn = 100010; const int Maxm = 200010; struct edge { int To, Next; }; edge Edg 阅读全文
posted @ 2019-07-25 15:21 chy_2003 阅读(125) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 问题分析 题目给了充足的暗示,我们只需要二分答案然后跑匈牙利即可。~~要相信匈牙利的速度~~ 参考程序 阅读全文
posted @ 2019-07-25 09:16 chy_2003 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 前言 第$3$次尝试学习后缀自动机……下定决心不再背板子 参考资料: 洛谷博客(KesdiaelKen的雷蒻论坛) 2012年noi冬令营clj讲稿 **前置知识:**Trie树 简介 后缀自动机,顾名思义是能识别所有后缀的自动机。那么就要从两个方面入手:什么是自动机,以及怎样让自动机识别所有后缀。 阅读全文
posted @ 2019-07-23 20:46 chy_2003 阅读(488) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 问题分析 比较明显的最短路模型。需要堆优化的dij。建图的时候注意细节就好。 参考程序 阅读全文
posted @ 2019-07-22 11:04 chy_2003 阅读(174) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 题目分析 ~~据说这是一道生成函数题~~ 看到限制条件,我们首先想到的就是对有多少组讨论cxk的人进行容斥。然后就是求剩下的人随便放有多少种方法了。考虑现在每种剩$a,b,c,d$人,还需要排$n$人,那么方案数就是 $$ \sum_{i=1}^a\sum_{j=1}^b\sum_{k 阅读全文
posted @ 2019-07-20 12:58 chy_2003 阅读(246) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 问题分析 参照数据范围,我们需要一个能够在$O(n\log n)$复杂度内维护有序数列的数据结构。那么平衡树是很好的选择。参考程序中使用带旋Treap。 参考程序 c pragma GCC optimize( 3 ) include include include namespace 阅读全文
posted @ 2019-07-19 20:11 chy_2003 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 题目链接 解题思路 我们只要求出$p$和$q$,问题就迎刃而解了。那么就需要Pollard_Rho算法求$p$和$q$。值得注意的是,由于$n$不是素数,所以求逆元的时候需要用$exgcd$而不是费马小定理。 参考程序 #include <bits/stdc++.h> #define LL long 阅读全文
posted @ 2019-04-21 15:05 chy_2003 阅读(32) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 问题分析 首先一个显然的做法就是建出AC自动机,然后高斯消元。但是这样的复杂度是$O(n^3m^3)$的。 我们发现其实只需要求AC自动机上$n$个状态的概率,而其余的概率是没有用的。我们不妨设$i$赢的概率是$P_i$。同时,我们令$P_0$为没有任何一个人赢的概率。 然后我们考虑从 阅读全文
posted @ 2019-03-23 13:41 chy_2003 阅读(158) 评论(0) 推荐(0) 编辑
摘要: [TOC] 前置知识 请先对树链剖分和Splay有所了解。LCT基于树链剖分,而本文的数据结构采用Splay。 Splay "戳这里" ,树链剖分 "戳这里" 介绍 注意: 请务必分清原树和我们操作的树。 以下图片参考 "Yang Zhe的论文" 假设原来有这么一棵树: 我们把它剖分成这样子: 红色 阅读全文
posted @ 2019-03-21 11:06 chy_2003 阅读(489) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 问题分析 $$ \begin{aligned} Ans&=\prod_{i=1}^n\prod_{j=1}^mf[\gcd(i,j)]\\ &=\prod_{t=1}^nf(t)^{\sum\limits_{i=1}^n\sum\limits_{j=1}^m[\gcd(i,j)=t]} 阅读全文
posted @ 2019-03-19 16:11 chy_2003 阅读(306) 评论(0) 推荐(0) 编辑
摘要: [TOC] 前言 听说FFT是个很有用的东西,于是本菜鸡就~~去背了模板~~尝试着看了一下。这里写下菜鸡版教程。 卷积 FFT主要用于求卷积。然而卷积是什么? 如果$f$是一个$n$次多项式,$g$是$m$次多项式,那么它们的卷积 $$ h(x)=f(x)g(x)=\sum_{i=0}^n\sum_ 阅读全文
posted @ 2019-03-11 19:54 chy_2003 阅读(259) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 问题分析 看见字符串,还涉及到子串和前缀的,当然就想到了SAM(~~其实我不会SA~~)。 首先我们把串反一下,就变成了求S[a..b]的所有子串与S[c..d]的最长后缀的长度。 我们把问题说成这样:求是S[a..b]子串的S[c..d]的最长后缀长度。于是我们就可以二分答案,然后判 阅读全文
posted @ 2019-03-11 19:31 chy_2003 阅读(136) 评论(0) 推荐(0) 编辑
摘要: [TOC] 前言 Splay是名副其实的区间小能手。它会经常出现在一些有关区间的题上。而本蒟蒻只会Treap,感到分外难受,于是就有了这个教程。 引入 Splay首先是一颗二叉查找树。也就是说,对于任何一颗子树,左子树内所有的值均小于根,右子树内所有的值均大于根。也就是下图这样,数字代表值。 这样的 阅读全文
posted @ 2019-03-02 21:43 chy_2003 阅读(306) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 问题分析 首先有个很厉害的结论: $$ d(ij)=\sigma_0(ij)=\sum_{x|i}\sum_{y|j}[\gcd(x,y)=1] $$ Prove: $$ \sigma_0(ij)=\sum\limits_{d|ij}1=\sum\limits_{d_1\mid i,d 阅读全文
posted @ 2019-02-28 21:14 chy_2003 阅读(204) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 问题分析 题意还是很好理解的,就是求 $$ Ans=f(k)=\sum_{a_1=L}^H\sum_{a_2=L}^H\cdots\sum_{a_N=L}^H[\gcd(a_1,a_2,\cdots,a_N)=K] $$ 我们令 $$ F(k)=\sum_{a_1=L}^H\sum_{ 阅读全文
posted @ 2019-02-28 10:23 chy_2003 阅读(220) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 问题分析 题目就是要求 $$ Ans=\sum_{i=1}^n\sum_{j=1}^nij\gcd(i,j) $$ 首先乱搞一波: $$ \begin{aligned} Ans&=\sum_{t=1}^n\sum_{i=1}^n\sum_{j=1}^nijt[\gcd(i,j)==t] 阅读全文
posted @ 2019-02-27 13:19 chy_2003 阅读(176) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 本文计算部分有参考于https://www.cnblogs.com/Parry PY/p/7731858.html 需要指出的是,https://www.cnblogs.com/Parry PY/p/7731858.html 之中,圈4[n 2]阶行列式的最后一个元素应该是$ 1$而不 阅读全文
posted @ 2019-02-18 23:00 chy_2003 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 例题: "luoguP4735" 可持久化$Trie$嘛,就和可持久化线段树差不多。这篇文章只是借例题讲一讲如何截取一段时间的信息。 直接讲题大家就可理解。 题目大意 有两种操作,第一种在数组末尾加上一个数,第二种在$l\leqslant p\leqslant r$中求最大的$ a[p] \bigo 阅读全文
posted @ 2018-12-30 10:53 chy_2003 阅读(201) 评论(0) 推荐(0) 编辑