摘要:
传送门 发现就是要动态维护一个集合线性基的大小 线段树分治即可 点击查看代码 #include <bits/stdc++.h> using namespace std; #define INF 0x3f3f3f3f #define N 100010 #define fir first #define 阅读全文
摘要:
传送门 发现是对子集计数,不好直接做 赛时试图固定右端点算包含这个右端点的无果 结果正解的基础 DP 比这个要暴力亿点 直接枚举一个子集最左、右的两个元素 那么能随意选的元素的限制区间必须包括这两个端点 于是对右端点扫描线 一个能够到当前右端点的 \(i\) 在 \(l_i\) 处的贡献是将 \(l 阅读全文
摘要:
传送门 弄个矩阵高斯消元 发现矩阵很像带状矩阵 具体一点,它长这样: 那么一种处理方式是分成几个部分分别处理 先把 2 部分当成增广部分(用这部分未知数表示前 \(n-k\) 个元) 然后把 1 部分消成只有主对角线上有值 然后用 1 部分将 3 部分消空(右边仍当做增广矩阵) 然后对 4 部分暴力 阅读全文
摘要:
传送门 刚了一场没刚动 关于一类定长区间修改问题:差分之后发现每次修改会影响到的两个点在模区间长意义下同余,也许可以对依次对区间长根号分治 按位异或的优先级大于逻辑等于的优先级 那么发现如果对每个剩余系单独维护一个序列 这个序列的前缀异或和中非零数的个数和就是答案 那么要支持的操作就是单点修改,区间 阅读全文
摘要:
传送门 前三个小时都有点神游导致没发现这题是水题 首先化式子 令 \(x=\frac{a+b}{c}\),则要求 \(-\frac{x^3+1}{x}\equiv t\) 这个可以枚举 \(x\) 开桶判断 然后 \(a+b\) 可以 ntt 卷积预处理出来 接下来赛时就只会对每个 \(x\) 枚举 阅读全文
摘要:
传送门 菊花图的部分分堆贪心是假的,需要较为麻烦的线段树+二分 题意: 要求从 \(1\) 号点开始走一个路径并最终回到 \(1\) 号点,且这条路径经过了所有的边,一条路径的代价就是它经过的边的边权之和。 我们可以加若干条额外边,第 \(i\) 条加的额外边的边权为正整数 \(A_i\)。 注意, 阅读全文
摘要:
传送门 对于每个点被多少区间覆盖一类问题:将这些区间差分了试试? 将所有区间差分成 \([l, r+1)\) 的形式 发现这个 \(abs\leqslant 1\) 就很烦 可以在每个被奇数个区间覆盖的位置 \(i\) 放一个区间 \([i, i+1)\) 转化为覆盖每个位置的黑色区间数等于白色区间 阅读全文
摘要:
传送门 关于 \(O(n^6)\) 跑过了这件事 一个 \(O(n^5)\) 的做法是拆成 \(\binom{n}{2}\binom{m}{2}\) 个一维的情况考虑 正解咕了 点击查看代码 #include <bits/stdc++.h> using namespace std; #define 阅读全文
摘要:
传送门 首先发现这种集合就是一个线性空间 于是问题变为本质不同线性基计数 对于一个数查询其是线性基内排名: 将线性基转为最小表示,将每个主元位置在要查询的数的二进制表示下对应的位置单独拎出来组成一个二进制数,即为排名 证明考虑这样的实际意义即可 将 \(\{y_1\cdots y_m\}\) 做线性 阅读全文
摘要:
传送门 发现一个区间内前 \(\log\) 大的数不可能对答案没贡献 于是一个乱搞是线段树取出前 \(\log\) 大的数,单调栈 \(O(n^2)\) 在这 \(\log\) 个中求答案 复杂度 \(O(n\log^2 n)\),可以过 zhengrui 的 200 组数据 但是很好卡,考虑最大的 阅读全文