随笔分类 - OJ -- Vjudge
摘要:【SPOJ】Count On A Tree II(树上莫队) 题面 "洛谷" "Vjudge" 洛谷上有翻译啦 题解 如果不在树上就是一个很裸很裸的莫队 现在在树上,就是一个很裸很裸的树上莫队啦。 cpp include include include include include include
阅读全文
摘要:【ZOJ3316】Game(带花树) 题面 "Vjudge" 翻译: 给定棋盘上$n$个旗子 一开始先手可以随便拿, 然后每次都不能取离上次的曼哈顿距离超过$L$的旗子 谁不能动谁输。 问后手能否赢? 题解 假的博弈论 对于所有曼哈顿距离小于等于$L$的点连边 检查是否存在完美匹配 如果存在完美匹配
阅读全文
摘要:【SPOJ】NUMOFPAL Number of Palindromes(Manacher,回文树) 题面 "洛谷" 求一个串中包含几个回文串 题解 Manacher傻逼题 只是用回文树写写而已。。 cpp include include include include include includ
阅读全文
摘要:【HDU4622】Reincarnation(后缀自动机) 题面 "Vjudge" 题意:给定一个串,每次询问l~r组成的子串的不同子串个数 题解 看到字符串的大小很小 而询问数太多 所以我们预处理任意的答案 枚举左端点,依次向右加入新节点 直接统计答案即可 cpp include include
阅读全文
摘要:【SPOJ】Substrings(后缀自动机) 题面 "Vjudge" 题意:给定一个长度为$len$的串,求出长度为1~len的子串中,出现最多的出现了多少次 题解 出现次数很好处理,就是$right/endpos$集合的大小 那么,直接构建$SAM$ 求出每个位置的$right$集合大小 直接更
阅读全文
摘要:【SPOJ】Longest Common Substring II (后缀自动机) 题面 "Vjudge" 题意:求若干个串的最长公共子串 题解 对于某一个串构建$SAM$ 每个串依次进行匹配 同时记录$f[i]$表示走到了$i$节点 能够匹配上的最长公共子串的长度 当然,每个串的$f[i]$可以更
阅读全文
摘要:【SPOJ】Longest Common Substring(后缀自动机) 题面 "Vjudge" 题意:求两个串的最长公共子串 题解 $SA$的做法很简单 不再赘述 对于一个串构建$SAM$ 另外一个串在$SAM$上不断匹配 最后计算答案就好了 匹配方法: 如果$trans(s,c)$存在 直接沿
阅读全文
摘要:【SPOJ】Distinct Substrings(后缀自动机) 题面 "Vjudge" 题意:求一个串的不同子串的数量 题解 对于这个串构建后缀自动机之后 我们知道每个串出现的次数就是$right/endpos$集合的大小 但是实际上我们没有任何必要减去不合法的数量 我们只需要累加每个节点表示的合
阅读全文
摘要:【SPOJ】Distinct Substrings/New Distinct Substrings(后缀数组) 题面 "Vjudge1" "Vjudge2" 题解 要求的是串的不同的子串个数 两道一模一样的题目 其实很容易: 总方案 不合法方案数 对于串进行后缀排序后 不合法方案数=相邻两个串的不合
阅读全文
摘要:【POJ1743】Musical Theme(后缀数组) 题面 "洛谷,这题是弱化版的,$O(n^2)dp$能过" "hihoCoder 有一点点区别" "POJ 多组数据" 题解 要求的是最长不可重叠重复子串 也就是找两个最长的相同子串 使得它们不相交 先求出$SA,height$ 考虑一下如果两
阅读全文
摘要:【BZOJ1717】产奶的模式(后缀数组) 题面 权限题 "hihocoder" "洛谷" 题解 $hihocoder$里面讲的非常好了 这题要求的就是最长可重叠重复K次子串 所谓相同的子串 我们可以理解为如果有两个后缀的前缀相同 那么就有一个相同的子串 如果两个后缀的前缀相同 那么他们在$SA$中
阅读全文
摘要:【LightOJ1259】Goldbach`s Conjecture(数论) 题面 "Vjudge" T组询问,每组询问是一个偶数n 验证哥德巴赫猜想 回答n=a+b 且a,b(a include include include include include include include inc
阅读全文
摘要:【LightOJ1282】Leading and Trailing(数论) 题面 "Vjudge" 给定两个数n,k 求n^k的前三位和最后三位 题解 这题。。真的就是搞笑的 第二问,直接输出快速幂$mod \ 1000$的值,要补前导零 第一问。。。就是搞笑的 依旧是快速幂 但是用double来算
阅读全文
摘要:【LightOJ1336】Sigma Function(数论) 题面 "Vjudge" 求和运算是一种有趣的操作,它来源于古希腊字母σ,现在我们来求一个数字的所有因子之和。例如σ(24)=1+2+3+4+6+8+12+24=60.对于小的数字求和是非常的简单,但是对于大数字求和就比较困难了。现在给你
阅读全文
摘要:【LightOJ1370】Bi shoe and Phi shoe(欧拉函数) 题面 "Vjudge" 给出一些数字,对于每个数字找到一个欧拉函数值大于等于这个数的数,求找到的所有数的最小和。 题解 首先线性筛出欧拉函数值 排序之后倒着取min 最后$O(n)$求和即可 cpp include in
阅读全文

浙公网安备 33010602011771号