02 2019 档案

摘要:真·毒瘤题 这个题面写错了一句话。要求的是每个节点的石子树 =它的两个儿子石子数的和。 首先考虑怎么算石子分配的方案。 如果对这棵树每个节点的石子数都和儿子差分一下的话,可以唯一对应一颗每个点都要一个 =0的权值的树。 且这棵树的权值和为x。 那么就可以插板法算一下了,因此它与树的结构无关,只与大小 阅读全文
posted @ 2019-02-28 20:16 Creed-qwq 阅读(336) 评论(0) 推荐(0) 编辑
摘要:每个串拆成两个,都插入trie数。 把trie树建出来后,每一条从根到叶子的链上最多只能有一个变量为1。 这是个经典的前后缀优化2 sat建图的套路。 树上的做法也就是边dfs边做而已。 cpp include define N 3300000 define eps 1e 7 define inf 阅读全文
posted @ 2019-02-28 09:56 Creed-qwq 阅读(276) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2019-02-25 20:19 Creed-qwq 阅读(5) 评论(0) 推荐(0) 编辑
摘要:pro: 维护一个01字符串,支持在结尾动态加字符。 每一个长度 define N 22000 define L 20000 define eps 1e 7 define inf 1e9+7 define db double define ll long long define ldb long d 阅读全文
posted @ 2019-02-25 16:16 Creed-qwq 阅读(354) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2019-02-25 15:47 Creed-qwq 阅读(6) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2019-02-25 15:25 Creed-qwq 阅读(4) 评论(0) 推荐(0) 编辑
摘要:给定一个打乱的等差数列,每次两种操作。 1.查询一个位置。 2.查询是否有比x大的数字。 一共60次操作。 sol: 30次操作即可二分出首项。 剩下30次操作查询出30个位置然后两两做差取gcd即可得到公差 阅读全文
posted @ 2019-02-23 15:53 Creed-qwq 阅读(144) 评论(0) 推荐(0) 编辑
摘要:考虑维护出每一个点左边第一个比它大的位置,右边同理,这样有一个合法区间。 然后对询问离线,由于要求只包含区间内的贡献,扫描线+线段树解决。 T1 http://codeforces.com/problemset/problem/1117/G 考虑一下笛卡尔树,然后分析出答案等于这个区间形成的笛卡尔树 阅读全文
posted @ 2019-02-23 15:48 Creed-qwq 阅读(473) 评论(0) 推荐(0) 编辑
摘要:如果我们能询问一个排列的话,我们就可以得到这个置换,然后反向求解。 但现在字符集只有26。 考虑26^3 1e5。 用一个三维坐标去映射到一个一维整数,然后就可以构造排列了。 cpp include define N 1100000 define eps 1e 7 define inf 1e9+7 阅读全文
posted @ 2019-02-23 09:53 Creed-qwq 阅读(171) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2019-02-22 13:54 Creed-qwq 阅读(3) 评论(0) 推荐(0) 编辑
摘要:在何Au的讲解下终于搞明白了这个以前的坑。 首先考虑最小路径覆盖。 这个题意又要求我们求出的最大流为n 1(这样才能保证路径为1条) 考虑高速航行模式的图怎么建,只需要保证最大流的同时费用最小即可,显然费用流。 再考虑跳跃模式,等价于每个点都互相连边,代价是跳跃的定位时间。 直接暴力建图,每个点向另 阅读全文
posted @ 2019-02-18 10:26 Creed-qwq 阅读(217) 评论(4) 推荐(0) 编辑
摘要:考虑kmp。 这个题的主要问题就在于怎样使复杂度是正确的O(n)。 可以先预处理一个数组cnt[]表示不考虑不能相交这个限制,有多少个border。 这个东西其实也就是fail树上的深度。 然后考虑怎么算num,直接暴力跳到长度<=i/2为止,第一合法个位置的cnt就是答案。 这样做复杂度依然是均摊 阅读全文
posted @ 2019-02-13 00:18 Creed-qwq 阅读(118) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2019-02-12 23:09 Creed-qwq 阅读(11) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2019-02-12 00:14 Creed-qwq 阅读(9) 评论(0) 推荐(0) 编辑
摘要:直接对树dfs一发,对每个节点建出主席树。 查询的时候主席树上二分,四个参数x+y-lca(x,y)-fa[lca(x,y)]。 如果要求支持动态加边的话,只需要一个启发式合并即可,每次暴力重构主席树。 阅读全文
posted @ 2019-02-08 05:09 Creed-qwq 阅读(280) 评论(0) 推荐(0) 编辑
摘要:我们首先考虑没有操作1和操作2怎么做 分析一下lca(x,y)!=root这个条件。 也就是说,每一组中的任意两个点,都需要属于根节点的两个不同儿子的子树。 我们不妨求出根节点的每一个儿子中有多少个给出的点,这个直接用树状数组就能求出来。 这样就得到了一个序列a1,a2...acnt。 这里注意:这 阅读全文
posted @ 2019-02-07 21:03 Creed-qwq 阅读(316) 评论(0) 推荐(0) 编辑
摘要:01背包退背包 首先dp出01背包数组dp[]。 完全背包退背包 首先dp出完全背包数组dp[]。 转移的时候带系数的背包不一定可以退背包。 还有个比较经典的题 https://www.luogu.org/problemnew/show/P1450 容斥求多重背包方案数。 阅读全文
posted @ 2019-02-07 07:00 Creed-qwq 阅读(820) 评论(0) 推荐(0) 编辑
摘要:考虑到路径是有向的,不是很好维护。 如果路径无向的话,可以直接转化为链加和查询操作。 既然有向的话,不妨考虑一波hash。 对于一组询问x,y,可以把树划分为两颗子树。 合法显然需要满足 x子树的起点的hash=y子树的终点的hash x子树的终点的hash=y子树的起点的hash 直接用LCT维护 阅读全文
posted @ 2019-02-07 06:30 Creed-qwq 阅读(144) 评论(0) 推荐(0) 编辑
摘要:day4 下午:订正上一场CF的D和E,学习ETT。 晚上:订正ZR T1,codeforces。 半夜:LCT习题一道,继续学习组合数学,做两道题。 day5 订正CF F题 阅读全文
posted @ 2019-02-07 04:19 Creed-qwq 阅读(176) 评论(0) 推荐(0) 编辑
摘要:https://www.lydsy.com/JudgeOnline/problem.php?id=2555 想一下sam求子串出现次数的方法基本就能得到正解。 由于子串出现次数是一个子树和的形式。 动态插入字符串又要求动态维护树的结构,显然要用LCT。 注意一下LCT维护子树和的写法即可。 cpp 阅读全文
posted @ 2019-02-07 04:16 Creed-qwq 阅读(243) 评论(0) 推荐(0) 编辑
摘要:这个题目很明显在暗示你要用泰勒展开。 直接套上去泰勒展开的式子,精度的话保留12项左右即可。 分别维护每一项的和,可能比较难写吧。 然后强行套一个LCT就没了。 阅读全文
posted @ 2019-02-06 21:18 Creed-qwq 阅读(189) 评论(0) 推荐(0) 编辑
摘要:题目:https://www.luogu.org/problemnew/show/P3721 手玩一下即可AC此题。 结论:插入x后,x要么会成为x的前驱的右儿子,要么成为x的后继的左儿子,这取决于它的前驱和后继的深度。 证明:首先可以证明的是,x的前驱和后继一定存在祖先与后代的关系,因为如果不存在 阅读全文
posted @ 2019-02-06 21:16 Creed-qwq 阅读(217) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2019-02-05 15:10 Creed-qwq 阅读(6) 评论(0) 推荐(0) 编辑
摘要:比赛的时候又被垃圾题艹翻了啊。 这个题显然是区间dp 考虑怎么转移。 类似消除方块和ZYB玩字符串那样的一个DP。 可以从左到右依次考虑消除。 dp[l][r][k][flag]表示区间l,r左边粘着k个flag。 转移方式: 1.考虑强行去继续黏上下一个字符并使k+1。 2.考虑把一段跳过去,让被 阅读全文
posted @ 2019-02-02 23:10 Creed-qwq 阅读(213) 评论(0) 推荐(0) 编辑
摘要:又傻掉了呢 看到连乘显然直接转原根变成线性齐次递推式。 矩阵乘法求一发。 然后分析一下发现是个x^k=m的形式。 按照套路解一下高次方程就好了。 需要用到exgcd和bsgs。 cpp include include include include include include include i 阅读全文
posted @ 2019-02-02 22:04 Creed-qwq 阅读(185) 评论(0) 推荐(0) 编辑
摘要:(k<=1e5,求的方案是有顺序的,即{2,3}和{3,2}不同) sol: 首先考虑没有1的限制怎么做。 就是一个很简单的插板法。 对每个因子插板法一下。 O(m)的复杂度就能求出来。 正解呢? 考虑容斥。 这样可以把不能为1的那个限制去掉。 枚举一下至少有i个位置为1后, 不妨把上一步中那个方法 阅读全文
posted @ 2019-02-01 06:15 Creed-qwq 阅读(16) 评论(0) 推荐(0) 编辑
摘要:https://www.cnblogs.com/butterflydew/p/10457362.html 一定注意容斥的时候-1的系数多减了1。 然后一种很常见的min-max容斥的策略就是以每个元素的出现时间作为权值。 最后一个出现的时间即为max,也就等价于全集出现的时间。 阅读全文
posted @ 2019-02-01 06:02 Creed-qwq 阅读(313) 评论(0) 推荐(0) 编辑
摘要:题意: sol: 考虑floyed 直接暴力做的话复杂度是k×n^3会炸。 考虑一个比较神仙的分块做法。 注意到我们是可以直接求单独某个k的矩阵,使用矩阵快速幂即可(取min的矩阵乘法)。 单独求一次的复杂度是O(n^3logk)。 设块的长度为100。 对k/100的分块边界求一下它们的矩阵。 这 阅读全文
posted @ 2019-02-01 01:46 Creed-qwq 阅读(158) 评论(0) 推荐(0) 编辑

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