我對狀態空間的理解:
題目傳送門:
算\(24\)點應該是大家耳熟能詳的遊戲了……
這題\(spj\),要求把兩個要運算的數字較大的放在前面輸出……
然後爆搜數字順序和運算子就可以了……
真~暴力美學
時間複雜度:\(o(4!*4^3)\)
空間複雜度:\(o(n)\)
**如下:
#include #include #include using namespace std;
bool bo[5];
int a[5],sta[5],sign[4],fake[5];
int read()
void print()
}//輸出
void check()
} if(now==24)
}//判斷是否可以算出24
void make_sign(int id)
for(int i=1;i<=4;i++)
sign[id+1]=i,make_sign(id+1);
}//搜完運算子就判是否可行
void dfs(int id) //搜完數字搜運算子
for(int i=1;i<=4;i++)
if(!bo[i]) //爆搜數字
}int main() puts("no answer!");//如果爆搜出不了結果就no answer!
return 0;
}
洛谷 P1236 算24點
題目描述 幾十年前全世界就流行一種數字遊戲,至今仍有人樂此不疲 在中國我們把這種遊戲稱為 算24點 您作為遊戲者將得到4個1 9之間的自然數作為運算元,而您的任務是對這4個運算元進行適當的算術運算,要求運算結果等於24。您可以使用的運算只有 您還可以使用 來改變運算順序。注意 所有的中間結果須是整數...
洛谷 P1236 算24點
題目描述 幾十年前全世界就流行一種數字遊戲,至今仍有人樂此不疲 在中國我們把這種遊戲稱為 算24點 您作為遊戲者將得到4個1 9之間的自然數作為運算元,而您的任務是對這4個運算元進行適當的算術運算,要求運算結果等於24。您可以使用的運算只有 您還可以使用 來改變運算順序。注意 所有的中間結果須是整數...
洛谷P1236 算24點 搜尋
給出四個整數,求能否經過一系列運算使得這四個數字最終組成24。注意 運算的任意時刻數字均必須為整數。很顯然的搜尋嘛。可以考慮每次列舉使用那兩個數字進行運算,然後再列舉使用哪一種運算方法 加減乘除 把用過的數字修改成 1.最終搜尋完之後判斷有沒有乙個數字變成了24即可。思路還是比較簡單,注意細節即可。...