入門OJ 6247 算式等式

2022-08-01 11:00:13 字數 841 閱讀 2098

給你n個數字,每個數字均不相同,你可以取其中任意個數字相加,如果所得到的結果在給出的數列

中也能找到,則輸出這個等式

第一行乙個數字n

接下來n個數字

輸出你找到的等式,注意看樣例的輸出格式 

6

1 3 5 7 8 9

1+7=8

1+8=9

3+5=8

1+3+5=9

這道題首先想到的就是分支限界法(<--不知道的童鞋趕緊去看看)限制了深度後才讓輸出的數字數量從少到多。

1 #include2

using

namespace

std;

3int

n,q;

4int num[101];5

set s;//

方便尋找

6bool flag[10001];//

標記 7

bool qwe=false;8

void dfs(int sum,int pre,int dep)//

總值,開始搜尋的下標,深度 925

}2627}

28 cout<<"="

30return;//

注意,這這裡無論找不找得到都要退出返回 31}

32for(int i=pre;i<=n;i++)

3340}41

}42intmain()

4350

for( q=2;q//

分支限界精髓重點,迴圈深度搜尋,注意全域性變數

5154

return0;

55 }

入門OJ 最短路徑樹入門

n 100,1 m 3000,1 len 10000。顯然,對於乙個點u,如果刪去的邊不在它到其它點的最短路上,那麼s是不會變的。考慮到兩點之間的最短路不止一條,我們可以給每個點先建出一棵最短路徑樹出來,然後列舉最短路徑樹上的每條邊並把它刪掉,再跑一遍最短路,看s是否變大即可。如果最短路用dijks...

南陽OJ 語言入門 24

時間限制 3000 ms 記憶體限制 65535 kb 難度 2 描述 現在給出你一些數,要求你寫出乙個程式,輸出這些整數相鄰最近的素數,並輸出其相距長度。如果左右有等距離長度素數,則輸出左側的值及相應距離。如果輸入的整數本身就是素數,則輸出該素數本身,距離輸出0 輸入第一行給出測試資料組數n 0輸...

南陽OJ 語言入門 266

描述 給定一行字元,逆序輸出此行 空格.數字不輸出 輸入 第一行是乙個整數n n 10 表示測試資料的組數 每組測試資料佔一行,每行資料中間有且只有乙個空格 這樣你可以把此行當成兩個字串讀取 每行字元長度不超過40 並且保證輸入的字元只有空格 1個 數字,小寫字母三種 輸出對應每行測試資料,逆序輸出...