![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
回溯法
文章平均质量分 73
庞老板
思考时啃啃手指头会更有灵感
展开
-
NYOJ 58 最少步数
最少步数时间限制:3000 ms | 内存限制:65535 KB难度:4描述这有一个迷宫,有0~8行和0~8列: 1,1,1,1,1,1,1,1,1 1,0,0,1,0,0,1,0,1 1,0,0,1,1,0,0,0,1 1,0,1,0,1,1,0,1,1 1,0,0,0,0,1,0,0,1 1,1,0,1,0,1,0,0,1原创 2012-07-08 20:17:38 · 3044 阅读 · 0 评论 -
回溯法+奇偶剪枝——Hdu 1010 Tempter of the Bone
1) 题目Tempter of the BoneTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 47967 Accepted Submission(s): 12905Problem Descriptio原创 2013-04-23 14:14:07 · 1916 阅读 · 6 评论 -
第5章 回溯法,n皇后问题
#include #include using namespace std;#define MAXN 10int n; //皇后数,棋盘大小int q[MAXN]; //放置的皇后的位置,q[i]表示:第i个皇后的位置在第i行,第q[i]列int count; //可行方案数bool IsPlaceable(int x, int y){ int i; for (i原创 2013-04-23 16:54:22 · 1211 阅读 · 0 评论 -
第5章 回溯法,0-1背包问题
#include #include #include using namespace std;#define MAXN 10struct Goods_Info{ int v; //价值 int w; //重量 double vw; //价值重量比}goods[MAXN];int n;int maxValue;bool solu[MAXN];bool opti原创 2013-04-24 13:05:40 · 2005 阅读 · 0 评论 -
第5章 回溯法,装载问题
#include #include #include using namespace std;#define MAX 100int c1, c2; //两船的载重量int n; //货物数量int w[MAX]; //货物重量int maxw; //最大装载量bool finished; //已达到装载最大量时,finished为truevoid Backtr原创 2013-04-14 19:22:03 · 2029 阅读 · 0 评论 -
第5章 回溯法,批处理作业调度
#include #include using namespace std;#define MAX(a, b) ((a) > (b) ? (a) : (b))#define MAXSIZE 10#define INF 999999999struct Job_Info{ int t1, t2;}job[MAXSIZE];int n; //作业数量int solu原创 2013-04-16 14:32:30 · 1343 阅读 · 0 评论 -
第5章 回溯法,符号三角形问题
#include #include using namespace std;#define MAXSIZE 21int n; //第一行符号个数int signTriangle[MAXSIZE][MAXSIZE]; //符号三角形矩阵,矩阵最左侧一列不用int count; //满足条件的符号三角形个数int half; //符号总数的一半原创 2013-04-16 16:09:38 · 1947 阅读 · 0 评论 -
搜索——Hdu_1016_Prime Ring Problem
2012/7/24 16:17Prime Ring ProblemTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 13393 Accepted Submission(s): 6064Problem原创 2012-07-24 16:51:47 · 1041 阅读 · 0 评论 -
搜索——Ny 90 整数划分
1) 题目整数划分时间限制:3000 ms | 内存限制:65535 KB难度:3描述将正整数n表示成一系列正整数之和:n=n1+n2+…+nk, 其中n1≥n2≥…≥nk≥1,k≥1。 正整数n的这种表示称为正整数n的划分。求正整数n的不 同划分个数。 例如正整数6有如下11种不同的划分: 6; 5+1; 4+2,4+1+1; 3+3,原创 2013-04-21 18:29:56 · 1486 阅读 · 0 评论 -
回溯法——Ural 1073 Square Country
1073. Square CountryTime Limit: 1.0 secondMemory Limit: 16 MBThere live square people in a square country. Everything in this country is square also. Thus, the Square Parliament has pass原创 2013-03-24 11:27:01 · 1497 阅读 · 0 评论 -
搜索算法的感悟——解空间
练习了将近一个月的搜索算法了,也有了一些小小的感悟。搜索算法的两个关键问题:(1):如何找到整个解空间。(2):如何剪枝。我的感悟是关于解空间的。问题的解往往需要经过一系列操作之后才能得到,而在这一系列的操作中,每一步的操作都会得到一个状态,当最终这个状态与目标状态相同时,此时也就是得到了结果,所以在搜索的过程中,着重需要处理的就是操作和状态。只有考虑了所有可能的操作,才会得到所有原创 2012-07-30 19:49:36 · 6502 阅读 · 1 评论 -
BFS——NYOJ 21 三个水杯
三个水杯时间限制:1000 ms | 内存限制:65535 KB难度:4描述给出三个水杯,大小不一,并且只有最大的水杯的水是装满的,其余两个为空杯子。三个水杯之间相互倒水,并且水杯没有标识,只能根据给出的水杯体积来计算。现在要求你写出一个程序,使其输出使初始状态到达目标状态的最少次数。输入第一行一个整数N(0接下来每组测试数据有两行,第一行给出三原创 2012-07-30 17:32:23 · 6918 阅读 · 5 评论 -
BFS——最小步数 续
上一次用的DFS,这次BFS,直接在地图上扩展结点,如下图所示:橙黄色代表起点,浅蓝色终点。#include #include using namespace std;#define ACCESS 0struct position{ int x, y;}start, end;const int direction[4][2] = {-1原创 2012-07-25 13:36:59 · 630 阅读 · 0 评论 -
N皇后
在N*N格的棋盘上放置N个皇后,任何两个皇后不放在同一行或同一列或同一斜线上。需要注意的是,如图中上面两个矩阵中大于0的那些数据,它们表示此处有几个皇后可以攻击到,如果移走一个皇后,那么她的攻击范围内的危险值减一。#include #define QUEEN -1#define SAFETY 0#define MOVEDANGER -原创 2012-07-08 20:06:21 · 974 阅读 · 0 评论 -
迷宫中回溯法的剪枝——奇偶剪枝
问题描述在一个n行m列的迷宫中,每一步只能向上、下、左、右中任意方向走一格,迷宫中有围墙的地方是无法到达的。从起点s开始,能否刚好走t步,到达e。例如在下面5行5列的迷宫中,能否恰好经过9步,从s走到e。初始位置在s上,#是围墙。奇偶剪枝设起点s的坐标为(sx,sy),终点e的坐标为(ex,ey);对s的一次操作为对sx或sy进行+1或-1;若经过t次操作后原创 2013-04-23 13:46:58 · 5108 阅读 · 0 评论