冬日飘雪
0/1背包——非递归解法
#include
"
iostream
"
using
namespace
std;
#define
N 7
#define
W 15
int
weight[N
+
1
]
=
{
9
,
1
,
4
,
3
,
4
,
5
,
7
,
8
}
;
int
flag[N
+
1
]
=
{
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
}
;
int
knap()
{
int
i
=
0
;
int
m
=
0
;
while
(
1
)
{
if
(m
<
W
&&
i
<=
N)
{
m
+=
weight[i];
flag[i]
=
1
;
}
else
{
i
--
;
while
(flag[i]
==
0
&&
i
>=
0
)
{
i
--
;
}
if
(i
<
0
)
{
cout
<<
"
Not found
"
<<
endl;
return
0
;
}
m
-=
weight[i];
flag[i]
=
0
;
}
if
(m
==
W)
{
for
(
int
k
=
0
; k
<=
N; k
++
)
{
if
(flag[k]
==
1
)
{
cout
<<
weight[k]
<<
"
"
;
}
}
return
1
;
}
i
++
;
}
}
void
main()
{
knap();
getchar();
}
posted on 2010-05-15 21:43
Bomb
阅读(201)
评论(0)
编辑
收藏
引用
所属分类:
C++
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
MFC非模态对话框的销毁(转)
二叉树
0/1背包——非递归解法
网站导航:
博客园
IT新闻
BlogJava
博问
Chat2DB
管理
My Links
C++博客
首页
新随笔
联系
聚合
管理
Blog Stats
随笔 - 9
文章 - 0
评论 - 0
Trackbacks - 0
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
给我留言
查看公开留言
查看私人留言
随笔分类
C++(3)
(rss)
DataBase(3)
(rss)
MultiThread(1)
(rss)
随笔档案
2010年8月 (5)
2010年5月 (3)
2010年4月 (1)
搜索
最新评论
阅读排行榜
1. MFC非模态对话框的销毁(转)(535)
2. ADO智能指针(转)(508)
3. SQL Server字符集的研究(转)(430)
4. 如何利用UDL文件来建立ADO连接(转)(405)
5. 跳动的字符_多线程(263)
评论排行榜
1. 跳动的字符_多线程(0)
2. 浅析C++中的this指针(0)
3. 明确C++风格的类型转换的用法(0)
4. 0/1背包——非递归解法(0)
5. SQL Server字符集的研究(转)(0)
Powered by:
C++博客
Copyright © Bomb