正确地做事与做正确的事同样重要
来源:互联网 发布:英雄杀刷级淘宝链接 编辑:程序博客网 时间:2024/05/16 18:29
// BackPack.cpp : Defines the entry point for the console application.
//背包问题处理头文件
//背包问题的算法
/*
作者:成晓旭
时间:2001年10月12日(18:02:38-18:12:00)
内容:完成背包问题的程序
时间:2001年10月9日(14:00:00-15:00:00)
内容:完成“皇后”问题的程序序言部分
===================================================
问题描述:
在一个n*n的棋盘上放置n个不能互相捕捉的国际象棋“皇后”,
并输出所有合理的布局情况.(在国际象棋中,皇后可以沿着纵、横
及两条斜线共4个方向捕捉对手,可见,合适的解是在每行、每列及
在一条斜线上只能有一个皇后<皇后相互捕捉>)
编程思想:
算法描述:
try(i,tw,tv)
i: 物品编号
tw: 当前选择已达到的物品总重量和
tv: 本方案可能达到的物品总价值
{
//考虑物品i包含在当前方案中的可能性
if(包含物品i是可接受的)
{
将物品i包含在当前方案中(设置物品i为包含状态);
if(i
else
//又一个完整方案,因为它比前面的方案好,以它作为最佳方案
以当前方案为最佳方案保存
恢复物品i不包含状态;
}
//考虑物品i不包含在当前方案中的可能性
if(不包含物品i仅是可考虑的)
{
if(i
else
//又一个完整方案,因为它比前面的方案好,以它作为最佳方案
以当前方案为最佳方案保存
}
}
*/
#define N 100
int limitW, //限制的总重量
totalV, //全部物品的总价值
maxV; //所选方案的最大总价值
int option[N], //解的选择标志
curoption[N]; //当前解的选择标志
struct Goods //物品数据结构
{
int weight;
int value;
};
Goods array[N];
int n; //物品种数
// 参数定义
// i: 物品编号
// tw: 当前选择已达到的物品总重量和
// tv: 本方案可能达到的物品总价值
void Find(int i,int tw,int tv)
{
int k;
//考虑物品i包含在当前方案中的可能性
if(tw+array[i].weight <= limitW)
{//包含物品i是可接受的
curoption[i] = 1; //将物品i包含在当前方案中(设置物品i为包含状态);
if(i
else
{//又一个完整方案,因为它比前面的方案好,以它作为最佳方案
for(k=0;k
maxV = tv;
}
curoption[i] = 0; //恢复物品i不包含状态
}
//考虑物品i不包含在当前方案中的可能性
if(tv-array[i].value > maxV)
{
if(i
else
{//又一个完整方案,因为它比前面的方案好,以它作为最佳方案
for(k=0;k
maxV = tv-array[i].value;
}
}
}
void BackPack_Problem()
{
int k,w,v;
printf("输入物品种数/n");
scanf("%d",&n);
printf("输入各物品的重量及价值/n");
for(totalV = 0,k=0;k
scanf("%d%d",&w,&v);
array[k].weight = w;
array[k].value = v;
totalV += v;
}
printf("输入限制的重量/n");
scanf("%d",&limitW);
maxV = 0;
for(k=0;k
Find(0,0,totalV);
for(k=0;k
printf("%4d",k+1);
printf("总价值 = %d/n",maxV);
printf("/n/n应用程序正在运行....../n");
}
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=935647
- 正确地做事与做正确的事同样重要
- 正确地做事与做正确的事同样重要
- 正确地做事与做正确的事同样重要
- 正确地做事与做正确的事同样重要
- 正确地做事与做正确的事同样重要
- 正确地做事与做正确的事同样重要
- 正确地做事与做正确的事同样重要
- 正确地做事与做正确的事同样重要
- 正确地做事与做正确的事同样重要
- 正确地做事与做正确的事同样重要
- 正确地做事与做正确的事同样重要
- 【转】正确地做事与做正确的事同样重要
- 正确地做事与做正确的事同样重要
- 正确地做事与做正确的事同样重要
- 正确地做事与做正确的事同样重要
- 正确地做事与做正确的事同样重要
- 正确地做事与做正确的事同样重要
- 正确地做事与做正确的事同样重要
- 8种人将被淘汰
- “马的遍历”问题的贪婪法解决算法
- 让博客成为一种习惯
- Delphi ListView快速操作通用实现
- 背包问题的算法
- 正确地做事与做正确的事同样重要
- 查找算法集:顺序查找、二分查找、插值查找、动态查找(数组实现、链表实现)
- “装箱”问题的贪婪法解决算法
- EasyDBO快速上手(1)
- 求自然数的组合数的回溯算法
- “大整数阶乖”问题的递推算法
- 质数填表问题的回溯算法
- “马的遍历”问题的贪婪法解决算法
- 排序算法集:冒泡、插入、希尔、快速(数组实现、链表实现)