
OJ
online judge
kgduu
这个作者很懒,什么都没留下…
展开
-
POJ3522 Slim Span(Kruskal)
给定一个n个顶点,m条边的无向图, 求最大边减去最小边的值最小的生成树。原创 2024-01-21 16:45:43 · 427 阅读 · 0 评论 -
UVa11478 Halum(BellmanFord)
给定一个n个点,m条边的有向图,每条边有一个权值。每次选择一个结点v和一个整数d,把以v为终点的边的权值减d,把以v为起点的边的权值加d,最后要求所有边的权值的最小值非负且最大。原创 2023-12-03 23:26:55 · 140 阅读 · 0 评论 -
UVa11090 Going in Cycle!!(BellmanFord)
给定一个包含n个顶点,m条边的加权有向图,求平均权值最小的回路。原创 2023-11-12 21:33:08 · 186 阅读 · 0 评论 -
UVa12661 Funny Car Racing(Dijkstra)
给定n个点,m条边,起始点s,目标点t,求从起点s到终点t的最短距离。已经道路上的边e是每隔ea秒开启,再隔eb秒关闭,通过时间为et。原创 2023-11-05 11:01:16 · 188 阅读 · 0 评论 -
UVa1078 Steam Roller(Dijkstra)
给出一个图,边值不等于0的表示通过这条路所需要的时间,有如下一些约束问从起点到终点所需要的最短时间。原创 2023-10-29 22:47:57 · 209 阅读 · 0 评论 -
UVa658 It’s not a Bug, it’s a Feature!(Dijkstra)
给出一个包含n个bug的应用程序,以及m个补丁,每个补丁使用两个字符串表示,第一个串表示补丁针对bug的情况,即哪些bug存在,以及哪些bug不存在,第二个串表示补丁对bug的修复情况,即修复了哪些bug,以及引入哪些bug。补丁还包含修复的时间。问修复这些bug所需要的最短时间。原创 2023-10-15 22:16:42 · 613 阅读 · 0 评论 -
UVa10537 The Toll! Revisited(Dijkstra)
在无向图中,经过结点时,需要交纳入口通行费,如果结点类型为城镇,需要交纳n/20个物品,如果结点类型为乡村时,只要交纳1个物品,问从起点到终点, 至少需要带多少个物品。原创 2023-09-24 22:57:29 · 249 阅读 · 0 评论 -
UVa1416 Warfare And Logistics(Dijkstra)
给出包含n个结点,m条边的无向图,每条边上有一个正权,求每对结点的最短路径之和,以及去掉一条边后,要求每对结点的最短路径之和最大。原创 2023-09-17 16:27:30 · 134 阅读 · 0 评论 -
UVa11374 Airport Express(Dijkstra)
思路:如果选择商业路线为从u到v,则需要从s->u,u->v,v->e点的路径最短。使用Dijkstra计算出从s点到其它各点,以及从e点到其它各点的最短路径,然后遍历商业路线u,v,选取从s->u,u->v,v->e点中路线最短的。题意:给出经济路线以及商业路线,在给出起始点s,终止点e,在只能使用其中一个商业路线 的情况下输出最短路径。原创 2023-09-03 14:04:01 · 316 阅读 · 0 评论 -
UVa10048 Audiophobia(floyd)
给出一个图,图中的边表示从点u到点v路径上的噪音。给出q个查询,问从u到v所经路径上的最小噪音。原创 2023-08-19 21:49:36 · 386 阅读 · 0 评论 -
UVa247 Calling Circles(Floyd warshall算法)
给定两个人相互打电话,如果a打给b,b打给c,c打给a,则说a,b,c在同一电话圈中。给出n个人的m次通话,输出所有的电话圈。原创 2023-08-19 16:27:53 · 1272 阅读 · 0 评论 -
UVa11987 Almost Union-Find(带删除操作的并查集)
UVa11987 Almost Union-Find(并查集)原创 2023-04-09 18:57:36 · 449 阅读 · 0 评论 -
UVa12232 Exclusive-OR(加权并查集)
UVa12232 Exclusive-OR(加权并查集)原创 2023-04-05 15:56:28 · 233 阅读 · 0 评论 -
LeetCode Longest Valid Parentheses(dp)
1、问题给你一个只包含 '(' 和 ')' 的字符串,找出最长有效(格式正确且连续)括号子串的长度2、算法用dp(i)表示以字符串下标i结束的最长在效字符串长度。分两种情况 ,一种是s[i]=')',s[i-1]=')'此时,dp[i] = dp[i - 2] + 2。另外一种情况是s[i] = ')', s[i - 1] = ')',用子串sub表示以s[i-1]结束的最长有效字符串。如果子串sub的前一个字符为'('与s[i]构成有效字符串,此种情况下有dp[i] = dp[i - 1] +原创 2022-04-09 20:02:11 · 383 阅读 · 0 评论 -
codeforces D Prefixes and Suffixes(kmp)
先计算前缀函数,统计cnt[pi[i]]的个数,然后根据前缀前缀的迭代关系,即pi[pi[i] - 1],统计其个数,最后计算前缀自身。代码参考:https://github.com/wuli2496/OJ/tree/master/codeforces/432D%20Prefixes%20and%20Suffixes...原创 2021-12-17 15:01:39 · 281 阅读 · 0 评论 -
codeforces D MUH and Cube Walls(kmp)
先分别计算a,b数组的差分,得到两个数组,文本数组和模式数组,然后使用kmp统计模式数组在文本数组出现个数。对于b数组长度为1时,结果就是数组a的长度。代码参考:OJ/codeforces/471D MUH and Cube Walls at master · wuli2496/OJ · GitHub...原创 2021-12-17 13:33:04 · 234 阅读 · 0 评论 -
codeforces808G Anthem of Berland(kmp+自动机+dp)
先计算s+#的前缀函数,然后再计算出在 a-z字符集内的自动机。然后使用动态规则计算。dp(i,j)表示在文本串t的第i个字符,自动机状态为j(即前缀函数值)时的s在t出现的最大次数。当第i+1个字符为字母时,计算新的自动机状态newState以及新的dp(i+1, newState),当字符为?时,枚举a-z,计算dp(i+1,newState)代码参考:OJ/Anthem of Berland(kmp+自动机).java at master · wuli2496/OJ · GitHub..原创 2021-12-06 22:20:18 · 478 阅读 · 0 评论 -
spoj Pattern Find(kmp)
解法1先计算模式串的前缀函数,然后通过前缀函数来搜索文本串代码参考:https://github.com/wuli2496/OJ/blob/master/spoj/Pattern%20Find/Pattern%20Find(kmp).java原创 2021-11-29 21:40:32 · 236 阅读 · 0 评论 -
UVa11019 Matrix Matcher(hash+kmp)
二维字符串匹配问题,将二维模式x*y转换成1*y列的哈希数组。同时将二维文本串n*m转换成(n-x+1)*m列的哈希矩阵,前x行先计算哈希,后面的通过滚动计算哈希值。然后遍历(n-x+1)次,通过kmp计算1*y列构成的哈希数组,在(n-x+1)*m列中匹配出现的次数。代码参考:https://github.com/wuli2496/OJ/tree/master/UVa/11019%20Matrix%20Matcher...原创 2021-11-28 21:18:32 · 291 阅读 · 0 评论 -
UVa12467 Secret Word(kmp)
先将s反转得到字符串t,再通过kmp求得t的子串,使得访子串是s的最长前缀代码参考:OJ/UVa/12467 Secret Word at master · wuli2496/OJ · GitHub原创 2021-11-28 17:31:24 · 258 阅读 · 0 评论 -
UVa12604 Caesar Cipher(kmp)
枚举字符串w可偏移后的字符串w',计算其前缀函数,看加密串s中包含w'的个数,如果为1,说明是满足要求的。代码参考:https://github.com/wuli2496/OJ/tree/master/UVa/12604%20Caesar%20Cipher原创 2021-11-28 15:31:08 · 312 阅读 · 0 评论 -
UVa11452 Dancing the Cheeky-Cheeky(kmp)
使用kmp算法求得字符串的周期,然后根据长度以及周期找到字符串输出位置代码参考:OJ/UVa/11452 Dancing the Cheeky-Cheeky at master · wuli2496/OJ · GitHub原创 2021-11-26 21:46:37 · 369 阅读 · 0 评论 -
UVa11022 String Factoring(kmp+dp)
用dp(i,j)表示子串s[i..j]可以表示的最小长度。动态转移方程有dp(i,j) =min{dp(i,k) + dp(k+1,j)},其中k属于[i,j]。s[i..j]是周期串,最小周期为period则dp(i,j)=min{dp(i,j), dp(i, i + peroid - 1)代码参考:OJ/UVa/11022 String Factoring at master · wuli2496/OJ · GitHub...原创 2021-11-25 20:45:14 · 341 阅读 · 0 评论 -
UVa455 Periodic Strings(kmp)
先计算字符串的前缀函数,如果字符串长度为n,如果,说明字符串是周期的,否则不是。代码参考:OJ/Periodic Strings(kmp).java at master · wuli2496/OJ · GitHub原创 2021-11-24 21:44:16 · 436 阅读 · 0 评论 -
codeforces D Good Substrings(hash)
选择P和M,刚开始使用131和1000000009提交出错,换成1000000009和Long.MAX_VALUE提交成功。在处理出错字符个数不超过k时,在循环中统计出错字符个数提交超时,改成预处理,计算前缀中出错字符个数,在计算区间内出错字符个数时,可以直接使用两个前缀相减计算得到区间内的出错字符个数。代码参考:https://github.com/wuli2496/OJ/blob/master/codeforces/D%20Good%20Substrings.java...原创 2021-11-21 14:39:34 · 314 阅读 · 0 评论 -
SPOJ Pattern Find(Rabin Karp)
使用Rabin-Karp算法。代码参考:OJ/spoj/Pattern Find at master · wuli2496/OJ · GitHub原创 2021-11-21 12:34:27 · 282 阅读 · 0 评论 -
HackerRank Gift Boxes(hash)
在当前计算的长度不小于g字符串长度时,需要比较c串对应长度的哈希值与g的哈希值,如果相同,则需要更新当前的计算哈希的下标。代码参考:OJ/hackerrank/Gift Boxes at master · wuli2496/OJ · GitHub原创 2021-11-20 23:16:42 · 2307 阅读 · 0 评论 -
codeforces C Deletion of Repeats(hash)
将相同的数放到一组,并记录其对应的下标。初始化时计算前缀哈希及对应的指数值。在遍历相同组时,计算相邻的字符串构成的子串是否相同,如果相等,计算子串对应的长度及起始下标。因为要求取重复串最短,将结果按照重复串长度排序。计算其保留位置的起始位置 。代码参考:OJ/C Deletion of Repeats(hash).java at master · wuli2496/OJ · GitHub...原创 2021-11-20 21:08:13 · 690 阅读 · 0 评论 -
codeforces D. Palindrome Degree(hash)
开始使用Palindromic Characteristics的方式来计算dp(i,j)的回文度,然后统计dp所有(0,j)提示空间超过限制。因为是需要计算所有前缀的回文度之和。由于回文度关系有dp(i) = 1+dp(i/2),如果s[0..i]是回文串。分别计算从0到i和从i到0的哈希值,如果两个哈希值相等,说明是回文串,就用上面的回文度关系。代码参考:https://github.com/wuli2496/OJ/blob/master/codeforces/D%20Palindrome%20D原创 2021-11-20 19:24:25 · 337 阅读 · 0 评论 -
spoj Test(hash)
根据三个字符串s1,s2,s3,看满足条件的字符串s的最小长度,包含s1,s2,s3。1、存在三个关系包含时,取字符串中长度最长的。对于只有两个字符串存在包含关系时,取字符串最长,与第三个字符串取合集,两个字符串的长度-两个字符串的公共长度2,不存在包含关系时,求三个字符串的排列,取排列中的最小值。三个字符串的长度计算为三个字符串的长度和-两对字符串的最长重叠长度代码参考:OJ/Test(hash).java at master · wuli2496/OJ · GitHub...原创 2021-11-20 15:32:05 · 312 阅读 · 0 评论 -
codeforces Palindromic characteristics(hash或者dp)
1、动态规划用dp(l,r)表示子串s[l..r]的回文串阶数。对于长度len为1的有dp(l,r)=1。对于长度len等于2的,看字符串左右是否相等即可。当r-l>1时,如果s[l]不等于s[r]或者dp(l+1,r-1)等于0时, dp(l,r)=0,其他则dp(l,r)=dp(l,m)+1,其中m=l+len/2 -1。代码参考:OJ/Palindromic characteristics(dp).java at master · wuli2496/OJ · GitHub...原创 2021-11-17 20:47:27 · 466 阅读 · 0 评论 -
codeforces round25
1、A Binary Protocol遍历字符串,如果是1,则累加,如果是0,输出当前的累加值代码参考:OJ/A Binary Protocol.java at master · wuli2496/OJ · GitHub原创 2021-11-13 20:25:31 · 385 阅读 · 0 评论 -
codeforces D Santa Claus and a Palindrome(hash+贪心)
思路:计算字符串的正反哈希值。如果字符串不是回文串,并且存在字符串的反串,将这两上串作为构成回文串的两边。如果字符串是回文串,一种是将其作为回文串的中间,另外一种是作为回文串的对称串来处理。具体代码参考:https://github.com/wuli2496/OJ/blob/master/codeforces/D%20Santa%20Claus%20and%20a%20Palindrome.java...原创 2021-11-08 22:52:49 · 213 阅读 · 0 评论 -
UVa11855 Buzzwords(hash)
思路:先求出指数值,后缀形式的散列值。然后枚举子串长度1-n,在计算某长度的子串的散列值,全部放入数组中,然后从小到大排序,看具有相同元素个数的最大值。如果大于1,则继续。注意:java中使用long来计算模取值,如果计算的模值小于0,则作转换将其变为大于0。具体代码参考:OJ/UVa/11855 Buzzwords at master · wuli2496/OJ · GitHub...原创 2021-11-02 22:22:50 · 263 阅读 · 0 评论 -
codeforces E. Games on a CD(双hash)
问题:n个长度为k的字符串组成的环形字符串S,以及g个长度为k的字符串,问是否可以组成此环形字符串。思路:因为是环形字符串,在处理字符串时,需要加上S的前k个字符。先计算所有的前缀散列值,以及对应的指数值。枚举第一串的开始位置,看构成的串是否存在于g个串中。如果都在,说明满足。使用单hash提交WA。具体代码参考:OJ/E - Games on a CD.cpp at master · wuli2496/OJ · GitHub...原创 2021-10-31 21:11:43 · 259 阅读 · 0 评论 -
UVa 12012 - Detection of Extraterrestrial(hash)
思路:基于后缀形式的哈希。枚举1-n长度来计算哈希是否相同,在计算时,同时更新拼接数对应的最长子串长度。具体代码参考:OJ/UVa/112012 Detection of Extraterrestrial at master · wuli2496/OJ · GitHub原创 2021-10-30 22:13:04 · 171 阅读 · 0 评论 -
codeforces 101466E Text Editor(hash)
思路:先求出文本串、模式串所有前缀的散列值,及指数值。通过二分查找遍历最大的前缀。具体代码参考:OJ/101466E Text Editor.cpp at master · wuli2496/OJ · GitHub原创 2021-10-30 14:21:52 · 235 阅读 · 0 评论 -
SPOJ Ada and Spring Cleaning(hash)
思路:先计算出前k个字符组成的子串的哈希值,再根据哈希值及递推关系具体代码参考:https://github.com/wuli2496/OJ/blob/master/spoj/Ada%20and%20Spring%20Cleaning/Ada%20and%20Spring%20Cleaning(hash).java原创 2021-10-24 10:34:32 · 1505 阅读 · 0 评论 -
codechef INSQ15_A(hash+二分)
思路:首先计算字符串s的所有子串s[i..n]的hash值,然后根据p分离的两个字符串的最长公共子串,使用二分查找。具体代码参考:https://github.com/wuli2496/OJ/blob/master/codechef/INSQ15_A/The%20Gift%20Of%20Raksha%20Bandhan.java...原创 2021-10-23 22:37:20 · 160 阅读 · 0 评论 -
SPOJ Substring Problem(Rabin Karp TLE)
给出一个文本串及n个模式串,检查对应的模式串是否在文本串中出现使用rabin karp算法超时代码见:OJ/Substring Problem.cpp at master · wuli2496/OJ · GitHub但是在spoj上评论上说有人用rabin karp算法通过。...原创 2021-10-23 13:35:45 · 193 阅读 · 0 评论