hdu1427 速算24點 dfs(暴力列舉)

2021-09-25 04:38:48 字數 1032 閱讀 9992

輕觸即可跳轉到hdu_1427

problem description

速算24點相信絕大多數人都玩過。就是隨機給你四張牌,包括a(1),2,3,4,5,6,7,8,9,10,j(11),q(12),k(13)。要求只用'+','-','*','/'運算子以及括號改變運算順序,使得最終運算結果為24(每個數必須且僅能用一次)。遊戲很簡單,但遇到無解的情況往往讓人很鬱悶。你的任務就是針對每一組隨機產生的四張牌,判斷是否有解。我們另外規定,整個計算過程中都不能出現小數。

input

每組輸入資料佔一行,給定四張牌。

output

每一組輸入資料對應一行輸出。如果有解則輸出"yes",無解則輸出"no"。

sample input

a 2 3 6

3 3 8 8

sample output

yesno

之前的搜尋都是地圖問題,猛地拿來這個題一驚!!!

其實就是炒雞暴力列舉  就是要注意一下減和除的順序不能顛倒,還有就是除數不能為0的情況

#include #include #include using namespace std;

double num[4];

int dfs(int n)

for(int i=0;ifor(int j=i+1;jif(a)

num[i]=a;

num[j]=b;//數值恢復

}return 0;

}int main();

while(scanf("%s%s%s%s",mmp[0],mmp[1],mmp[2],mmp[3])!=eof)

//printf("%lf ",num[i]);

}if(dfs(4))

printf("yes\n");

else

printf("no\n");

memset(mmp,0,sizeof(mmp));

memset(num,0,sizeof(num));

}return 0;

}

HDU 1427 速算24點 (尚未完成)

problem description 速算24點相信絕大多數人都玩過。就是隨機給你四張牌,包括a 1 2,3,4,5,6,7,8,9,10,j 11 q 12 k 13 要求只用 運算子以及括號改變運算順序,使得最終運算結果為24 每個數必須且僅能用一次 遊戲很簡單,但遇到無解的情況往往讓人很鬱悶...

hdu 1427速算24點(列舉全排列)

題意 算24點相信絕大多數人都玩過。就是隨機給你四張牌,包括a 1 2,3,4,5,6,7,8,9,10,j 11 q 12 k 13 要求只用 運算子以及括號改變運算順序,使得最終運算結果為24 每個數必須且僅能用一次 遊戲很簡單,但遇到無解的情況往往讓人很鬱悶。你的任務就是針對每一組隨機產生的四...

HDU訓練記錄2 基礎數字dp

題目描述 傳送門題意 求0 n中含 49 的數的個數。題解狀態 f i j 表示i位數所有以j開頭的數中合法 不含 49 的數的個數。轉移 if j 4 k 9 f i j f i 1 k 列舉jk分別為i和i 1位數的開頭並且滿足條件。求解時用總數減去dp值。注意 這道題傳m 1的話有可能爆lon...