逆向思维

来源:互联网 发布:大数据飞轮效应 编辑:程序博客网 时间:2024/05/06 15:56

 USACO 的一道题目:NAME THAT NUMBER(http://ace.delos.com/usacoprob2?a=76VLh6Cyf3Z&S=namenum)是一道可以通过简单的搜索解决的问题。但是通过这道题,可以看到逆向思维的“神奇功效”

 

这题有两个思维的方向:

1、把数字转化成字符串,这样的字符串可能有很多个。然后对每个字符串,在名字表中查找(利用二分查找)。这种方法面临两个问题:1)必须用一个大容量的(约5000)string类型的数组存放名字表。2)必须把唯一的输入数字转化成不唯一的字符串(这个过程还需要DFS一下)。效率很低

2、把每个出现在名字表中的字符串转化成数字,再和输入的数字进行比较。因为每个字符串只能转化成唯一的数字串。所以不需要DFS,利用map可以简单高效的完成。名字表也不要存储了,只要一遍扫描即可。效率很好,实现方便

 

因此,可以看到,方法二把字符串转化成数字和输入数字对照,它比方法一把数字转化成字符再逐个到名字表中扫描简单的多。虽然道理是一样的,但是不同的思考方向,带来的效果有很大的差异。

原创粉丝点击