POJ1010 搜尋題基礎

2021-06-07 19:08:40 字數 719 閱讀 2771

/*

雖然也認同這題是基礎的搜尋題,但因做題太不熟練,寫了好久~

*/#include #include #include using namespace std;

const int n=4;

const int nn=1000;

int n,types,sum,maxz,a[nn],hash[nn],p[n],s[n];

bool tie;

void reanswer(int cnt,int _types)

void judge(int cnt,int _types)

}void init()

void dfs(int x,int k,int cnt,int _types)

if (cnt==n || k==n || x>(n-cnt)*a[n-1]) return; //剪枝(1.數量已達4;2.郵票種類列舉完了;3.當前郵票組合過小,已明顯不能組合成功)

int y=x;

for (int i=cnt; i=a[k]; i++)

dfs(y,k+1,cnt,_types); //當前郵票不用時

}int main()

sort(a,a+n); //排序,一為之後的輸出有序,二使得dfs能優先搜尋到有效組合

while (scanf("%d",&x),x)}}

return 0;

}

POJ1010 體現搜尋藝術的「水」題

問題簡述 給出不同型別的一組郵票,型別面值可能相同。求符合總面值,且最多取4張郵票的最佳方案。最佳方案滿足以下要求 型別數最多。如果型別數相同,則張數少者。如果張數也相同,則單張面值最大者。如果以上都相同,則無最佳方案 平局 問題分析 搞了整整3天,絞盡腦汁也沒想出個好方案。看了一下關於該題的dis...

poj3279 (搜尋,好題 )

前題 這題是之前 做鄺斌搜尋專題遺留下的三題之一,最近為了複習搜尋姿勢補上。題意 最大15 15平面 二維陣列 有1有0,對乙個地方操作,與他相鄰四個包括他自己會翻轉 0變1,1變0 求出最少的操作讓全部變成0,輸出操作位置圖。思路 很明顯每個點操作一次就夠了,兩次恢復原樣,然後 我就想不到了.15...

POJ 1321搜尋簡單題

在乙個給定形狀的棋盤 形狀可能是不規則的 上面擺放棋子,棋子沒有區別。要求擺放時任意的兩個棋子不能放在棋盤中的同一行或者同一列,請程式設計求解對於給定形狀和大小的棋盤,擺放k個棋子的所有可行的擺放方案c。input 輸入含有多組測試資料。每組資料的第一行是兩個正整數,n k,用乙個空格隔開,表示了將...