CDOJ1252 24點 模擬 搜尋

2021-08-10 14:44:13 字數 1322 閱讀 5070

機房的大佬給我們找了一堆搜尋題練習**量,然後me挑了一道寫…

然而這題一點都不考**量,想一想怎麼寫比較簡單,剩下的事情就是複製貼上了=w=

(論如何在10分鐘之內寫完一道搜尋題)

cdoj1252傳送門

24點就是給你一串數字,問你是否通過加減乘除括號構成24點。

沈爺覺得這個很好玩,就決定考考你,給你4個數,可以交換位置,可以用加減乘除和括號,是否能構成24點呢?

注意哦~這裡的除法並不是整數除法,比如樣例

輸入:

第一行t,表示有多少組測試資料,1≤t≤50

接下來t行,每行4個正整數a1, a2, a3, a4,表示每個數都是多少,其中1≤ai≤13

輸出:

對於每一次詢問,如果能夠湊成24點,輸出yes,否則輸出no

輸入:

2 3 3 8 8

1 1 1 1

輸出:

yes

no題面說的什麼交換順序啊,括號啊什麼的,其實就是隨意順序,不要想複雜啦。

然後呢,模擬(暴搜)的時候大概是這樣的:

當me還沒有進行運算的時候,me有四個數。

第一次運算,me就會從初始的四個數中選兩個數出來進行運算,然後me還剩三個數

第二次運算,me就會從剩下的三個數裡面選出兩個數進行運算,然後me還剩兩個數

第三次運算,me會將剩下的兩個數進行運算,最後剩下乙個數

第四次,me只需要檢查當前剩下的數是否是24就可以了

然後寫個dfs就可以水過,複雜度:( 6 * 6 ) * ( 3 * 6 ) * ( 2 * 6 ),每個括號表示一層,括號內第乙個數字表示從剩下的數里選擇兩個數的方案數,第二個表示運算種數(減法和除法各有兩種,因為有方向)

注意使用除法的時候記得判定除數不能為0,還有要注意eps

#include 

#include

#include

using

namespace

std ;

int t ;

double num[5][5] , eps = 1e-8 ;

int dcmp( double x )

bool dfs( int dep )

int topp = 0 ;

for( int i = 1 ; i < 4 - dep + 1 ; i ++ )

//division j/i

if( dcmp( num[dep][i] ) != 0 )}}

return

false ;

}int main()

}

jQuery仿錨點跳轉

這幾天在上海出差,遇到了各式各樣的問題,比如現在這個,因為如果你在頁面使用錨點,那一重新整理頁面,因為url改變了,之前的頁面就會載入失敗,造成使用者體驗不好,所以,我就找了這個 js 仿錨點跳轉到頁面指定位置,用的是 offset 方法 document ready function 1000 帶...

仿抖音點贊效果

玩過抖音的人應該都知道抖音的點讚效果挺酷炫的,而作為碼農我們一定想知道它是怎麼實現的。先上效果圖 實現原理非常的簡單,直接上 created by csc on 2018 6 11.information 仿抖音點贊功能 class love context context relativelayo...

Android 仿酷點圓形選單

看見乙個人寫了乙個圓形的可以轉的選單,當時看的還是挺模糊的,最後自己模仿的寫了一遍,這是源 基本思想是這樣的 1,把每個圖示顯示的什麼圖示確定下來 2,計算每乙個點的座標,3,在activity就可以正確顯示出了 4,當我們移 標的時候,計算出移動後的圖示的角度,知道角度和半徑就可以設定它的座標啊,...