摘要: 插入线性基代码: void add(int x){ for (int i = 30;i >= 0;i--){ if (x&(1 << i)){ if (d[i]) x ^= d[i]; else{ d[i] = x;break; } } } } 性质: 原序列里面的任意一个数都可以由线性基里面的一些 阅读全文
posted @ 2021-06-07 19:12 小又又yyyy 阅读(51) 评论(0) 推荐(0) 编辑
摘要: Day1 T1 考虑怎么计算一个长为 len 的序列 a 的 Gobo sort 的期望次数。令 \(b_i\) 表示 a 中 i 出现的次数 那么期望次数为$E = len!\prod\limits_ b_i$ 考虑30分,可以直接暴力递归求解,每次取最小值就好了 freopen写错了,可能还有一 阅读全文
posted @ 2021-05-31 14:20 小又又yyyy 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 之前留了许多坑,有时间会慢慢补,恩我一定会的 Day1 T1 只与约数有关,而看100以内的测试点,最多10个约数,\(m \leq 3\),本来想把$2m$个约数分成对应的小部分和大部分,然后,枚举小部分,统计可行的贡献,出了些问题吧 然后发现如果我暴力枚举所有情况好像也不是很多的样子,然后写了个 阅读全文
posted @ 2021-05-25 17:18 小又又yyyy 阅读(49) 评论(0) 推荐(0) 编辑
摘要: 解决问题: 这类问题一般是给你一个长度为 n 的序列,然后让你统计有一些特性的点对(i,j)有多少个,又或者说是找到一对点(i,j)使得一些函数的值最大之类的问题 算法流程: 找到当前序列中点mid 将所有的点分为三类 第一种是$1\leq i\leq mid\ 1\leq j\leq mid$ 第 阅读全文
posted @ 2021-05-08 10:44 小又又yyyy 阅读(78) 评论(0) 推荐(0) 编辑
摘要: 111 阅读全文
posted @ 2021-05-08 10:20 小又又yyyy 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 我们先从一道经典的例题入手: [SDOI2011]消耗战 题意: 给出一棵树,每条边有边权。 有m次询问,每次询问给出k个点,问使得这k个点均不与1号点(根节点)相连的最小代价 \(1\leq n\leq 2.5\times 10^5,1\leq m\leq 5\times 10^5,1\leq \ 阅读全文
posted @ 2021-05-08 10:12 小又又yyyy 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 整体二分的定义: 在信息学竞赛中,有一部分题可以使用二分的办法来解决。但是当这种题目有多次询问且每次询问我们对每个查询都直接二分,可能会收获一个 TLE。这时候我们就会用到整体二分。整体二分的主体思路就是把多个查询一起解决。(所以这是一个离线算法) 可以使用整体二分解决的题目需要满足以下性质: 询问 阅读全文
posted @ 2021-05-08 10:10 小又又yyyy 阅读(445) 评论(0) 推荐(0) 编辑
摘要: 一、线段树合并的思想 线段树合并,顾名思义,就是建立一棵新的线段树保存原有的两颗线段树的信息。 二、线段树合并的流程 假设我们合并到了两棵树的pos位置 如果a有pos位置,b没有,那么新的线段树pos位置赋成a,返回 如果b有pos位置,a没有,赋成b,返回 如果此时已经合并到两棵线段树的叶子节点 阅读全文
posted @ 2021-05-08 10:08 小又又yyyy 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 解决问题: 猫树是解决无修改区间或树上询问的高效算法. 对于常规问题,比如区间最值,区间最大子段和。我们常常能用线段树等数据结构达到,构造 O(n),询问 O(logn)的时间复杂度。 对于这些做法,只有一点不好,询问复杂度 不够优秀,且对于一些特定问题,线段树的push_up合并也不好写。 但对于 阅读全文
posted @ 2021-05-08 10:07 小又又yyyy 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 当想让学妹看博客时,怕旧的写的太烂被嫌弃,又怕新的看不懂……哎 一、定义: 单词的有向无环图 二、作用 从原点出发形成的所有路径即为单词的所有子串,并且通过维护endpos和endpos类,得知每个串出现的次数和出现的位置 三、构建后缀自动机 一些性质: endpos :数集,一些子串他们出现的位置 阅读全文
posted @ 2021-03-09 17:57 小又又yyyy 阅读(307) 评论(0) 推荐(1) 编辑