2012年1月24日
摘要: HNU_11704 这个和POJ的3332十分类似,都是判断一个字符串是否合法,具体怎么想可以参考一下我的另一篇题解,http://www.cnblogs.com/staginner/archive/2012/01/24/2329131.html,代码为了看起来思路清晰一些,所以写得就十分啰嗦了,很多地方是可以简化的。 由于单词很多,如果暴搜判断有无的话时间消耗比较大,不过这个题直接暴搜单词也是过得了的,比较快的方式就是用二分、哈希表、字典树。 此外这个题目好像给出的noun和verb的长度有的是超过6的,不过如果使用字典树记录的话基本是没有问题的,但用哈希表的话就要注意这个长度的问题了... 阅读全文
posted @ 2012-01-24 23:08 Staginner 阅读(312) 评论(0) 推荐(0) 编辑
摘要: HNU_10076 这个和POJ的3332十分类似,都是判断一个字符串是否合法,具体怎么想可以参考一下我的另一篇题解,http://www.cnblogs.com/staginner/archive/2012/01/24/2329131.html,代码为了看起来思路清晰一些,所以写得就十分啰嗦了,很多地方是可以简化的。#include<stdio.h>#include<string.h>#define MAXD 10010char noun[][10] = {"tom", "jerry", "goofy", & 阅读全文
posted @ 2012-01-24 13:52 Staginner 阅读(183) 评论(0) 推荐(0) 编辑
摘要: POJ_3332 以前问过gestapolur有限自动机是什么东东,只记得他和我说过它会在有限的状态之间自己转化,于是就按这个理解写了一下这个题,没想到写出来的程序和discuss里面所谓的DFA还真的很像,只不过它是把我的check()和pattern()两部分合成了一个来写的。 下面还是说说我对这个题目的思考吧。 一开始看到这个题目实际是想去暴力的,枚举所有的不合法情况,然后一一排除即可,但发现这样比较繁琐。后来对问题做了一个转化,想象成一个机器从左向右依次把字符吃进去,并根据实际情况转化模式,对于特定的模式下如果吃进去的是不符合要求的字符,就直接报错就好了。 转化成这样一个思路之... 阅读全文
posted @ 2012-01-24 11:34 Staginner 阅读(674) 评论(0) 推荐(0) 编辑