摘要: 分析 似乎ttl的模拟赛t3总是折半搜索? 先把所有串转化为每个字母的0/1状态 之后我们将所有字符串分为两半 分别枚举状态 我们发现只有左右两边的字母状态相等才能保证这个集合合法 所以我们在搜左半边的时候每次加入一个pair 表示异或值为x用了y个数 搜完后先将它排序 然后搜右边的时候每次lowe 阅读全文
posted @ 2019-09-14 22:07 水题收割者 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 分析 先建出最小生成树 之后每次倍增找环即可 代码 阅读全文
posted @ 2019-09-14 22:02 水题收割者 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 分析 对于第一问我们直接从上到下枚举所有横边 每一次交换两边的列标号即可 对于第二问我们发现答案就是最终序列的逆序对数量 代码 阅读全文
posted @ 2019-09-14 21:59 水题收割者 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 分析 我们可以先跑一遍全价的最短路 之后我们枚举这个第k大的价格w[i] 将其它边减这个边的权值和0取max 在跑出最短路之后加上减去的费用,即w[i]*k 我们发现如果价值大于w[i]的边小于k个 那么由于小于w[i]的边经过之前操作后权值会比原先大所以一定不有 所以我们不难得出一定是这个点正好是 阅读全文
posted @ 2019-09-14 21:56 水题收割者 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 分析 二分天数 暴力判断即可 代码 阅读全文
posted @ 2019-09-14 21:51 水题收割者 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 分析 它居然真的是个nlog^3暴力?! 两个数在加小于min(lowbit(x),lowbit(y))的数时对他们的奇偶性不影响 因此每次加上min(lowbit(x),lowbit(y))判断此时的奇偶性 直接排序即可 代码 阅读全文
posted @ 2019-09-14 21:50 水题收割者 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 分析 就是保存前pi-1个数每个ai出现多少次 然后维护这些数当前剩余的最大值 每次和新加进来的比较即可 如果新的大直接取 否则新的最大值一定不大于原来的最大值 因此o(n) 代码 阅读全文
posted @ 2019-09-14 21:47 水题收割者 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 分析 就是分别维护l和r的个数 然后对于询问区间[L,R] 之后l树状数组中小于等于R的个数减掉r树状数组中小于L的即可 代码 阅读全文
posted @ 2019-09-14 21:46 水题收割者 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 分析 求满足条件的最大团 我们可以考虑建出补图 发现对于奇数之间和偶数之间 由于一定满足所以补图上一定可以将奇数一组偶数一组建成一个二分图 求二分图最大独立集即可 代码 阅读全文
posted @ 2019-09-14 18:24 水题收割者 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 分析 对于所有边建Kirchhoff矩阵求出生成树个数 我们发现可能存在有多条边是一个人建得的情况 于是我们考虑容斥 因为数据范围很小所以我们可以枚举所有的不同人的集合 对于每个集合求出方案数 然后容斥即可 代码 阅读全文
posted @ 2019-09-14 17:25 水题收割者 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 分析 我们发现任取条路径 对于路径外的环一定可以将它完整的取到 而对于和路径有交的环相当于用一段新路径代替原来的一段路径 所以我们只需求出任意一个1到n的路径和图上所有环的值 然后借助线性基求出异或最大值即可 代码 阅读全文
posted @ 2019-09-14 17:20 水题收割者 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 题目大意 题意狗屁不通 看毛子语都比看这个题面强 分析 我们假设这棵树是一个内向树 那么我们可以轻易的得到dp[x][i]表示x点子树和为i的期望 转移只需枚举当前期望大小和子树期望大小即可 但是由于边的方向不一定 所以这棵树上存在反向边 我们可以容斥有i个边不合法的情况 因此对于一个反向边要么x点 阅读全文
posted @ 2019-09-14 17:13 水题收割者 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 分析 dp[x][i]表示以x为根的子树有i个黑点的方案数 我们发现每次转移要枚举这个点的子树大小和儿子的子树大小 看似复杂度O(n^3) 但是我们可以把循环转化为枚举x子树内的点再枚举它儿子的子树内的点 发现对于一个点它作为儿子子树的点枚举时最多只会和一个点同时枚举到一次 所以总共n^2组点 所以 阅读全文
posted @ 2019-09-14 14:41 水题收割者 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 分析 我们发现k非常的小 于是我们对于每一个点暴力维护它到根的所有节点的深度k次方之和即可 每次找到lca然后用之前处理出来的数组加加减减即可 代码 阅读全文
posted @ 2019-09-14 14:36 水题收割者 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 分析 这是真正的云南oi/px 我们需要考虑保留一段不降子序列 剩余的自由往前往后移动 所以dp一下即可 代码 阅读全文
posted @ 2019-09-14 14:33 水题收割者 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 分析 g[x][i]表示x点向上i条边的所有关键点都被覆盖的代价 f[x][i]表示x点向下i条边有关键点未被覆盖的代价 转移即可 代码 阅读全文
posted @ 2019-09-14 14:30 水题收割者 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 分析 代码 阅读全文
posted @ 2019-09-14 14:25 水题收割者 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 分析 TJOI白给题 建出sam,对于每个点如果它的子树siz和等于k 那么对于这个满足的点它有贡献的长度一定是一个连续区间 直接差分即可 代码 阅读全文
posted @ 2019-09-14 14:18 水题收割者 阅读(155) 评论(0) 推荐(0) 编辑