随笔分类 - OJ -- Vjudge
摘要:【CodeChef】Querying on a Grid(分治,最短路) 题面 "Vjudge" "CodeChef" 题解 考虑分治处理这个问题,每次取一个$mid$,对于$mid$上的三个点构建最短路径树(因为保证了最短路唯一所以是树)。 如果两点之间的最短路径跨越了$mid$,那么必定有$di
阅读全文
摘要:【HDU4336】Card Collector(Min Max容斥) 题面 "Vjudge" 题解 原来似乎写过一种状压的做法,然后空间复杂度很不优秀。 今天来补一种神奇的方法。 给定集合$S$,设$max\{S\}$为$S$中的最大值,$min\{S\}$为集合$S$中的最小值。 那么我们可以得到
阅读全文
摘要:【HDU3595】GG and MM(博弈论) 题面 "HDU" 一个游戏由多个游戏组成,每次每个操作者必须操作所有可以操作的游戏,操作集合为空者输。 每个游戏由两堆石子组成,每次可以从较多的那一堆中取走较小那堆的数量的倍数个石子。 判断胜负。 题解 $Every SG$,所以我们只需要分开考虑两堆
阅读全文
摘要:【HDU3032】Nim or not Nim?(博弈论) 题面 "HDU" 题解 $Multi SG$模板题
阅读全文
摘要:【HDU1848】Fibonacci again and again(博弈论) 题面 "Hdu" 你有三堆石子,每堆石子的个数是$n,m,p$,你每次可以从一堆石子中取走斐波那契数列中一个元素等数量的石子数,两人轮流取,不能操作者输,判定先后手的胜利。 题解 根据$SG$定理,三堆石子可以拆开来看,
阅读全文
摘要:题面 "HDU" 题解 $Bash\ Game$模板题 cpp include using namespace std; int T,n,m; int main() { ios::sync_with_stdio(false); cin T; while(T ) { cin n m; if(n%(m+
阅读全文
摘要:【POJ2411】Mondriaan's Dream(轮廓线DP) 题面 "Vjudge" 题解 这题我会大力状压!!! 时间复杂度大概是$O(2^{2n}n^2)$,设$f[i][S]$表示当前第$i$行向下伸展出去的状态为$S$ 那么每次枚举一下当前行的放法,进行转移就好了。 然后就长成了这个样
阅读全文
摘要:【HDU4689】Derangement(动态规划) 题面 "Vjudge" 给定一个$+ $组成的字符串,长度为$n$。 如果第$i$位是$+$,那么$p_i i$,否则$p_i include define ll long long ll f[22][22]; char ch[22]; int
阅读全文
摘要:【HDU5421】Victor and String(回文树) 题面 "Vjudge" 大意: 你需要支持以下操作: 动态在前端插入一个字符 动态在后端插入一个字符 回答当前本质不同的回文串个数 回答当前回文串个数 题解 回文树前端插入的操作,学一学感觉并不难? 额外维护一下一个前端插入的$last
阅读全文
摘要:【Aizu2292】Common Palindromes(回文树) 题面 "Vjudge" ~~神TMD日语~~ 翻译: 给定两个字符串$S,T$,询问$(i,j,k,l)$这样的四元组个数 满足$S[i,j],T[k,l]$都是回文串并且$S[i,j]=T[k,l]$ 题解 自己$yy$一下就会做
阅读全文
摘要:【CodeChef】Palindromeness(回文树) 题面 "Vjudge" "CodeChef" "中文版题面" 题解 构建回文树,现在的问题就是要求出当前回文串节点的长度的一半的那个回文串所代表的节点 定义$half$表示长度最长并且长度小于等于当前节点长度一半的回文串所代表的节点 $ha
阅读全文
摘要:【POJ3621】【洛谷2868】Sightseeing Cows(分数规划) 题面 "Vjudge" "洛谷" 大意: 在有向图图中选出一个环,使得这个环的点权$/$边权最大 题解 分数规划 二分答案之后把每条边的边权换为$mid·$边权 出点的点权 然后检查有没有负环就行啦
阅读全文
摘要:【HDU5909】Tree Cutting(FWT) 题面 "vjudge" 题目大意: 给你一棵$n$个节点的树,每个节点都有一个小于$m$的权值 定义一棵子树的权值为所有节点的异或和,问权值为$0..m 1$的所有子树的个数 题解 考虑$dp$ 设$f[i][j]$表示以$i$为根节点的子树中,
阅读全文
摘要:【CSU1911】Card Game(FWT) 题面 "vjudge" 题目大意: 给定两个含有$n$个数的数组 每次询问一个数$x$,回答在每个数组中各选一个数,或起来之后的结果恰好为$x$的方案数。 题解 $FWT$的模板题 $FWT$写起来是真的舒服 cpp include include i
阅读全文
摘要:【SPOJ】Highways(矩阵树定理) 题面 "Vjudge" "洛谷" 题解 矩阵树定理模板题 无向图的矩阵树定理: 对于一条边$(u,v)$,给邻接矩阵上$G[u][v],G[v][u]$加一 对于一条边$(u,v)$,给度数矩阵上$D[u][u],D[v][v]$加一 定义霍尔基夫矩阵$C
阅读全文
摘要:【SPOJ】Power Modulo Inverted(拓展BSGS) 题面 "洛谷" 求最小的$y$ 满足 $$k\equiv x^y(mod\ z)$$ 题解 拓展$BSGS$模板题 cpp include include include include include include incl
阅读全文
摘要:【HDU5730】Shell Necklace(多项式运算,分治FFT) 题面 "Vjudge" 翻译: 有一个长度为$n$的序列 已知给连续的长度为$i$的序列装饰的方案数为$a[i]$ 求将$n$个位置全部装饰的总方案数。 答案$mod\ 313$ 题解 很明显,是要求: $f[n]=\sum_
阅读全文
摘要:【SPOJ】QTREE7(Link Cut Tree) 题面 "洛谷" "Vjudge" 题解 和 "QTREE6" 的本质是一样的:维护同色联通块 那么,QTREE6同理,对于两种颜色分别维护一棵$LCT$ 每次只修改和它父亲的连边。 考虑如何维护最大值 因为每次$access$会删去一个数,所以
阅读全文
摘要:【SPOJ】QTREE6(Link Cut Tree) 题面 "Vjudge" 题解 很神奇的一道题目 我们发现点有黑白两种,又是动态加边/删边 不难想到$LCT$ 最爆力的做法,显然是每次修改单点颜色的时候 暴力修改当前点和它的父亲以及儿子之间的连边状态 但是这样显然是假的(菊花树了解一下) 怎么
阅读全文
摘要:【POJ1741】Tree(点分治) 题面 "Vjudge" 题目大意: 求树中距离小于$K$的点对的数量 题解 完全不觉得点分治了。。 简直$GG$,更别说动态点分治了。。。 于是来复习一下。 对于每一层分治重心 求出它到子树中任意点的距离 然后$two pointers$计算满足大于$K$的点对
阅读全文

浙公网安备 33010602011771号