今天写dfs时发现到一个需要注意的问题
2010-09-16 20:34
309 查看
今天数据结构实验课,老师给了一道题,说100分能用多少个1分,2分,5分组成,列出所有可能
原本3个for就可以强搜索完, 最近由于搜索题做多了,上来直接想到用dfs做,后来写好了发现问题了
dfs用于储存数据的数组,大小至少要把所有数据都能存进去,这题大小为100+50+20,但是仔细想会发现,答案最多不过为100个,开始我就把数组设为100个,运行起来爆了,调试,发现数组越界,就发现这个原因了,
还有一个办法,在dfs再次操作时,判断len是否超了100,小于100继续,否则不继续,这样递归次数少了,这种方法更好,更快捷
以后要注意这个问题
代码
原本3个for就可以强搜索完, 最近由于搜索题做多了,上来直接想到用dfs做,后来写好了发现问题了
dfs用于储存数据的数组,大小至少要把所有数据都能存进去,这题大小为100+50+20,但是仔细想会发现,答案最多不过为100个,开始我就把数组设为100个,运行起来爆了,调试,发现数组越界,就发现这个原因了,
还有一个办法,在dfs再次操作时,判断len是否超了100,小于100继续,否则不继续,这样递归次数少了,这种方法更好,更快捷
以后要注意这个问题
代码
#include<iostream> using namespace std; int main() { int count = 0; for (int i = 0; i <= 20; i++) { for (int j = 0; j <= 50; j++) for (int k = 0; k <= 100; k++) { if (i*5 + j*2 + k*1 == 100) { printf("%d*5 + %d*2 + %d*1 = 100\n", i, j, k); count++; } } } cout << count; return 0; }
相关文章推荐
- VC和MATLAB混合开发需要注意的一个问题
- 升级到php7需要注意的一个问题
- 如果一个页面中用了两个以上displaytag,需要注意的分页问题
- GET方式传递表单数据需要注意的一个问题
- insert append需要注意的一个小问题
- 今天发现了css中的一个顺序问题
- SqlServer中使用Select语句给变量赋值的时候需要注意的一个问题
- 今天发现一个bug,不知道是什么问题,printf的问题吗,还是什么。先记下!
- 用gen_tcp创建本地服务器需要注意的一个问题
- PHP的foreach中使用引用时需要注意的一个问题和解决方法
- PHP的foreach中使用引用时需要注意的一个问题和解决方法
- nth-of-type在选择class的时候需要注意的一个小问题
- 通过View.post()获取View的宽高引发的两个问题:1post的Runnable何时被执行,2为何View需要layout两次;以及发现Android的一个小bug
- JS需要注意的一个问题
- VC和MATLAB混合开发需要注意的一个问题
- 使用string.Format需要注意的一个性能问题
- HttpServletResponse中获取PrintWriter需要注意的一个小问题
- 动态创建Table时,在IE中需要注意的一个问题
- HQL 发现一个小问题: 用foreign连的话 在 where里面既然id需要“Id”,而其他的 如username 只要“userName”!
- ssm框架开发今天偶然发现的要注意的问题