91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 3KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-27
  • 語言: 其他
  • 標簽:

資源簡介

子集和問題 Description 子集和問題的一個實例為〈S,t〉。其中,S={x1,x2,...,xn}是一個正整數的集合,c 是一個正整數。子集和問題判定是否存在S的一個子集S1,使得x∈S1,∑x=c. 試設計一個解子集和問題的回溯法。 ?編程任務: 對于給定的正整數的集合S={x1,x2,...,xn}和正整數c,編程計算S 的一個子集 S1,使得x∈S1,∑x=c. Input 由文件input.txt 提供輸入數據。文件第1 行有2 個正整數n 和c,n 表示S 的大小,c 是子集和的目標值。接下來的1 行中,有n 個正整數,表示集合S 中的元素。 Output 程序運行結束時,將子集和問題的解輸出到文件output.txt中。 當問題無解時,輸出“No Solution!”。 Sample Input 5 10 2 2 6 5 4 Sample Output 2 2 6

資源截圖

代碼片段和文件信息

#include?
#include?
using?namespace?std;
ifstream?cin(“1.in“);
ofstream?cout(“1.out“);
int?nccwrbestw;
vector??x;
vector??w;
vector??bestx;

bool?backtrack(int?i)
{
if?(i?>?n?-?1)
{
if?(cw?>?bestw)
{
for(int?j?=?0;?j? bestx[j]?=?x[j];
bestw?=?cw;

if?(bestw?==?c)?return?true;
else
return?false;
}
}

r?-=?w[i];
if?(cw?+?w[i]?<=?c)
{
x[i]?=?1;
cw?+=?w[i];
if?(backtrack(i+1))
return?true;
cw?-=?w[i];
}

if?(cw?+?r?>?bestw)
{
x[i]?=?0;
if?(backtrack(i+1))
return?true;
}

r?+=?w[i];
return?false;
}

int?main()
{
int?i;
cin?>>?n?>>?c;
x.resize(n);
w.resize(n);
bestx.resize(n);
cw?=?0;
bestw?=?0;
r?=?0;
for(i?=?0;?i? {
cin?>>?w[i];
r?+=?w[i];
x[i]?=?0;
bestx[i]?=?0;
}

if?(backtrack(0))
{
for(i?=?0;?i? if?(bestx[i]?==?1)
cout?< }
else
cout?< cout?< return?0;
}

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????1039??2008-11-22?12:46??子集和問題\1076.cpp

?????文件??????24576??2009-03-13?19:17??子集和問題\子集和問題.doc

?????目錄??????????0??2009-03-13?19:17??子集和問題

-----------?---------??----------?-----??----

????????????????25615????????????????????3


評論

共有 條評論

相關資源