提交几次都没过,冒泡排序一直在改。然后干脆用STL的sort,方便简洁,一换代码就过了!冒泡排序竟然都写错了!不过涉及两个数组确实挺麻烦的。改后的代码用了全局变量,不符合软件工程的思想。但是刷sicily就先不顾忌这些了。贴代码(错误的排序代码在注释里,有空再看):#include <iostream> #include <algorithm> using namespac
题目是和1150一样的,但是把深度最大为N的条件去掉了。所以搜索空间大了很多。但是时间限制和内存限制又没增大,所以如果按照1150的方法去写,肯定会超时的。所以,剪枝是必要的。 可以判断,其实如果按照之前的代码,会出现很多重复判断的情况,如AA是和空操作是一样的结果,所以,怎么减少这些重复的判断就是我们剪枝要做的事情。  
水题一条,但可以通过此题学习宽搜或深搜,然后通过和1151的比较,学习搜索中剪枝的作用。 宽搜中可以在递归的一开始就先检测是否搜到目标值(如下面贴上来的代码),也可以在将候选节点入队时检查。但如果是在入队时检查的话记得要注意在初始节点入队时检查初始节点是否就已经是目标值。 一开始犯的错误就是红色字体标出的错误。因此自己
这道题不用结构体或类的话做起来挺累的。而且做完这道题才发现我C和C++很多语法和函数都忘了。像sort(p, p+cnt)这样的排序函数都不会用了,差点就自己写冒泡排序了。而符号重写就完全忘了,毕竟很少有语言会有这种功能开放了。 其中新写的代码用了师兄的结构体和比较符号“<”的重写。 先贴以前写的代码:#incl
这么简单的题都出错了。因为忘了把检查过的结果给清除了,所以可能导致重复计算。 比如AT,TA,AT这样的输入,应该只能组成一组,如果组完后没有丢弃AT,TA,就会导致检查完AT后继续检查TA,然后将已经使用过的TA去和AT做匹配! 先贴下错误代码:#include <iostream> using name
就是简单的字符串比较和排序。 一开始看到之前写的代码是用了map,觉得没必要用map,只需要pair就可以了。等做完才发现原来输出要求是要按id的字典序排序的,而map在插入的过程中就自动排序了。所以最后还是用了map,省得自己写排序^_^。 先贴下之前的代码,应该是不熟悉string(可能是混淆了C和C++的str
利用栈可以巧妙的解决该问题。 之所以可以用栈可以解决,关键在于想通就算是第1个和第N个是配对,一直删除配对下去,也是会在队列的中间就有个配对的,所以栈的使用并不会和排队排成圈这一特性有冲突。应该想通即使出现第1个和第N个配对这样的特例,也是可以从中间向两边散开消除,到最后栈还是会出现空的情况。 一开始忘了STL里面有栈
http://blog.163.com/hong_feiy/blog/static/207325071201282324736756/回想小学怎么做除法可以帮助理解大数求模 #include <iostream> #include <string> using namespace std; int div(string x, int b) { int r, k;
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号