摘要:简单的题目,我的解法采用预处理,然后使用折半查找返回答案。 #includedouble answer[300];int len=0;double num;int binarySearch(){ int l=1,r=len,half; while(l=5.20) ...
阅读全文
摘要:起始的时候是按照上下左右进行搜索的,然后不幸栈溢出。参考别人的实现才发现,原来迷宫还可以以索引为深度进行搜索。更改之后果断AC。由于搜索的时候是自左而右、自上而下的放置的,所以判断是否可以放置时,只需要判断左上的部分即可。 #include char maze[6][6];int num,resu...
阅读全文
摘要:题目比一般的图类的题目稍微绕了点弯子。要根据问题建立解题所需要的图。起始点@和终止点using namespace std;#includeint width,height,jewelsNum;struct Point{ int col,row,value;};struct Map{ ...
阅读全文
摘要:题目倒是简单,只不过要记录走过的路径和输出时候的特别格式让人很纠结。我使用指针记录父节点的数据,当找到解答的时候就根据指针反向遍历整个路径,并将路径上得节点压入栈中。在输出位置依据格式出栈输出即可。 #include #include using namespace std;#include#in...
阅读全文
摘要:简单的深度优先搜索,但是需要注意尾节点与首节点之和同样必须为素数。 View Code 1 #include 2 #include 3 #include 4 5 int num; 6 int result[21]; 7 bool visited[21]; 8 bool pr...
阅读全文
摘要:题目不具有单调性,所以求导可以忽略。考虑参数在有限的可选值之中,所以可以选择了深度优先。确定搜索变量为5个参数,然后进行深度优先搜索,并在深度为5时终止搜索,判断状态。 View Code 1 #include 2 #include 3 using namespace std;...
阅读全文
摘要:用了五天左右做了一下八数码的问题,所谓的八重境界也就是实现了四种而已,但是心里已经感觉实在坐不下去了,就这样总结一下吧。八数码问题使用了两点辅助工具。第一是曼哈顿距离,用来作为A*的h函数以及IDA*的剪枝。第二是康拓展开,用来标识已经遍历过的状态。第三是逆序数,作为问题的剪枝。参考代码中的运行时...
阅读全文
摘要:用二分图的最大匹配来求解题目,关于其思想详见:http://blog.csdn.net/xinhanggebuguake/article/details/6668071 关于增广了路径的查找很多时候很纠结为什么这样实现。仔细分析不难发现,link本身就是存储了已有的增广路径,在①处的操作刚好就是取...
阅读全文
摘要:先上贴老掉牙深度优先版本的,算是第一次使用搜索,伤透了哥的❤。其实刚开始一直尝试在用广度优先做,一直WA。后来认真思考一下将状态同数据一起存储,怎奈仍然无法通过。期待与有广度优先的筒子一起探讨,持续努力中…… View Code 1 //#include 2 #...
阅读全文
摘要:原来科学计数法可以直接使用的,料想不到。折半查找,加上数学求导,很容易搞定。 View Code 1 #include 2 #include 3 4 double derivative(double x){ 5 return 42.0*pow(x...
阅读全文