摘要:
传送门 所以全世界就我没看出来答案是 log 级别的 所以全世界就我两个小时才搞出来一个傻逼二分 答案是 log 级别的很好证 发现要找一个最小的集合使其异或和为某个定值 那么考虑将所有数扔到线性基里,用 log 个数一定能异或出这个数 然后就随便做了 然后二分怎么做呢? 发现有可二分性。发现 fw 阅读全文
摘要:
传送门 神仙题! 听说大力卡时网络流匹配能过 考虑就是要找一个排列 \(p\) 使 \(\sum f_{i, p_i}\equiv 0 \pmod k\) 考虑将矩阵中的每个元素写成集合幂级数 \(x^{f_{i, j}}\),当 \(f_{i, j}=0\) 时这个元素就直接赋为 0 然后将乘法定 阅读全文
摘要:
传送门 发现对一个区间做操作会使整个区间中的一些相关位变一样 那么线段树维护,区间不完全相同就暴力递归 维护区间当前最大值 复杂度应该是 \(O(n\log^2 n)\) 点击查看代码 #include <bits/stdc++.h> using namespace std; #define INF 阅读全文
摘要:
传送门 考虑暴力是 \(O(n^2k)\) 的 考虑暴力这份码: for (int i=1; i<=n; ++i) for (int j=1; j<=k; ++j) for (int l=0; l<i; ++l) f[i][j]=min(f[i][j], f[l][j-1]+sqr(t[i]-t[l 阅读全文
摘要:
传送门 发现 check 是否合法可以用栈贪心 压入一个元素时若与栈顶相同就弹栈 合法条件是最后栈为空 先考虑怎么 \(O(n^2)\) 发现若维护出 \([1, i]\) 和 \([i+1, n]\) 的栈,则合法仅当两栈完全相同 那么枚举 \(i\),枚举其被换成了什么,枚举合法的 \(j\), 阅读全文
摘要:
传送门 我 tm 没做出来这玩意…… 考虑一个 \((A_i, B_i)\),先令 \(A_i\leqslant B_i\) 则能影响到它的 \(T\) 满足 \(T\geqslant A_i, B_i\) 考虑在一个 \(T\in[A_i, B_i-1]\) 的操作后卡牌肯定 B 面向上 那么找到 阅读全文
摘要:
传送门 发现这个“在每个本质不同子串中的出现次数十分阴间” 我们可以做一个神奇的转化: 这个东西就是在原串的前后添加一些字符,使得到的串是 \(s\) 的子串的方案数 正确性显然,就是在拼产生贡献的本质不同子串 那么这个问题就比较好解决了 在前面加字符就是 parent 树的子树内的节点 在后面加字 阅读全文
摘要:
传送门 首先考虑一个暴力 DP 令 \(f_{i, j, k}\) 为点 \(i\) 所在子树,强制选 \(i\) 的最大权独立集为 \(j\),强制不选的为 \(k\) 的方案数 转移考虑每次并进来一个子树 这样的复杂度是 \(O(n^5k^4)\) 的 然后意识到将子树 \(v\) 合并进 \( 阅读全文
摘要:
传送门 除了二进制分组什么都想了.jpg 基本复读zxy dalao的题解 考虑只有对角线为零怎么做 考虑对角线上的点行列编号相等 那么枚举二进制位,分别对此位 行为0列为1 和 行为1列为0 的做一次 这样是 \(O(2\log n)\) 的 考虑扩展到对角线下面那条斜线也是全零的情况 那么将列按 阅读全文
摘要:
传送门 剩 1h10min 的时候发现自己做法假了,疯狂修锅 剩 40min 的时候终于把问题转化成了一个自己不会的板子,于是就爆零了/kk 首先发现本质不同子串个数是 \(O(n^2)\) 级别的,所以这棵树并不能建出来 但发现只有黑色点是有用的,考虑建出一棵压缩后缀树 发现这个东西就是对正串建 阅读全文