多校
No__stop
这个作者很懒,什么都没留下…
展开
-
hdu 4622 Reincarnation(后缀数组)
hdu 4622 Reincarnation题意:还是比较容易理解,给出一个字符串,最长2000,q个询问,每次询问[l,r]区间内有多少个不同的字串。(为了与论文解释统一,这里解题思路里sa数组的值是从1到n,但其实代码中我的sa数组的值是从0到n)。解题思路:09年的后缀数组论文里有一个类似的题,求一个字串的不同字串有多少个。问不同的字串有多少个,即问对于每一个后缀,它的所有前缀中原创 2013-07-31 16:30:33 · 2449 阅读 · 4 评论 -
hdu 4638 Group
hdu 4638 Group题目大意:题面意思不解释了,转换成数学模型,就是问一段区间[l,r]有几段连续的数,比如[2,3,1,4,6,7]那么这段区间内有两段,分别是1,2,3,4和6,7。解题思路:由于询问次数有100000次,所以我们直接处理[l,r]显然不行。线段树在线似乎也是做不了的。可以想到的是,如果我们从左到右一个个加进来,那么对于加进来的第i个数num[i],那么它就能增原创 2013-08-02 14:32:47 · 1443 阅读 · 0 评论 -
HDU4601 Letter Tree
多校第一场,HDU4601 Letter Tree原创 2013-07-28 20:58:06 · 1128 阅读 · 0 评论 -
hdu 4661 Message Passing(树形dp)
题意:比较容易懂,就是n个人,构成树形关系。每个人有一条独一无二的信息,每个人可以将自己的信息通过树边,共享给与他相邻的人,共享之后,被共享的人拥有他原有的信息和共享的来的信息。每次共享为一次操作,问每个人都拥有所有人的信息最小要的次数的共享方法有多少种。解题思路:首先要明确的是,我们共享信息的策略是,将所有信息都共享给某一个人,再由这个人将所有信息反馈给其他人,这样共享信息的总操作次数是2*原创 2013-08-09 19:31:14 · 1555 阅读 · 0 评论 -
hdu 4679 Terrorist’s destroy (树形dp)
hdu 4679 Terrorist’s destroy4小时55分敲完代码,0调试,跑出样例直接交了,结果爆栈,扩栈交了一发,居然A了,我和我的小伙伴们都惊呆了。。。题意:给出有n个节点的一棵树,树上的边有权值。我们切断一条边,将整棵树分成两颗,计算一个值,这个值的计算方法,v = b * max ( d1 , d2 ) ;其中,b为所切的边的权值,d1 ,d2 为切断后形成的两颗树的树原创 2013-08-15 19:00:47 · 1117 阅读 · 0 评论 -
hdu 4630 No Pain No Game
hdu 4630 No Pain No Game题意:给出一个n和1到n的某个排列,询问q次,每次询问[l,r]区间内任意挑两个数,最大公约数的最大值是多少。解题思路:记录一个pre数组,pre[i]表示对于某个数i,已经出现过的它的倍数最近是在那个位置。将询问按右端点排序。用树状数组维护从某一位置到maxn的最佳答案。从1到n开始扫描num[i],sqrt(num[i])的复杂度去枚举它原创 2013-07-31 13:57:48 · 1409 阅读 · 0 评论 -
hdu 4929 Another Letter Tree(LCA+DP)
hdu 4929 Another Letter Tree(LCA+DP)题意:有一棵树n个节点(n解法:一个很直观的想法,求出lca(设其为w)后,枚举x,求出a到w的路径上,能匹配s0的x长度前缀的情况有多少种,令其为c[x]。再求出b到w的路径上能匹配s0的L-x(L表示s0的长度)长度后缀的情况有多少种,令其为d[l-x],那么将所有的c[x]*d[l-x](x属于[0,l]原创 2014-08-13 09:08:47 · 1153 阅读 · 0 评论 -
hdu 4917Permutation(状态压缩DP)
hdu 4917Permutation(状态压缩DP)题意:将1~n的n个数排列成序列(n解法:我们首先可以明确一点,这m个限制条件,所表示的关系会构成若干个DAG(有向无环图,我将其称之为拓扑图)。我们只要将这n个数,填入到拓扑图上,使其满足拓扑关系,那么这样的序列就是可以的。而这若干个拓扑图之间,是不会相互影响的,因而我们可以单独考虑每一个拓扑图。对于单独的一个拓扑图,原创 2014-08-13 09:09:49 · 1307 阅读 · 0 评论 -
hdu4921 Map(状压统计)
hdu4921 Map(状压统计)题意:有10条长度不超过1000链,链上的节点有权值。我们从这些节点中选出一些节点来,若要选节点u,则u的前继都得被选进去。对于某一种选定的情况,我们能获得的权值为,选定的节点的权值和,以及一些附加值。附加值的求法为,对于每条链的同一深度的点,若选定的点的个数超过1,那么会得到的附加值为(si*xi/ci),其中si表示该层选中的点的权值和,xi为该层选中原创 2014-08-13 09:10:46 · 792 阅读 · 0 评论