数据结构-Hash
文章平均质量分 81
KIJamesQi
这个作者很懒,什么都没留下…
展开
-
lightoj1423Olympic Swimming
思路:有k条长度为l的泳道,每天泳道上面有n[i]个障碍物,w诶了比赛的公平性,每个泳道里面只能有相同数目个障碍物,求最长的泳道。这样我们可以枚举泳道的右位置,计算出每个泳道中从0到这个位置的障碍物数目,求出最大与最小值。如果相等说明这个位置是目前长的泳道右端点。然后,因为要想等,如果要以这个位置为泳道的右端点,那么我们需要求一个想等的左端点。cnt[i] = A[i][j] - mi;这样的原创 2015-12-09 23:17:04 · 322 阅读 · 0 评论 -
lightoj1426 Blind Escape
思路:有一个r*c的grid,里面有两种字符,'#'表示墙,不可穿过,'.'表示free,可穿过,现在在这个里面有一个盲人,他可以向东南西北四个方向走,需要靠你给的指令走出来,如果不能走出来就是Impossible,不然的话输出最短且字典序最小的命令串。显然是搜索,当然不能走出来最好判断,每个点搜一遍就好了,最后判断下。问题就是可以走出来的时候怎么搜。首先是queue中的状态是啥,这里的话原创 2015-12-13 00:25:15 · 444 阅读 · 0 评论 -
hdu4821 string (字符串Hash)
参考了网上的代码;这题主要用的就是Rabin-Karp的hash算法原理;dp[i]表示i后面字符串的hash值,要算出S[i...i+m]的hash值的话就是:tmp = (dp[j] - dp[j+len]*nbase[len]);这题问的就是原串有多少个满足条件的substring;(i) It is of length M*L; (ii) It can be cons原创 2016-03-06 21:39:44 · 448 阅读 · 0 评论 -
hdu3974Assign the task(简单树hash,线段树区间更新,单点查询)
题目大意:给定一个上下级关系树,一开始都是没有做事的,然后给定x,y,就是指定x及其下属此时全部做事件y。最后就是查询x此时在做那件事情。思路:把子树上的点连续的hash到线段树上去,用线段树更新,hash的时候采用dfs后序遍历。/*****************************************Author :Crazy_AC(JamesQi)Time原创 2016-04-22 16:22:12 · 411 阅读 · 0 评论 -
Acdream1103 瑶瑶正式成为CEO(费用流+树剖)
题目链接 中文题意就略去。求1到u的最小费用可以用费用流来做,其他的就直接遍历一遍。那么铁路的a值的更改需要用树剖来维护, 并且每次查询前需要把线断树中的a值更新到tree,再重新构网络流的图跑费用流。先算出流量为0时的费用 sum=∑cisum = \sum c_i, 然后对于每单位流量,相当于其经过的边要少花c,当流量超过了a时就不能相当于少花了,所以这里需要拆边,分为流量小于等原创 2016-08-27 12:53:10 · 524 阅读 · 0 评论