zoj 3611同类型的题目poj 2688化简模型即可得这样的问题,一幅图给定起点 终点 ,求起点到终点最多经过几个点,如果两种方案经过的点数相同,选路径总长短的注意,这幅图最多只有12个点,所以立刻可以想到用状态压缩来做dp[i][j]表示以i为终点的路径 为j状态(经过了那些点)时的最短路径ps:在预处理最短路的时候不要将'$'算进去,就看成一个普通的可以走的格子就可以了因为可能会出现如下情况,'$'的费用会算了四次,所以还是先数一下有几个'$'然后再独立算吧View Code #include<cstdio>#include& Read More
转自:http://bbs.dlut.edu.cn/bbstcon.php?board=Competition&gid=23474 其实原文说得是比较清楚的,只是英文的,我这里写一份中文的吧。 首先:大家都知道什么叫回文串吧,这个算法要解决的就是一个字符串中最长的回文子串有多长。这个算法可以在O(n)的时间复杂度内既线性时间复杂度的情况下,求出以每个字符为中心的最长回文有多长, 这个算法有一个很巧妙的地方,它把奇数的回文串和偶数的回文串统一起来考虑了。这一点一直是在做回文串问题中时比较烦的地方。这个算法还有一个很好的地方就是充分利用了字符匹配的特殊性,避免了大量不必要的重复匹配。 算法 Read More
吐槽一下,还是太弱了,这个被认为伸展树水题的题本菜搞了好久。。。给你n个数每次将第i个位置到第i大的数所在位置 之间的数进行翻转,输出的是第i大的数所在的位置伸展树的节点不需要记录任何东西,直接按照各个数在数组中的顺序建树即可(即建好伸展树后中序遍历的结果就是原数组的数)所以伸展树的节点编号的相对大小代表的是这个数在数组中的下标,这点一定要搞清楚然后建树的时候顺便记录下第i大的数所在的节点编号是什么。最后每次将第i大的数旋转到根,然后 左子树的大小 就是在数组中相对位置在这个数的左边的数的个数 因为每次将第i大的数翻转到第i个位置时,这个数就不会用到了,所以每次统计好后就直接把根节点给删了(删 Read More
raiting掉了。。。为什么除了B题其他题都这么长。。。。。还有万恶的C题,暴力枚举的时候我竟然从9开始枚举。。。。哎。C题是模拟题,我写的很烦,到了最后时刻才交,可惜啊,百密一疏。。。最近CF阅读量好大啊。。。。CView Code #include<cstdio>#include<cstring>#include<set>#include<string>#include<iostream>#include<cmath>#include<vector>#include<map>#include& Read More