没有合适的资源?快使用搜索试试~ 我知道了~
俄罗斯套娃程序及设计
需积分: 33 1 下载量 50 浏览量
2010-06-09
20:56:38
上传
评论
收藏 22KB DOC 举报
温馨提示
试读
4页
1.递归函数遍历可达路径。 2.在递归函数调用时记录路经(保存在向量path_now中),并记录当前的套娃总重(score_now)。 3.走过的没有套娃的路口,将其值修改为HPZD(即0XFFFFFFFF),表明该路口已走过。 4.当递归函数返回时恢复path_now和score_now,并将当前函数所标记的HPZD(如果有)去除,即把该路口的值由HPZD改为0。 5.当一条路径走到死胡同时,比较score_now和score_best(此前的最大重量)。 如果score_now比score_best大,说明当前路径是目前为止最好的。把当前的路径替代之前最好的路径(path_best=path_now),并替换相应的套娃总重(score_best=score_now)。
资源详情
资源评论
资源推荐
布雷设计文档
一、开发环境:vc2005。
二、算法
1.递归函数遍历可达路径。
2.在递归函数调用时记 录路经( 保存在向 量 path_now 中),并记录当前 的套娃总 重
(score_now)。
3.走过的没有套娃的路口,将其值修改为 HPZD(即 0XFFFFFFFF),表明该路口已走过。
4.当递归函数返回时恢复 path_now 和 score_now,并将当前函数所标记的 HPZD(如果有)
去除,即把该路口的值由 HPZD 改为 0。
5.当一条路径走到死胡同时,比较 score_now 和 score_best(此前的最大重量)。
如果 score_now 比 score_best 大,说明当前路径是目前为止最好的。把当前的路径替代之前
最好的路径(path_best=path_now),并替换相应的套娃总重( score_best=score_now)。
三、
优点:能找出最优解,在没有出现大片 0 时,运行速度很快。
缺点:本程序采用遍历可达路径的方法,当出现较多 0 集中在一块区域时,
程序运行效率比 较低,导致运行时间长,有待进一步完善。
改善方法:当出现大片 0 区域时,通过标记过 0 点后走过的路径,存储过 0 点最优路径,
让以后路径经过此片 0 区域时,直接用以上存储的 0 区域后最优路径,即节约了路径数,
从而减少程序负担,搜索速度加快。
四、源程序
1、Ctw.h 文件
#pragma once
#include <iostream>
#include <fstream>
#include <conio.h>
#include <vector>
#include <iomanip>
#include <cstdlib>
using namespace std;
#define uint unsigned int
#define HPZD 0XFFFFFFFF
class Ctw
{
public:
Ctw(void);
~Ctw(void);
void run(uint x=0,uint y=0);
void display();
uint get_data(uint x,uint y){return pdata[width*y+x];};
private:
uint width;
uint height;
lenxueren
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0