摘要: CDQ分治 首先可以将答案分为之前有的逆序对数量+此操作产生的逆序对数量 那么最后前缀和即可 由于题目直接给出的是删除操作,并且加上初始序列的插入操作 有两种不同会对答案造成影响的操作,不容易处理 那么考虑从后往前考虑,那么删除操作就变成插入操作 先将所有要删的数删完剩下的数,把它们作为初始序列 然 阅读全文
posted @ 2020-02-01 14:32 SevenDawns 阅读(137) 评论(0) 推荐(1) 编辑
摘要: 线段树 难得把E想出来,写出来,但却没有调出来(再给我5分钟),我的紫名啊,我一场上紫的大好机会啊 首先考虑是否能将$k$在$1$--$n-1$的每一个的最小代价都求出来 因为$k$从$i$到$i-1$左右两边的集合只相差一个数,所以可以考虑递推 可以发现如果最终满足条件,那么左边集合的最大数一定为 阅读全文
posted @ 2020-01-31 10:45 SevenDawns 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 1.FFT 1 void fft(int n,Complex *x,int cvs) 2 { 3 for (int i=0,j=0;i<n;i++) 4 { 5 if (i<j) swap(x[i],x[j]); 6 for (int l=(n>>1);(j^=l)<l;l>>=1); 7 } 8 阅读全文
posted @ 2020-01-21 15:30 SevenDawns 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 数学+二分 连续打了3场$codeforces$,深深的被各种模拟贪心分类讨论的$C$,$D$题给恶心到了 还有永远看到题一脸懵的$B$题 首先考虑画出不同函数值迭代转移的关系,要注意考虑连边是否能成立,也就是满不满足函数的定义域 首先观察上图,可以发现如果$y$是偶数,节点$y$的左子树存在 但如 阅读全文
posted @ 2019-12-15 21:10 SevenDawns 阅读(501) 评论(0) 推荐(0) 编辑
摘要: 长期留坑 1.AC自动机多模式串匹配问题 对于要统计各个模式串在文本中的出现次数,对于每个当前节点不能直接暴力跳$fail$ 复杂可以退化到$O(n^2)$ $aaaaaa……aaa$可以卡掉 要将$fail$指针反向建出来,明显这是棵树,然后统计其子树大小 1 #include <bits/std 阅读全文
posted @ 2019-11-20 21:11 SevenDawns 阅读(226) 评论(0) 推荐(1) 编辑
摘要: 长链剖分 做法 类似于轻重链剖分,只是将轻重链剖分中重儿子的定义改为,子树中深度最大的儿子 那么可以通过长链剖分来维护有关深度的信息 考虑维护节点$x$的深度信息 那么先让节点$x$继承重儿子的所有信息 再暴力合并所有轻儿子的信息 代码跟轻重链剖分差不多 void dfs(int x,int fa) 阅读全文
posted @ 2019-11-12 20:07 SevenDawns 阅读(152) 评论(0) 推荐(0) 编辑
摘要: ttt学字符串 题目大意 大法师ttt 最近在学习字符串,有一天他看到魔力xtx左手拿着A字符串,右手拿着B字符串,两个字符串的长度都是一样的,而且都由abc三种字符构成,大法师ttt的灵力值为C,现在告诉你 a变b b变c以及c变a分别需要消耗的灵力值(其他变换是不存在的),问你在ttt的灵力值范 阅读全文
posted @ 2019-09-07 17:38 SevenDawns 阅读(903) 评论(0) 推荐(0) 编辑
摘要: 线段树+扫描线 矩形面积并 之前写过矩形周长并 还是跟矩形周长并一样,将每一个矩形的横边和竖边处理出来 用竖边将整个平面分成若干个区间 用线段树维护这些区间被覆盖的长度 再用一条扫描线不断从下往上扫描,扫描横边 当扫描到一个矩形的下边时,将这一段区间在线段树上覆盖掉,更新信息 当扫描到一个矩形的上边 阅读全文
posted @ 2019-08-10 15:00 SevenDawns 阅读(142) 评论(2) 推荐(1) 编辑
摘要: 字符串Hash+二分+平衡树(fhq_treap) 如果没有插入和改变字符的操作,字符串Hash是可以处理出LCP的值的 就是先处理出原字符串的前缀$hash$值,然后对于两个开始的位置二分枚举LCP的长度 然后就是利用前缀和处理出$l$,$r$区间的$hash$值,进行比较即可 但是本题有插入和改 阅读全文
posted @ 2019-08-10 14:49 SevenDawns 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 线段树+扫描线 经典的扫描线问题 首先将一个矩形看作由竖着的两条边和横着的两条边构成 那分成两次考虑,一次考虑竖边,一次考虑横边 首先考虑横边 如图两个矩形,现将横边擦去,留下竖边,将平面划分成3个区域 在代码实现时,可以从左到右记录端点 那么现在想象一条平行于横边的扫描线不断从下往上扫 当扫到一个 阅读全文
posted @ 2019-08-09 20:25 SevenDawns 阅读(274) 评论(1) 推荐(0) 编辑
浏览器标题切换
浏览器标题切换end