BackTrack ---装载问题
2010-04-18 11:06
176 查看
/*
* test.cpp
*
* Created on: 2010-4-17
* Author: Sarah
*/
#include <iostream>
using namespace std;
void back_track(int c[],int x[],int size,int i,int rest);
int bestw = 0;
int maxc = 152;
int cw = 0;
int bestx[8];
int main()
{
int c[8] = {0,90,80,40,30,20,12,10};
int x[8];
int rest = 0;
for (int m = 0; m < 8; m++)
{
x[m] = 0;
rest = rest + c[m];
bestx[m] = 0;
}
back_track(c,x,7,1,rest);
for (int n = 0; n < 8; n++)
{
if(bestx
== 1)
cout<<c
<<" ";
}
cout<<endl;
cout<<bestw<<endl;
return 0;
}
void back_track(int c[],int x[],int size,int i,int rest)
{
if(i > size)
{
// cout<<cw<<endl;
if(cw > bestw)
{
for (int n = 0; n <= size; n++)
{
bestx
= x
;
}
bestw = cw;
}
return;
}
else
{
rest = rest - c[i];
if((cw+c[i]) < maxc)
{
x[i] = 1;
cw = cw + c[i];
back_track(c,x,size,i+1,rest);
cw = cw - c[i];
}
if((cw+rest) > bestw )
{
x[i] = 0;
back_track(c,x,size,i+1,rest);
}
rest = rest + c[i];
}
}
* test.cpp
*
* Created on: 2010-4-17
* Author: Sarah
*/
#include <iostream>
using namespace std;
void back_track(int c[],int x[],int size,int i,int rest);
int bestw = 0;
int maxc = 152;
int cw = 0;
int bestx[8];
int main()
{
int c[8] = {0,90,80,40,30,20,12,10};
int x[8];
int rest = 0;
for (int m = 0; m < 8; m++)
{
x[m] = 0;
rest = rest + c[m];
bestx[m] = 0;
}
back_track(c,x,7,1,rest);
for (int n = 0; n < 8; n++)
{
if(bestx
== 1)
cout<<c
<<" ";
}
cout<<endl;
cout<<bestw<<endl;
return 0;
}
void back_track(int c[],int x[],int size,int i,int rest)
{
if(i > size)
{
// cout<<cw<<endl;
if(cw > bestw)
{
for (int n = 0; n <= size; n++)
{
bestx
= x
;
}
bestw = cw;
}
return;
}
else
{
rest = rest - c[i];
if((cw+c[i]) < maxc)
{
x[i] = 1;
cw = cw + c[i];
back_track(c,x,size,i+1,rest);
cw = cw - c[i];
}
if((cw+rest) > bestw )
{
x[i] = 0;
back_track(c,x,size,i+1,rest);
}
rest = rest + c[i];
}
}
相关文章推荐
- 回溯法:最大装载问题(使用递归,不做任何优化)
- 装载问题(动态规划背包问题)
- 装载问题
- 装载问题--回溯法
- 【回溯】装载问题
- 回溯法解决装载问题
- Dreamweaver中出现 "以下翻译器没有被装载,由于错误:xxxx.htm:有不正确的设置信息" 问题的解决方案(8,cs3,cs4似乎都会出现改问题)
- 分支限界---->装载问题
- 回溯法,回溯法解装载问题
- 装载问题(西农Oj) 解题报告
- 关于PC2007装载Linux9花屏问题解决
- 两只船的装载问题
- jni中关于dll的装载问题[转]
- 装载驱动遇到的问题【待解决】
- Linux动态链接库同名符号装载问题(二)
- 2船装载问题 贪心及回溯法
- 装载问题--队列式分支界限法
- 回溯法 -- 装载问题
- 搜索与回溯 6.装载问题
- Android中Fragment装载WebView 返回键设置问题