![]() |
|
|
SGOI14之《图书检索》解题报告
|
||||
[摘要] [题意简述] 给定一个由若干长为N(N≤10)的01串构成的集合S,易知M=|S|≤1024 。定义: ①查询器q 是一个长为N且由"_","0","1"组成的字符串; ②查询器q的输出集 ③合法查询器 ④关键查询器 任务一:求所有的合法查询器; 任务二:求所有的关键查询器。 [算法分析] ![]() 首先求解任务一,根据题意叙述,我们很容易可以想到枚举算法:①构造所有的查询器;②分别除去G中不满足合法查询器某一个条件的查询器即可得到解。 第①步是非常容易的,查询器的每一位都有3种选择,根据乘法原理,一共可以产生出
易知 ![]() 可以得出,若有合法查询器 接着求解任务二,现在我们已经得到所有合法查询器的集合G了,因此任务二也就显得十分简单了,G 中的每一个查询器q ,并将q 的输出集中每一个01串标号;最后扫描 S中每一个01串,若该串仅被一个查询器标号,那么这个查询器就是关键查询器。下面计算一下求解任务二的时间复杂度:G 中最多有 最后,在编程实现时,我们可以利用编码技术,提高程序效率,并使程序更加简洁。 [总结] 本题算法比较简单,只要理清思路,编程细心,即可做对。 |
||||
| 网站导航
| 关于曙光 | 联系我们
| 请提意见 Copyright © FuJian Sunshine Educational Info. Co.,Ltd. 福建曙光教育资讯有限公司 版权所有 |