06 2019 档案
摘要:首先有个思想,就是逐层更新 然后考虑每次查询是查从某一点到根节点的树链上的信息,因此用树链剖分维护即可,处理每个点的对子树中节点的贡献可以区间修改(只需修改这一节点向上的树链即可),然后查询时区间查询,去掉不合法的部分即可 时间复杂度,其实本题正解应当是$O(nl
阅读全文
摘要:动态dp是一个毒瘤且奇葩的东西... 然而noip2018出了这个东西... 因此... 以一道题为例吧:给出一棵带点权的树,每次修改一个点的点权,查询这棵树的最大权独立集(可以理解为每次询问一遍“没有上司的舞会”) 首先考虑暴力: 设状态表示以为根的子树,点选或不
阅读全文
摘要:嗯.. 首先考虑如果只有一次询问我们怎么做 设我们当前有个数集{},进行这一询问,我们怎么处理? 首先不妨假设{}单调不降(如果不是这样的话显然排序并不会影响答案) 那么假设前个数都合法,其能组合出的最大的值为,那么我们只需比较与的大小就可
阅读全文
摘要:首先吐槽一下bzoj,这CF原题还做成权限题啊?! 需要注意的是,一个点不能被选中当且进当这个点在第y+1年到现在这一段时间内受到攻击,其余的点都可以被选 然后...其实这题的重点在于...码 思想很简单,先树链剖分,然后建起一棵主席树维护,每次修改就生成一个新版本,这样的话用现在的版本-时刻y的版
阅读全文
摘要:首先考虑容斥 我们计算出所有没有点在其中的矩形,然后用所有矩形减去这些矩形即可 然后考虑如何计算没有点在其中的矩形 采用扫描线的思想,从上向下一行一行扫,假设我们扫到的行编号是,然后考虑如果左右的列端点是,那么这一行向上至多能扩展几个矩形呢? 显然,我们要找到区间中
阅读全文
摘要:数据范围很重要!!! 首先观察数据范围,发现我们要修的桥的数量只能是一座或两座,因此我们直接讨论即可 对于在河的一侧的人家,显然花费是一定的,直接累计即可 对于在河两侧的人家,显然过河的花费是一定的,直接累计即可 接下来讨论的所有人都在桥的两侧 首先我们假设只有一座桥,位置为,设对于第个
阅读全文
摘要:生成函数好题 首先我们对每一种物品(设体积为)构造生成函数 那么很显然答案就是这一堆东西乘在一起 但是...这个复杂度是的,显然不合理 因此我们考虑优化 我们发现,如果我们把所有生成函
阅读全文
摘要:容斥好题 首先我们考虑,如果没有节点之间一一对应的限制,我们可以这样: 设状态表示以为根节点的子树,节点与节点对应的方案数 那么转移就是$dp[i][j]=\prod_{son_{i}}\sum_{k=1}^{n}map[j][k]dp[son_{i}]
阅读全文
摘要:三倍经验...(然而我并没有氪金所以只能刷一倍...) 考虑在什么情况下两点是合法的: 可以看到,对于红色的点而言,绿色的点是合法的,而黄色的点是不合法的 那么观察一下这几个点的切线把圆分成的这几个弧之间的关系,可以看到:如果两个弧相交但不包含,那么对应的两点合法(比如红色和绿色),剩余情况均不合法
阅读全文
摘要:首先显然是并查集了 每次连边就是合并两个集合,最后会形成很多连通块,是个森林的结构 考虑在连边的时候加入一个权值表示这条边是第几次被加入图中的,那么每次查询的答案即为到路径上权值最大值 由于并查集按秩合并的复杂度是,因此合并时直接按秩合并,查询时暴力向上跳即可
阅读全文
摘要:留个位置 本题...一言难尽啊... 首先可以发现,恰好为个的颜色数量为 首先我们设表示至少选了种颜色达到恰好个的方案数,那么$g(i)=C_{m}^{i}(m-i)^{n-iS}\frac{n!}{(S!)^{i}(n-iS
阅读全文
摘要:首先我们需要找出一个朴素的递推来解决这个问题: 设状态表示权值和为的二叉树的数量,表示权值是否在集合中,即 枚举根节点和左子树的权值,立刻得到一个递推: $f(n)=\sum_{i=0}^{n}g(i)\sum_{j=0}^{n-i}
阅读全文
摘要:这一版是mx发明的MTT 速度极快,精度基本有保证,在奇技淫巧无效时可以考虑这个东西... (但是无论如何我都不想用真正的任意模数NTT,那种东西简直毒瘤而且常常数巨大...) 原理:并不关心
阅读全文
摘要:有两种推导方法: 第一种: 设状态表示有个点的无向连通图个数,表示有个点的无向图个数,那么显然即为我们所求,而 于是写出一个递推:枚举号点所在的连通块,可得:$g(n)=\sum_{i=1}^
阅读全文
摘要:题意:求 一看就觉得不可做... 但是还是需要仔细分析的 最重要的是一步转化: 根据第二类斯特林数的定义:表示将个不同物品分到个集合中的方案数 然后考虑求和式里面那个东西,发现其含义就是
阅读全文
摘要:计数好题 首先看到这种问题直接想到的应该是polya定理 可是对颜色使用个数有限制啊! 没关系,我们分析一下polya定理的表达式: 可以看到,这其中的每一项等价于用种颜色对每个循环节任意染色的方案数(即对每个循环节
阅读全文
摘要:多项式求逆是多项式除法的基础,如果你不会多项式求逆,请看这里 问题:已知两个多项式(次数为n),(次数为m),求两个多项式与,满足,所有运算在模998244353意义下进行 推一发式子: $F(x)=G(x)Q(
阅读全文
摘要:生成函数在计算方案数以及计算递推公式时都有很大的作用,本文对生成函数的知识做一个初步的介绍(主要是博主自己不会) 一.基本定义: 给出序列{}={},构造一个函数(或者多项式)$F(x)=a_{0}+a_{1}x+a_{2}x^{2
阅读全文
摘要:一道生成函数例题 如果对生成函数的知识不太了解,看这里 下面认为你已经了解了生成函数的内容 那么看见这种问题直接上生成函数嘛! 直接构造...10个生成函数 福利时间:这10个生成函数如下: $F(x)=1+x+
阅读全文
摘要:题意:给出n条线段,判断是否存在一条直线使所有线段在这条直线上的投影有公共部分 首先,如果存在这样的一条直线,那么这条直线的一条垂线一定穿过每一条线段,反之亦然,因此问题就转化成了是否存在一条直线能穿过所有线段 n条线段共2n个点,我们枚举任意两个点构造一条直线与所有线段判断交点即可 注意n=1与n
阅读全文
摘要:题意:给出一个矩形区域和n条分割线,将分出的个区域从左向右从0到n编号,给出一些点,问落在每一个区域里的点的数量 计算几何裸题 由于题目中限制挡板不相交且从左向右给出,因此直接从左向右枚举每一个挡板,用叉积判断这个点在这个挡板的左侧还是右侧即可 具体的,我们记录每个挡板的下面的点的坐标和这
阅读全文
摘要:一道很有趣的题 根据期望的可加性,我们只需计算出每个点实际被使用的概率然后乘上贡献累加即为最后答案 于是问题就转化成了求每个点被使用的概率 我们从头开始分析:对于第一个点,他被使用的概率就是 这一点很好理解,因为每次我们开头就遇到了第一个点,那么第一个点没被用的概率就是
阅读全文
摘要:这并不是真正的任意模数NTT,只是一种奇技淫巧,但是由于码量小而且有效,所以写在这里 在卷积问题中,如果我们要求对答案取模,而且答案不取模会爆long long,但模数原根并不好甚至不是质数,这该怎么办呢? 直接提出一种方法:取一个阈值M,将原本的一个多项式拆分成两个多项式,系数分别为$A_{i}/
阅读全文
摘要:在做本题之前,你需要一个预备知识:任意模数NTT 如果不会,请看这里 (其实那个不是真正的任意模数NTT,而是一种奇技淫巧,但是...能用就行!) 然后我们来讨论本题 首先不难发现,后来的一个数的二进制表示一定至少有一位上是,且原来的数上这一位都是 这是很显然的,否则无法满足
阅读全文
摘要:一道略有难度的dp 设状态表示长度为,开头高度为且为山峰的方案数 考虑到一个序列是对称的,所以总方案数即为 这样我们只需考虑转移即可 首先,我们发现,如果两个数与不相邻,那么交换这两个数之后方案数不变
阅读全文
摘要:非常简单的组合数学+容斥原理 直接计算不好计算,我们用容斥原理计算:所有人随便选-至少有一个人没有礼物+至少有两个人没有礼物... 假设我们有个人没有礼物,那么方案数为 后面那个组合数的含义是对于每
阅读全文
摘要:BSGS是Baby-step-Giant-step的简写,是用来求解一类问题的算法 模型:求解方程 mod ,保证C为质数 首先,我们分析一下暴力的方法:直接从0开始枚举x计算,直到求出答案为止 时间复杂度? 等等,为什么是? 根据费马小
阅读全文
摘要:基本同bzoj 1815,一个图的边用或者不用可以看做黑白染色,这样就是bzoj 1815在m=2,p=997时的特例了 bzoj 1815没做过看这里 (这两道题有一点要注意:在计算时里面有一个部分是指数,千万不要一不小心在算指数的时候也取了模!!!) 贴代码:
阅读全文
摘要:polya定理板子题... 其实本题难度并不大,但是对我这种初学群论的蒟蒻还是很大一个挑战 首先看见这种带同构的计数,我们应该先把polya扔进来 然后我们挨个去找就好了 显然是一个对应边置换的置换
阅读全文