06 2019 档案

摘要:首先有个思想,就是逐层更新 然后考虑每次查询是查从某一点到根节点的树链上的信息,因此用树链剖分维护即可,处理每个点的对子树中节点的贡献可以区间修改(只需修改这一节点向上的树链即可),然后查询时区间查询,去掉不合法的部分即可 时间复杂度O(nlog22n),其实本题正解应当是$O(nl 阅读全文
posted @ 2019-06-28 11:17 lleozhang 阅读(222) 评论(0) 推荐(0) 编辑
摘要:好神奇的数据结构呀... 首先我们考虑:暴力怎么做? 设状态dp[j]表示长度为j的序列最后一个数最小是几,如果j位置的限制区间为[l,r],那么显然有转移: dp[j]=l(dp[j1]<l) dp[j]=dp[j1]+1(ldp[j1]r1) 阅读全文
posted @ 2019-06-28 10:08 lleozhang 阅读(197) 评论(0) 推荐(0) 编辑
摘要:去年noip题啊... 这题动态dp裸题,因此直接套上去嘛! 动态dp板子看这里 设状态f[i][0/1]表示点i选/不选的最小花费,转移有 f[i][0]=f[son][1] f[i][1]=wi+min(f[son][0],f[son][1]) 同样设一 阅读全文
posted @ 2019-06-26 20:37 lleozhang 阅读(129) 评论(0) 推荐(0) 编辑
摘要:动态dp是一个毒瘤且奇葩的东西... 然而noip2018出了这个东西... 因此... 以一道题为例吧:给出一棵带点权的树,每次修改一个点的点权,查询这棵树的最大权独立集(可以理解为每次询问一遍“没有上司的舞会”) 首先考虑暴力: 设状态f[i][0/1]表示以i为根的子树,点i选或不 阅读全文
posted @ 2019-06-26 19:04 lleozhang 阅读(218) 评论(0) 推荐(0) 编辑
摘要:嗯.. 首先考虑如果只有一次询问我们怎么做 设我们当前有个数集{S},进行这一询问,我们怎么处理? 首先不妨假设{S}单调不降(如果不是这样的话显然排序并不会影响答案) 那么假设前i个数都合法,其能组合出的最大的值为lim,那么我们只需比较Si+1lim+1的大小就可 阅读全文
posted @ 2019-06-26 11:14 lleozhang 阅读(158) 评论(0) 推荐(0) 编辑
摘要:首先吐槽一下bzoj,这CF原题还做成权限题啊?! 需要注意的是,一个点不能被选中当且进当这个点在第y+1年到现在这一段时间内受到攻击,其余的点都可以被选 然后...其实这题的重点在于...码 思想很简单,先树链剖分,然后建起一棵主席树维护,每次修改就生成一个新版本,这样的话用现在的版本-时刻y的版 阅读全文
posted @ 2019-06-26 09:52 lleozhang 阅读(168) 评论(0) 推荐(0) 编辑
摘要:首先考虑容斥 我们计算出所有没有点在其中的矩形,然后用所有矩形减去这些矩形即可 然后考虑如何计算没有点在其中的矩形 采用扫描线的思想,从上向下一行一行扫,假设我们扫到的行编号是a,然后考虑如果左右的列端点是[l,r],那么这一行向上至多能扩展几个矩形呢? 显然,我们要找到区间[l,r]阅读全文
posted @ 2019-06-25 16:56 lleozhang 阅读(266) 评论(0) 推荐(1) 编辑
摘要:前置技能:曼哈顿距离转切比雪夫距离 曼哈顿距离:已知两点A(x1,y1)B(x2,y2),则其曼哈顿距离为|x2x1|+|y2y1| 切比雪夫距离:已知两点A(x1,y1)B(x2,y2),则其切比雪 阅读全文
posted @ 2019-06-25 14:13 lleozhang 阅读(202) 评论(0) 推荐(0) 编辑
摘要:数据范围很重要!!! 首先观察数据范围,发现我们要修的桥的数量只能是一座或两座,因此我们直接讨论即可 对于在河的一侧的人家,显然花费是一定的,直接累计即可 对于在河两侧的人家,显然过河的花费是一定的,直接累计即可 接下来讨论的所有人都在桥的两侧 首先我们假设只有一座桥,位置为x,设对于第i阅读全文
posted @ 2019-06-25 10:33 lleozhang 阅读(154) 评论(0) 推荐(0) 编辑
摘要:问题:已知一个次数为n1的多项式F(x),求一个多项式G(x)满足G(x)F(x)k 这个...你需要多项式exp 直接推一发式子就可以了: G(x)F(x)k G(x)elnF(x)k $G(x)\equi 阅读全文
posted @ 2019-06-23 21:20 lleozhang 阅读(489) 评论(0) 推荐(0) 编辑
摘要:生成函数好题 首先我们对每一种物品(设体积为vi)构造生成函数F(x)=j=1xjvi 那么很显然答案就是这一堆东西乘在一起 但是...这个复杂度是O(nmlog2m)的,显然不合理 因此我们考虑优化 我们发现,如果我们把所有生成函 阅读全文
posted @ 2019-06-23 20:02 lleozhang 阅读(214) 评论(0) 推荐(0) 编辑
摘要:这一篇是一个专题总结,可能会写很久,希望不会咕掉 一.组合数学: ①.基本公式: 1.排列数公式Anm=n!(nm)!,表示从n个元素中选出m个元素并进行全排列的方案数 特别的,当m=n时,有Ann=n!(规定0!=1) 2.组合数 阅读全文
posted @ 2019-06-22 09:58 lleozhang 阅读(1732) 评论(0) 推荐(1) 编辑
摘要:斯特林数好题: 求i=1nCniik 首先第二类斯特林数有一个性质: xn=i=0nS2(n,i)Cxii! 那么我们展开原来的表达式,得到: i=1nCniik=$\ 阅读全文
posted @ 2019-06-21 15:56 lleozhang 阅读(241) 评论(0) 推荐(0) 编辑
摘要:容斥好题 首先我们考虑,如果没有节点之间一一对应的限制,我们可以这样dp: 设状态dp[i][j]表示以i为根节点的子树,节点i与节点j对应的方案数 那么转移就是$dp[i][j]=\prod_{son_{i}}\sum_{k=1}^{n}map[j][k]dp[son_{i}] 阅读全文
posted @ 2019-06-20 20:06 lleozhang 阅读(218) 评论(0) 推荐(0) 编辑
摘要:单位根反演好题 题意:求i=0nCniSiaimod4 看到i mod 4这种东西,很显然要分类讨论啦 于是变成了这种形式: d=03adi=0n[ id $mod 阅读全文
posted @ 2019-06-20 17:43 lleozhang 阅读(300) 评论(0) 推荐(0) 编辑
摘要:基本形式: 设f(x)=i=0naixi 则有i=0nai[d|i]=1dp=0d1f(wdp)FFT中会用到的形式: $f_{i}=\sum_{j=0}^{n-1}\fra 阅读全文
posted @ 2019-06-20 17:04 lleozhang 阅读(171) 评论(0) 推荐(0) 编辑
摘要:玄学题... 首先,如果fia mod 10y,那么一定有fia mod 10y1 据此我们可以只找出满足fia mod 10y1的项,然后向上检验即可 可是这样的项是无穷的啊 斐波 阅读全文
posted @ 2019-06-20 16:37 lleozhang 阅读(192) 评论(0) 推荐(0) 编辑
摘要:三倍经验...(然而我并没有氪金所以只能刷一倍...) 考虑在什么情况下两点是合法的: 可以看到,对于红色的点而言,绿色的点是合法的,而黄色的点是不合法的 那么观察一下这几个点的切线把圆分成的这几个弧之间的关系,可以看到:如果两个弧相交但不包含,那么对应的两点合法(比如红色和绿色),剩余情况均不合法 阅读全文
posted @ 2019-06-20 16:32 lleozhang 阅读(228) 评论(0) 推荐(0) 编辑
摘要:首先显然是并查集了 每次连边就是合并两个集合,最后会形成很多连通块,是个森林的结构 考虑在连边的时候加入一个权值表示这条边是第几次被加入图中的,那么每次查询的答案即为xy路径上权值最大值 由于并查集按秩合并的复杂度是O(log2n),因此合并时直接按秩合并,查询时暴力向上跳即可 阅读全文
posted @ 2019-06-20 16:14 lleozhang 阅读(101) 评论(0) 推荐(0) 编辑
摘要:二项式反演的公式: 若已知f(n)=i=0n(1)iCnigi,则有:g(n)=i=0n(1)iCnif(i) 一个更常见的公式: 已知f(n)=i=0nCnig(i)阅读全文
posted @ 2019-06-19 20:32 lleozhang 阅读(202) 评论(0) 推荐(0) 编辑
摘要:首先需要知道二项式反演的一个推论:f(k)=i=knCikg(i),则g(k)=i=kn(1)ikCikf(i) 然后我们考虑如果糖果多于药片的比药片多与糖果的多k个,那么糖果多于药片的个数应该为$\frac{n+ 阅读全文
posted @ 2019-06-19 20:28 lleozhang 阅读(141) 评论(0) 推荐(0) 编辑
摘要:留个位置 本题...一言难尽啊... 首先可以发现,恰好为S个的颜色数量为M=min(nS,m) 首先我们设g(i)表示至少选了i种颜色达到恰好S个的方案数,那么$g(i)=C_{m}^{i}(m-i)^{n-iS}\frac{n!}{(S!)^{i}(n-iS 阅读全文
posted @ 2019-06-19 18:25 lleozhang 阅读(200) 评论(0) 推荐(0) 编辑
摘要:首先我们需要找出一个朴素的递推来解决这个问题: 设状态f(i)表示权值和为i的二叉树的数量,g(i)表示权值i是否在集合中,即g(i)=[iS] 枚举根节点和左子树的权值,立刻得到一个递推: $f(n)=\sum_{i=0}^{n}g(i)\sum_{j=0}^{n-i} 阅读全文
posted @ 2019-06-19 15:24 lleozhang 阅读(160) 评论(0) 推荐(0) 编辑
摘要:这一版是mx发明的MTT 速度极快,精度基本有保证,在奇技淫巧无效时可以考虑这个东西... (但是无论如何我都不想用真正的任意模数NTT,那种东西简直毒瘤而且常常数巨大...) 原理:并不关心 阅读全文
posted @ 2019-06-19 13:50 lleozhang 阅读(281) 评论(0) 推荐(0) 编辑
摘要:好毒瘤的一道题啊... 对每个aiS,设F(x)为用jai构造出jai的生成函数,那么F(x)=j=1xjai 根据这篇博客里的内容,可以求得:F(x)=11xai 设$t_{i 阅读全文
posted @ 2019-06-18 17:31 lleozhang 阅读(171) 评论(0) 推荐(0) 编辑
摘要:有两种推导方法: 第一种: 设状态f(i)表示有i个点的无向连通图个数,g(i)表示有i个点的无向图个数,那么显然f(n)即为我们所求,而g(i)=2i(i1)2 于是写出一个递推:枚举1号点所在的连通块,可得:$g(n)=\sum_{i=1}^ 阅读全文
posted @ 2019-06-18 13:35 lleozhang 阅读(164) 评论(0) 推荐(0) 编辑
摘要:问题:已知一个多项式F(x)次数为n1,求一个多项式G(x)满足G(x)eF(x)(mod xn) 保证F(x)常数项为0 好像有点困难... 首先有一个基础知识: 我们可以用牛顿迭代求出一个多项式的多项式零点 也即已知一个多项式$F(x) 阅读全文
posted @ 2019-06-14 17:28 lleozhang 阅读(1813) 评论(0) 推荐(0) 编辑
摘要:题意:求i=0nj=0iS(i,j)2jj! 一看就觉得不可做... 但是还是需要仔细分析的 最重要的是一步转化: 根据第二类斯特林数的定义:S(n,m)表示将n个不同物品分到m个集合中的方案数 然后考虑求和式里面那个东西,发现其含义就是 阅读全文
posted @ 2019-06-13 18:57 lleozhang 阅读(132) 评论(0) 推荐(0) 编辑
摘要:计数好题 首先看到这种问题直接想到的应该是polya定理 可是对颜色使用个数有限制啊! 没关系,我们分析一下polya定理的表达式: 1|G|i=1nmci 可以看到,这其中的每一项等价于用m种颜色对每个循环节任意染色的方案数(即对每个循环节 阅读全文
posted @ 2019-06-12 18:05 lleozhang 阅读(196) 评论(0) 推荐(0) 编辑
摘要:问题:已知一个次数为n1的多项式F(x),求一个多项式G(x)使得G(x)ln(F(x))(mod xn) (保证F(x)常数项为1) 这个比较简单: 两边求导,得: G(x)F(x)F(x)($m 阅读全文
posted @ 2019-06-12 16:19 lleozhang 阅读(832) 评论(0) 推荐(0) 编辑
摘要:问题:已知一个多项式F(x)次数为n1,求一个多项式G(x)使得(G(x))2F(x)(mod xn) (保证常数项为1) 仍然是推式子 首先,不难发现的是如果F(x)次数为0,那么G(x)=1 类似多项式求逆,我们倍增处理: 设已知$ 阅读全文
posted @ 2019-06-12 16:14 lleozhang 阅读(909) 评论(0) 推荐(0) 编辑
摘要:多项式求逆是多项式除法的基础,如果你不会多项式求逆,请看这里 问题:已知两个多项式F(x)(次数为n),G(x)(次数为m),求两个多项式Q(x)R(x),满足F(x)=G(x)Q(x)+R(x),所有运算在模998244353意义下进行 推一发式子: $F(x)=G(x)Q( 阅读全文
posted @ 2019-06-12 08:25 lleozhang 阅读(2232) 评论(0) 推荐(0) 编辑
摘要:问题: 已知一个次数为n1的多项式F(x),求一个多项式G(x)使得F(x)G(x)1(modxn),所有运算在模998244353意义下进行 怎么搞? 先进行一点分析: 如果F(x)只有一项,那么G(x)里也只有一项,就是F(x)里那项的逆 阅读全文
posted @ 2019-06-12 08:11 lleozhang 阅读(563) 评论(0) 推荐(0) 编辑
摘要:生成函数在计算方案数以及计算递推公式时都有很大的作用,本文对生成函数的知识做一个初步的介绍(主要是博主自己不会) 一.基本定义: 给出序列{an}={a0,a1,a2...an},构造一个函数(或者多项式)$F(x)=a_{0}+a_{1}x+a_{2}x^{2 阅读全文
posted @ 2019-06-11 20:49 lleozhang 阅读(480) 评论(0) 推荐(0) 编辑
摘要:一道生成函数例题 如果对生成函数的知识不太了解,看这里 下面认为你已经了解了生成函数的内容 那么看见这种问题直接上生成函数嘛! 直接构造...10个生成函数 福利时间:这10个生成函数如下: F(x)=1+x6+x12+...=11x6 $F(x)=1+x+ 阅读全文
posted @ 2019-06-11 20:47 lleozhang 阅读(218) 评论(0) 推荐(0) 编辑
摘要:题意:给出n条线段,判断是否存在一条直线使所有线段在这条直线上的投影有公共部分 首先,如果存在这样的一条直线,那么这条直线的一条垂线一定穿过每一条线段,反之亦然,因此问题就转化成了是否存在一条直线能穿过所有线段 n条线段共2n个点,我们枚举任意两个点构造一条直线与所有线段判断交点即可 注意n=1与n 阅读全文
posted @ 2019-06-05 21:27 lleozhang 阅读(285) 评论(0) 推荐(0) 编辑
摘要:题意:给出一个矩形区域和n条分割线,将分出的n+1个区域从左向右从0到n编号,给出一些点,问落在每一个区域里的点的数量 计算几何裸题 由于题目中限制挡板不相交且从左向右给出,因此直接从左向右枚举每一个挡板,用叉积判断这个点在这个挡板的左侧还是右侧即可 具体的,我们记录每个挡板的下面的点的坐标和这 阅读全文
posted @ 2019-06-05 21:24 lleozhang 阅读(152) 评论(0) 推荐(0) 编辑
摘要:一道很有趣的题 根据期望的可加性,我们只需计算出每个点实际被使用的概率然后乘上贡献累加即为最后答案 于是问题就转化成了求每个点被使用的概率 我们从头开始分析:对于第一个点,他被使用的概率就是1(1p1)r 这一点很好理解,因为每次我们开头就遇到了第一个点,那么第一个点没被用的概率就是 阅读全文
posted @ 2019-06-04 21:15 lleozhang 阅读(169) 评论(0) 推荐(0) 编辑
摘要:这并不是真正的任意模数NTT,只是一种奇技淫巧,但是由于码量小而且有效,所以写在这里 在卷积问题中,如果我们要求对答案取模,而且答案不取模会爆long long,但模数原根并不好甚至不是质数,这该怎么办呢? 直接提出一种方法:取一个阈值M,将原本的一个多项式拆分成两个多项式,系数分别为$A_{i}/ 阅读全文
posted @ 2019-06-04 20:28 lleozhang 阅读(593) 评论(0) 推荐(0) 编辑
摘要:在做本题之前,你需要一个预备知识:任意模数NTT 如果不会,请看这里 (其实那个不是真正的任意模数NTT,而是一种奇技淫巧,但是...能用就行!) 然后我们来讨论本题 首先不难发现,后来的一个数A的二进制表示一定至少有一位上是1,且原来的数上这一位都是0 这是很显然的,否则无法满足B 阅读全文
posted @ 2019-06-04 20:23 lleozhang 阅读(314) 评论(0) 推荐(0) 编辑
摘要:线段树维护概率好题 设状态f(i)表示从i走到终点的概率 不妨令起点为1,终点为n 那么有转移:f(i)=(1p(i))f(i1)+p(i)f(i+1) 移项,得: p(i)[f(i+1)f(i1)]=f(i)f(i1)g(i)=f(i)f(i1) 阅读全文
posted @ 2019-06-04 20:08 lleozhang 阅读(280) 评论(0) 推荐(0) 编辑
摘要:一道略有难度的dp 设状态dp[i][j]表示长度为i,开头高度为j且为山峰的方案数 考虑到一个序列是对称的,所以总方案数即为2i=2ndp[n][i] 这样我们只需考虑转移即可 首先,我们发现,如果两个数ii+1不相邻,那么交换这两个数之后方案数不变 阅读全文
posted @ 2019-06-03 20:49 lleozhang 阅读(147) 评论(0) 推荐(0) 编辑
摘要:非常简单的组合数学+容斥原理 直接计算不好计算,我们用容斥原理计算:所有人随便选-至少有一个人没有礼物+至少有两个人没有礼物... 假设我们有i个人没有礼物,那么方案数为Cnij=1mCa[j]+ni1ni1 后面那个组合数的含义是对于每 阅读全文
posted @ 2019-06-03 20:14 lleozhang 阅读(124) 评论(0) 推荐(0) 编辑
摘要:BSGS是Baby-step-Giant-step的简写,是用来求解一类问题的算法 模型:求解方程AxB mod C,保证C为质数 首先,我们分析一下暴力的方法:直接从0开始枚举x计算,直到求出答案为止 时间复杂度? O(C) 等等,为什么是O(C)? 根据费马小 阅读全文
posted @ 2019-06-03 19:43 lleozhang 阅读(443) 评论(0) 推荐(0) 编辑
摘要:基本同bzoj 1815,一个图的边用或者不用可以看做黑白染色,这样就是bzoj 1815在m=2,p=997时的特例了 bzoj 1815没做过看这里 (这两道题有一点要注意:在计算时里面有一个部分是指数,千万不要一不小心在算指数的时候也取了模!!!) 贴代码: 阅读全文
posted @ 2019-06-03 17:31 lleozhang 阅读(200) 评论(0) 推荐(0) 编辑
摘要:polya定理板子题... 其实本题难度并不大,但是对我这种初学群论的蒟蒻还是很大一个挑战 首先看见这种带同构的计数,我们应该先把polya扔进来 ans=1|G|i=1|G|mc(pi) 然后我们挨个去找就好了 G显然是一个对应边置换的置换 阅读全文
posted @ 2019-06-03 17:26 lleozhang 阅读(240) 评论(0) 推荐(0) 编辑

levels of contents
点击右上角即可分享
微信分享提示