12 2018 档案
摘要:【LOJ 6066】「2017 山东一轮集训 Day3」第二题(哈希,二分) 题面 "LOJ" 题解 要哈希是很显然的,那么就考虑哈希什么。。。 要找一个东西可以表示一棵树,所以我们找到了括号序列。 那么二分一个答案,把所有点挂到次祖先上去,那么次祖先的哈希值就是它原本的括
阅读全文
摘要:【LOJ 6060】Set(线性基) 题面 "LOJ" 题解 好题啊QwQ。 首先是定值。而中假设某一位上是,则上必定有一个是,另一个是,所以对答案没有影响。反过来,如果上某一位为,则要么都是,要么都是。 所
阅读全文
摘要:【LOJ 6073】距离(主席树) 题面 "LOJ" 题解 两点间的距离是。 那么题目要求的东西拆开维护,唯一不好做的就是。 而现在要求的是某个单点与一个点集的所有的深度和。 那么把点集中每一个点到根的路径全部标记一次
阅读全文
摘要:【APIO2018】新家(线段树) 题面 "UOJ" "洛谷" "BZOJ" 题解 ~~论比赛时想不到二分的危害,就只能Cu滚粗~~ 既然不要在线,那么考虑离线做法。 既然时间是区间,那么显然按照时间顺序处理答案。 显然 答案具有可二分性,那么对于当前位置而言,我们唯一要确定的就是$[x mid,x
阅读全文
摘要:【CTSC2018】暴力写挂(边分治,虚树) 题面 "UOJ" "BZOJ" "洛谷" 题解 发现第二棵树上的的深度这玩意没法搞,那么枚举在第二棵树上的。 然后剩下的部分就是 这个玩意乱搞一下,就是$\frac{1}{2}(dep[
阅读全文
摘要:【WC2018】通道(边分治,虚树,动态规划) 题面 "UOJ" "洛谷" 题解 既然是三棵树,那么显然就是找点什么东西来套个三层。 一棵树怎么做?入门dp。 两棵树?假设在第一棵树中的深度为。在第一棵树中枚举,因为两点之间距离可以转化为两点深度和减去两倍的深度,而已知
阅读全文
摘要:【BZOJ2870】最长道路(边分治) 题面 "BZOJ权限题" Description H城很大,有N个路口(从1到N编号),路口之间有N 1边,使得任意两个路口都能互相到达,这些道路的长度我们视作一样。每个路口都有很多车辆来往,所以每个路口i都有一个拥挤程度v[i],我们认为从路口s走到路口t的
阅读全文
摘要:【WC2018】州区划分(FWT,动态规划) 题面 "UOJ" "洛谷" 题解 首先有一个暴力做法(就有分了) 先预处理出每个子集是否合法,然后设表示当前的答案,每次枚举一个子集进行转移,得到方程:$\displaystyle f[S]=(\frac{1}{
阅读全文
摘要:【LOJ 6029】市场(线段树) 题面 "LOJ" 题解 看着就是一个需要势能分析的线段树。 不难发现就是把第二个整除操作化为减法。 考虑一下什么时候整除操作才能变成减法。 假设两个数为。那么就有$\displaystyle a [\frac{a}{d}]=b [\frac{b}{d}]
阅读全文
摘要:【Hihocoder1413】Rikka with String(后缀自动机) 题面 "Hihocoder" 给定一个小写字母串,回答分别把每个位置上的字符替换为' '后的本质不同的子串数。 题解 首先横跨' '左右的串一定恰好只会出现一次,所以直接统计答案。 那么剩下的部分就是左右的本质不同的子串
阅读全文
摘要:【LOJ 6041】事情的相似度(后缀自动机) 题面 "LOJ" 题解 搬了这道题目。。。 还是用到就是树上的的。 每次询问显然就是区间内点的贡献。 那么考虑所有可能出现的点对。 显然对于两个子串而言,只会
阅读全文
摘要:【BZOJ3413】匹配(后缀自动机,线段树合并) 题面 "BZOJ" 题解 很好的一道题目。 做一个转化,匹配的次数显然就是在可以匹配的区间中,每个前缀的出现次数之和。 首先是空前缀的出现次数,意味着你会去匹配第一个字符。 然后是第一个字符的出现次数,意味着你回去匹配前两个字符。 如此下去就是最后
阅读全文
摘要:【BZOJ3879】SvT(后缀自动机,虚树) 题面 "BZOJ" 题解 看着这个东西,询问若干个前缀两两之间的? 显然就是构建出来的数上的所代表的长度。 那么这样子就转为了树型。 然后发现是前缀?把串转过来就是后缀了。 $\sum t
阅读全文
摘要:[复习]字符串 纯复习内容,内容比较粗糙。 字符串哈希 最基本的东西,一般而言并不太需要注意哈希被卡的问题。 个人比较习惯的是单哈希、自然溢出。偶尔会使用多模数哈希,但还是用自然溢出。 可以用来干的事情:快速判断两个串是否相等,判断回文串等。 比较容易实现,不多写了。 最小循环表示法 讲过
阅读全文
摘要:【Luogu5108】仰望半月的夜空(后缀数组) 题面 "洛谷" 题解 ~~实名举报这题在比赛之前还不是这个样子的,还被我用SAM给水过去了~~ 很明显求出之后就是按照的顺序从前往后考虑每一个长度,这样可以知道串是什么。 不过如果串相同要左端点最靠左,所以二分包含这个串的区间,用$R
阅读全文
摘要:【BZOJ4591】[SHOI2015]超能粒子炮·改 (卢卡斯定理) 题面 "BZOJ" "洛谷" 题解 感天动地!终于不是拓展卢卡斯了!我看到了一个模数,它是质数!!! 看着这个东西就感觉可以递归处理。 令表示答案。 $$\begin{aligned} f(n,k)&=\sum_
阅读全文
摘要:【BZOJ4830】[HNOI2017]抛硬币(组合计数,拓展卢卡斯定理) 题面 "BZOJ" "洛谷" 题解 暴力是啥? 枚举的次数和的次数,然后直接组合数算就好了:$\displaystyle \sum_{i=0}^a{a\choose i}\sum_{j=0}^{i 1}{b\ch
阅读全文
摘要:【BZOJ3129】[SDOI2013]方程(容斥,拓展卢卡斯定理) 题面 "BZOJ" "洛谷" 题解 因为答案是正整数,所先给每个位置都放一个就行了,然后都要减一。 大于的限制和没有的区别不大,提前给他个就好了。 假如没有小于的限制的话,那么就是经典的隔板法直接算答案。 如果提前
阅读全文
摘要:【BZOJ3193】[JLOI2013]地形生成(动态规划) 题面 "BZOJ" "洛谷" 题解 第一问不难,首先按照山的高度从大往小排序,这样子只需要抉择前面有几座山就好了。然而有高度相同的山。其实也不麻烦,把高度相同的山按照关键数字排序,这样子即使是高度相同的山,也可以变成多出位置可以放进来,只
阅读全文
摘要:【Luogu4931】情侣?给我烧了! 加强版(组合计数) 题面 "洛谷" 题解 "戳这里" 忽然发现我自己推的方法是做这题的,也许后面写的那个才是做原题的QwQ。 cpp include include using namespace std; define MAX 5000010 define
阅读全文
摘要:【Luogu4921】情侣?给我烧了!(组合计数) 题面 "洛谷" 题解 很有意思的一道题目。 直接容斥?怎么样都要一个平方复杂度了。 既然是恰好对,那么我们直接来做: 首先枚举对人出来,然后枚排座位出来$\displayst
阅读全文
摘要:【ARC102E】Stop. Otherwise...(容斥原理,动态规划) 题面 "AtCoder" 有个骰子,每个骰子有个面,上面有到。骰子都是一样的。 现在对于中的每一个数,要求出满足不存在任意两个骰子的点数和为的方案数。 题解 显然这个东西
阅读全文
摘要:[复习]数论相关内容 因为是男神讲的课,所以直接按照他的课件推过来吧。 & 求解方程组: $$\begin{cases} x\equiv a_1(mod\ m_1)\\ x\equiv a_2(mod\ m_2)\\ ...\\ x\equiv a_n(mod\
阅读全文
摘要:[复习]莫比乌斯反演,杜教筛,min_25筛 莫比乌斯反演 做题的时候的常用形式: 实际上还有 $$\begin{al
阅读全文
摘要:【Luogu4723】线性递推(常系数齐次线性递推) 题面 "洛谷" 题解 板子题QwQ,注意多项式除法那里每个多项式的系数,调了一天。 cpp include include include include using namespace std; define MAX 200000 define
阅读全文
摘要:【BZOJ4161】Shlw loves matrixI (常系数齐次线性递推) 题面 "BZOJ" 题解 很小,可以直接暴力多项式乘法和取模。 然后就是常系数齐次线性递推那套理论了, "戳这里" cpp include include include using namespace std;
阅读全文
摘要:【CF961G】Partitions(第二类斯特林数) 题面 "CodeForces" "洛谷" 题解 考虑每个数的贡献,显然每个数前面贡献的系数都是一样的。 枚举当前数所在的集合大小,所以前面的系数就是: $$\begin{aligned} p&=\sum_{i=1}^n{n 1\choos
阅读全文
摘要:【CF715E】Complete the Permutations(容斥,第一类斯特林数) 题面 "CF" "洛谷" 给定两个排列,但是其中有些位置未知,用表示。 现在让你补全两个排列,定义两个排列之间的距离为每次选择中两个元素交换,使其变成的最小次数。 求距离
阅读全文
摘要:【BZOJ4671】异或图(斯特林反演) 题面 "BZOJ" Description 定义两个结点数相同的图 G1 与图 G2 的异或为一个新的图 G, 其中如果 (u, v) 在 G1 与 G2 中的出现次数之和为 1, 那么边 (u, v) 在 G 中, 否则这条边不在 G 中. 现在给定 s
阅读全文
摘要:【CF960G】Bandit Blues(第一类斯特林数,FFT) 题面 "洛谷" "CF" 求前缀最大值有个,后缀最大值有个的长度为的排列个数。 题解 完完全全就是 "【FJOI】建筑师" 的加强版本。 显然每一个前缀最大值和一段连续的区间构成了一个环排列,显然每个前缀最大值就是
阅读全文
摘要:【BZOJ2159】Crash的文明世界(第二类斯特林数,动态规划) 题面 "BZOJ" "洛谷" 题解 看到次方的式子就可以往二项式的展开上面考,但是显然这样子的复杂度会有一个,因此需要换别的方法。 注意到自然指数幂和第二林斯特林数之间的关系: $$n^k=\sum_{i=0
阅读全文
摘要:有标号的DAG计数系列 有标号的DAG计数I 题意 给定一正整数,对个点有标号的有向无环图(可以不连通)进行计数,输出答案的结果。 题解 显然是来做。 设表示个点有标号的有向无环图的个数。而中的特
阅读全文
摘要:[复习]多项式和生成函数相关内容 多项式 涉及的方面 主要在于多项式的乘法,也就是。 但是也多项式的求逆,,,开根,求导,积分等操作。 多项式乘法 并没有什么好复习的,记好板子就行了。同样也是多项式运算的基础。 泰勒展开&麦克劳林级数 泰勒展开: 如果$f
阅读全文
摘要:题面 "洛谷" 题解 模板题。。。 我直接蒯我写的东西。。。 这个除法是带余除法,所以并不能直接求逆解决。 要求的就是给定两个多项式,其项数为 求解一个项的多项式,以及一个小于项的多项式。 满足:$A(x)=B(x) C(x
阅读全文
摘要:冬令营前的一些计划&记录 计划 yyb发现自己很多以前学过的东西完完全全不记得了,所以在接下来的时间里可能会留下多篇复习向的博客,当然也可能因为觉得没有必要复习而到处乱做题。 现在先大概归类一下: 多项式&生成函数: ~~估计停课以后没多久我可能就要讲,所以先复习一遍再对于我自己的课件进行一定量的补
阅读全文
摘要:【HDU1693】Eat the Trees(插头dp) 题面 "HDU" "Vjudge" 大概就是网格图上有些点不能走,现在要找到若干条不相交的哈密顿回路使得所有格子都恰好被走过一遍。 题解 "这题" 的弱化版本吧。。。 因为可以任意分配哈密顿回路的数量,因此根本不需要再考虑插头的配对问题了,那
阅读全文
摘要:【BZOJ1814】Ural 1519 Formula 1 (插头dp) 题面 "BZOJ" "Vjudge" 题解 "戳这里" 上面那个链接里面写的非常好啦。 然后说几个点吧。 首先是关于为什么只需要考虑三进制状态,因为哈密顿回路是不可能出现自交的,因此对于当前的轮廓线一定直接分割了哈密顿回路的一
阅读全文
摘要:【BZOJ3817/UOJ42】Sum(类欧) 题面 "BZOJ" "UOJ" 题解 令,那么要求的式子是 不难发现,对于每个而言的取值只和的奇偶性相关。 如果是个整数,也就是是完全平方数的时候
阅读全文
摘要:【BZOJ3821/UOJ46】玄学(二进制分组,线段树) 题面 "BZOJ" "UOJ" 题解 呜,很好的题目啊QwQ。 离线做法大概可以线段树分治,或者直接点记录左右两次操作时的结果,两个除一下就可以直接计算。 强制在线的话,一般而言,分治在线就弄成二进制分组。把所有修改操作进行二进制分组,每次
阅读全文
摘要:【BZOJ4822】[CQOI2017]老C的任务(扫描线) 题面 "BZOJ" "洛谷" 题解 没有修改操作,都不需要分治了。。。 直接排序之后扫描线算贡献就好了。。。 不知道为啥洛谷上过不了。。。 cpp include include include include include inclu
阅读全文
摘要:【BZOJ4821】[SDOI2017]相关分析(线段树) 题面 "BZOJ" "洛谷" 题解 看看询问要求的东西是什么。把所有的括号拆开,不难发现要求的就是 考虑修改操作。先是区间加法,对于而言直接加就好
阅读全文
摘要:【BZOJ4820】[SDOI2017]硬币游戏(高斯消元) 题面 "BZOJ" "洛谷" 题解 第一眼的感觉就是构自动机之后直接高斯消元算概率,这样子似乎就是了。然而点数太多了,三方的消元没法做。 考虑如何优化点数,首先我们的所有点可以分为两种,一种是终止节点,另外一种
阅读全文
摘要:【BZOJ4815】[CQOI2017]小Q的表格(莫比乌斯反演,分块) 题面 "BZOJ" "洛谷" 题解 神仙题啊。 首先告诉我们矩阵只要算一半就好了。 接下来是 这个式子怎么看呢? $$\begin{aligned
阅读全文
摘要:【BZOJ4813】【CQOI2017】小Q的棋盘(贪心) 题面 "BZOJ" "洛谷" 题解 果然是老年选手了,这种题都不会做了。。。。 先想想一个点如果被访问过只有两种情况,第一种是进入了这个点所在的子树并且还要再次回到它的父亲,那么为了访问这个点你要花费步,另外一种是进入了这个点你不回去
阅读全文
摘要:【BZOJ3811】玛里苟斯(线性基) 题面 "BZOJ" 题解 很容易吧,拆位考虑贡献,所有存在的位出现的概率都是,所以答案就是所有数或起来的结果除二。 的情况,我们直接拆开平方式,平方项的贡献直接算,出现的概率还是,然后这样子的东西出现的概率是$
阅读全文
摘要:【BZOJ4738/UOJ 276】汽水(点分治,分数规划) 题面 "BZOJ" "UOJ" 题解 今天考试的题目,虽然说是写完了,但是感觉还是半懂不懂的来着。 代码基本照着爷的码的,orz。(然后Anson爷的UOJrk1不保了) 首先拿到这道题目的一个比较显然的思路就是分数规划二分
阅读全文