曾写过迭代加深搜索的方法,现在使用在AC自动上跑最短路的方法 dp[i][j]表示状态为到节点i,模式串是否包含的状态为j的最短串的长度,则状态转移方程为: dp[nx][ny] = min(dp[x][y] + 1) , 其中nx为x后继结点,ny为从y转移过来的新状态,更新时加入队列 ...
分类:
其他好文 时间:
2016-08-28 20:45:26
阅读次数:
137
一、题目背景 http://codevs.cn/problem/1288/ 给出一个真分数,求用最少的1/a形式的分数表示出这个真分数,在数量相同的情况下保证最小的分数最大,且每个分数不同。 如 19/45=1/3 + 1/12 + 1/180 二、迭代加深搜索 迭代加深搜索可以看做带深度限制的DF ...
分类:
编程语言 时间:
2016-08-08 19:28:05
阅读次数:
212
DNA sequence Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1914 Accepted Submission(s): 946 Pr ...
分类:
其他好文 时间:
2016-07-19 15:34:02
阅读次数:
268
DNA sequence Font: Times New Roman | Verdana | Georgia Font Size: ← → Problem Description The twenty-first century is a biology-technology developing ...
分类:
其他好文 时间:
2016-07-16 00:15:47
阅读次数:
204
codevs 2541 幂运算 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond codevs 2541 幂运算 codevs 2541 幂运算 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 时间限制: 1 s 空间限制 ...
分类:
其他好文 时间:
2016-06-10 19:05:26
阅读次数:
185
总的来讲,这是一道很⑨的题,因为: (1)题目中有⑨个挂钟 (2)有⑨种操作方案 (3)这题因为解空间太小所以可以直接⑨重循环!! 这题可以用迭代加深搜索高效求解,剪枝的策略也很显然: >所求的操作序列一定是单调不递减的 >同一操作不可能在解中出现4次及以上(操作4次等于没有操作) 代码: 1 #i ...
分类:
其他好文 时间:
2016-04-10 12:55:38
阅读次数:
203
Water pipe
Time Limit: 3000MS Memory Limit: 65536K
Total Submissions: 2265 Accepted: 602
Description
The Eastowner city is perpetually haunted with water supply shortages, so in order to...
分类:
其他好文 时间:
2016-04-07 16:00:36
阅读次数:
434
解题思路: 这是一道以快速幂计算为原理的题,实际上也属于求最短路径的题目类型。那么我们可以以当前求出的幂的集合为状态,采用IDA*方法即可求解。问题的关键在于如何剪枝效率更高。笔者采用的剪枝方法是: 1)如果当前状态幂集合中的最大元素max满足 max*2^(maxd-cur_d)<n,则剪枝。原因 ...
分类:
其他好文 时间:
2016-04-01 21:57:04
阅读次数:
157
解题思路: 这是紫书上的一道题,一开始笔者按照书上的思路采用状态空间搜索,想了很多办法优化可是仍然超时,时间消耗大的原因是主要是: 1)状态转移代价很大,一次需要向八个方向寻找; 2)哈希表更新频繁; 3)采用广度优先搜索结点数越来越多,耗时过大; 经过简单计算,最长大概10次左右的变换就能出解,于 ...
分类:
其他好文 时间:
2016-04-01 06:28:18
阅读次数:
198