随笔分类 -  搜索

摘要:题目:每次每一位上只能该位变一个数字,并且组成一个新的素数,问最少能用多少次变成第二个给出的素数分析:既然归类到了BFS,可以用BFS来做,可先生成一个素数判断表,加快判断,然后枚举每一位上的数,给以往的BFS一样,只不过每次要计算0到9而已(注意:千位上不能为0,个位上是偶数的话就不用考虑了)#include <iostream>#include <cstring>#include <queue>using namespace std;int m,n,ans;int a[6];bool isprime[10000],use[10000];void make 阅读全文
posted @ 2012-02-29 22:21 yejinru 阅读(137) 评论(0) 推荐(0)
摘要:题目:求第几个只拥有素数因素为2,3,5的数,包括1在内分析:因为只要求求到第1500个,可以用打表的方法来做,把前1500个数全部求出来,因为每一个ugly数都可以用某个以前的数来进行因素分解,所以不停地搜索当2,3,5乘以某个数恰好大于当前最大的ugly,这个数即为最新的ugly数,具体请看代码:#include <iostream>using namespace std;#define X 1505int ugly[X];//记录前1500个ugly数int tot;void solve()//搜索函数{ int tot = 0;int p2 =1, p3 = 1,p5 =1 阅读全文
posted @ 2012-02-29 22:16 yejinru 阅读(159) 评论(0) 推荐(0)
摘要:题目;如何只用两个容器装到c的水量分析:BFS题,只不过要记录路径,参考算法导论上的BFS算法(我是参考别人的程序的,又学到了新东西)。在这里简单总结一下:见代码中的文字#include <iostream>#include <queue>#include <cstring> using namespace std;#define X 105int a,b,c;bool use[X][X];///////此结构体为记录ab的水量以及总走过的次数typedef struct{int a; //a的水量int b; //b的水量int step;//总次数}No 阅读全文
posted @ 2012-02-29 22:15 yejinru 阅读(195) 评论(0) 推荐(0)