随笔分类 -  其他 - 优化/小技巧

摘要:新学了一下笛卡尔树,这道题是模板题,统计一下以 $x$ 为 lca 的点对就行. 然后统计的话用线段树合并 + 启发式合并就行了. code: #include <bits/stdc++.h> #define N 100006 #define ll long long #define lson s[ 阅读全文
posted @ 2020-05-08 22:14 EM-LGH 阅读(235) 评论(0) 推荐(0)
摘要:大大大分类讨论,思路还是非常巧妙的. code: #include <bits/stdc++.h> #define ll long long #define lson now<<1 #define rson now<<1|1 #define N 100008 #define mod 99824435 阅读全文
posted @ 2020-04-21 23:00 EM-LGH 阅读(147) 评论(0) 推荐(0)
摘要:有一个条件没看到(每次覆盖的数一定是最大的)我们在这道题中可以只去维护断点(数与数不同的地方) 而由于新的区间覆盖的数字一定是不同于以前的数字,所以这个端点就比较好维护. 对于序列 $p$,覆盖 $[L,R]$ 显然 $1$ ~ $L-2$,$R+1$ ~ $n$ 断点不改变,$L-1$ 与 $R$ 阅读全文
posted @ 2020-04-21 20:24 EM-LGH 阅读(133) 评论(0) 推荐(0)
摘要:注意:$LCT$ 在 $link$ 的时候必须要 makeroot. 假如要将 $y$ 连到 $x$ 上: 如果只是将 $y$ Access 并 splay 然后直接连到 $x$ 上的话你会发现 $y$ 在 $splay$ 中所有左儿子其实都在 $(x,y)$ 之间,而这显然就不对了. code: 阅读全文
posted @ 2019-12-26 11:53 EM-LGH 阅读(138) 评论(0) 推荐(0)
摘要:题意:给定一颗树,有 $m$ 次操作. 操作 0 :向集合 $S$ 中加入一条路径 $(p,q)$,权值为 $v$ 操作 1 :给定一个点集 $T$,求 $T$ 的并集与 $S$ 中路径含交集的权和.(就是如果路径 $i$ 与 $T$ 有交集,就产生 $v_{i}$ 的贡献) 数据范围:路径长度 $ 阅读全文
posted @ 2019-12-20 17:56 EM-LGH 阅读(266) 评论(0) 推荐(0)
摘要:自己 yy 了一个动态 dp 做法,应该是全网唯一用 LCT 写的. code: #include <bits/stdc++.h> #define ll long long #define lson tr[x].ch[0] #define rson tr[x].ch[1] #define setIO 阅读全文
posted @ 2019-12-05 20:25 EM-LGH 阅读(183) 评论(0) 推荐(0)
摘要:挺神的一道题 ~ 由于两个人选的数字不能有互质的情况,所以说对于一个质因子来说,如果 1 选了,则 2 不能选任何整除该质因子的数. 然后,我们发现对于 1 ~ 500 的数字来说,只可能有一个大于 $\sqrt 500$ 的质因子(两个的话乘积就超过 500 了) 而不大于 $\sqrt 500$ 阅读全文
posted @ 2019-12-02 20:59 EM-LGH 阅读(177) 评论(0) 推荐(0)
摘要:给你一堆线段,求:一个区间内包含的本质不同线段种类数(只要线段有一部分在区间中就算是包含) 考虑容斥:总线段数-被那些没有询问的区间完全覆盖的数量. 用离线+树状数组数点或者 KDtree 数点即可. #include <bits/stdc++.h> #define N 300005 using n 阅读全文
posted @ 2019-10-29 15:54 EM-LGH 阅读(168) 评论(0) 推荐(0)
摘要:题意:给定一颗 $n$ 个节点的树,定义 $dis(x,y)$ 为树上点 $x$ 到 $y$ 的路径经过的边数. 定义一个点集 $S$ 的 $f(S)$ 为 $f(S)=max\left \{dis(x,y)|x,y\in S\right \}$ $,|S|\geqslant2$ 求:对于 $i$ 阅读全文
posted @ 2019-10-11 18:52 EM-LGH 阅读(173) 评论(0) 推荐(0)
摘要:题意: 给定序列 $a,m$ 次询问,每次询问给出 $t,k$. 求 $a_{t}+a_{t+k}+a_{t+2k}+.....a_{t+pk}$ 其中 $t+(p+1)k>n$ 题解: 这种跳步数问题可以用根号分治来解决: 对于 $k$ 比较大的询问直接暴力跳,而对于 $k$ 较小的部分就通过预处 阅读全文
posted @ 2019-10-09 16:44 EM-LGH 阅读(168) 评论(0) 推荐(0)
摘要:题意:给定一棵树,树上有一些点是警察局,要求所有点到最近的警察局的距离不大于 $d$,求最多能删几条边 ? 题解: 考虑什么时候一条边可以被断开:这条边的两个端点被两个不同的警察局覆盖掉. 我们要设计一种染色方案,使得整棵树都被覆盖,且每个警察局覆盖的范围尽量小. 那么,我们可以使用 $BFS$ 算 阅读全文
posted @ 2019-10-03 11:29 EM-LGH 阅读(214) 评论(0) 推荐(0)
摘要:正确的贪心方法:按照比例排序. code: 阅读全文
posted @ 2019-10-01 09:01 EM-LGH 阅读(214) 评论(0) 推荐(0)
摘要:非常巧妙的动态规划. 你会发现每一个区间地颜色种类不能超过 $\sqrt n$, 所以可以直接枚举区间颜色种类. 令这个为 $pos[j],$ 然后考虑如何去更新这个东西就行了. Code: 阅读全文
posted @ 2019-09-29 10:50 EM-LGH 阅读(177) 评论(0) 推荐(0)
摘要:考试的时候考的一道题,感觉挺神的. 我们发现将所有数去重后最多只会选不到 $7$ 后 $gcd$ 就会变成 $1$. 令 $f[i][k]$ 表示选 $i$ 个数后 $gcd$ 为 $k$ 的方案数. 那么这 $i$ 个数中每个数都必须是 $k$ 的倍数. 令 $cnt[k]$ 为所有数中是 $k$ 阅读全文
posted @ 2019-08-31 14:53 EM-LGH 阅读(178) 评论(0) 推荐(0)
摘要:Description JSOI交给队员ZYX一个任务,编制一个称之为“文本生成器”的电脑软件:该软件的使用者是一些低幼人群,他们现在使用的是GW文本生成器v6版。该软件可以随机生成一些文章―――总是生成一篇长度固定且完全随机的文章—— 也就是说,生成的文章中每个字节都是完全随机的。如果一篇文章中至 阅读全文
posted @ 2019-08-28 08:45 EM-LGH 阅读(163) 评论(0) 推荐(0)
摘要:Description 「恒逸,你相信灵魂的存在吗?」 郭恒逸和姚枫茜漫步在枫音乡的街道上。望着漫天飞舞的红枫,枫茜突然问出 这样一个问题。 「相信吧。不然我们是什么,一团肉吗?要不是有灵魂……我们也不可能再见 到你姐姐吧。」 恒逸给出了一个略微无厘头的回答。枫茜听后笑了笑。 「那你仔细观察过枫叶吗 阅读全文
posted @ 2019-08-21 18:03 EM-LGH 阅读(229) 评论(0) 推荐(0)
摘要:Description BX正在进行一个字符串游戏,他手上有一个字符串L,以及其他一些字符串的集合S,然后他可以进行以下操作:对 于一个在集合S中的字符串p,如果p在L中出现,BX就可以选择是否将其删除,如果删除,则将删除后L分裂成的左右 两部分合并。举个例子,L='abcdefg' , S={'d 阅读全文
posted @ 2019-08-21 10:12 EM-LGH 阅读(190) 评论(0) 推荐(0)
摘要:Description Input Output 求一棵树编号序列不同的方案数: 令 $f[u],g[u]$ 分别表示 $u$ 选/不选 的方案数. 则 $f[u]=\prod_{v\in son[u]}g[v]$,$g[u]=\prod_{v\in son[u]}g[v]+f[v]$. 然而如果要 阅读全文
posted @ 2019-08-19 17:16 EM-LGH 阅读(250) 评论(0) 推荐(0)
摘要:Description Input Output 其实就是给出两颗树,求一种两种树同构的方式,使得不同颜色个数最少$.$树的重新构建,其实就是指定不同的点为根节点$.$ 好在树的重心有一个重要的性质:在一颗树上只有一个/两个点之间又一条边$.$ 我们可以把第一棵树随便一个重心为根,求出每个点为根节点 阅读全文
posted @ 2019-08-19 11:29 EM-LGH 阅读(191) 评论(0) 推荐(0)
摘要:第一问: 先不考虑山的高度有相同的:直接按照高度降序排序,试着将每一座山插入到前面山的缝隙中. 当然,这并不代表这些山的相对位置是固定的,因为后面高度更低的山是有机会插入进来的,所以就可以做到将所有情况都考虑到. 假设现在要插入第 $i$ 座山,前面已插入了 $i-1$ 座比当前山高的山,那么当前能 阅读全文
posted @ 2019-08-17 14:38 EM-LGH 阅读(165) 评论(0) 推荐(0)