有個桌子長 r 寬 c,被分為 r*c 個小方格。其中,一些方格上有箱子,一些方格上有按 鈕,一些方格上有障礙物,一些方格上是空地。現在有個任務,需要把所有箱子推到這些按 鈕上面。箱子有個特徵,只能推不能搬不能拉。現在需要用最少的步數把所有箱子推到按鈕 上。 當然,箱子和人都只能以格仔為單位移動,不存在一部分在格內一部分在格外的情況; 只能向四個方向推,箱子和推箱子的隊員都不能穿越障礙物。推動的定義是,人的前進方向 被箱子擋住,且箱子在順著前進方向的下一格不是箱子或者障礙物,那麼就可以推著箱子和 箱子一起前進一步。
輸入第一行有兩個整數 r,c(4<=r,c<=7),代表桌子的長和寬,接下來一共有 r 行,
每行有 c 個字元。
字元的含義:
0:代表空地
1:代表障礙物
2:代表箱子
3:代表按鈕
4:人所在的初始地方
輸入資料保證障礙物環繞整個地圖,箱子數目跟按鈕數目相同,箱子最少有乙個,不 會超過 3 個,隊員肯定只有乙個。不用考慮箱子初始就按著按鈕的情況。保證有解
輸出只有一行,為解決機關的最小步數。
4 5
11111
14231
10231
11111
【樣例說明】 在樣例中,最快的方法之一是先向東把第乙個箱子推到按鈕上,然後向西走
回原處,之 後向南一步,再向東推第二個箱子到按鈕上。至此任務完成,共使用了 4 步。
【資料範圍】
對 30%的輸入資料 :箱子只有乙個。
對 100%的輸入資料 :4<=r,c<=7
用 dist[position][box1][box2][box3]記錄人在 position,箱子 1 在 box1,箱子 2 在box2,箱子 3 在 box3 位置時最少需要花費的步數。bfs 一遍即可。
首先的問題是box1怎麼記錄兩個值(座標嘛)so我們就記錄乙個值,行號脫離出去(未完待續,太睏了)
那麼上**
誒?**呢?
作者已經困死在了除錯板前
so等作者什麼時候醒了再說吧
也行low逼作者考試前聽了梁靜茹的勇氣,於是有了勇氣寫30分大bfs
結果還是搜爆了(全是錯的,什麼樣例也過不了)
然而作者仍不死心,覺得可以把搜尋分成兩大部分
就先dfs出了人到箱子的上下左右方向不同的路程,(這部分就是個走迷宮的板嘛)再開始玄學搞事
搞著搞著搞了10分
聊勝於無了
ps(這道題應該妥妥第三題的)
20180807模擬測試 t1 function
low逼的我也只能寫這樣的水題。對於乙個整數,定義 f x 為他的每個數字的階乘的乘積。例如 f 135 1 3 5 720。給出乙個數 a 可以包含字首零 a 滿足他的至少乙個數字大於 1。我們要求出最大 的整數 x,其中 x 不含 0 或 1,並且滿足 f a f x 輸入 第一行乙個整數 n,...
5 11返校測試T2
有k k第一行乙個整數n。第二行有n個正整數,每個數字代表一張選票所選的人的編號。每行乙個正整數,為優勝者的編號,由小到大。如果沒人獲勝,則輸出 no such person.8 5 2 3 6 2 5 2 72優勝者為2號。下面是這個題的思路qwq 將所有的選票進行從小到大排序 快排解決 然後將陣...
NOIP模擬(20171024)T2 乘積
求從1 n中選k個數,使得這k個數的乘積不含完全平方因子 70 n 30 100 n 500 狀壓dp,f i j k 表示前i個數,選了j個,當前所選數之積分解質因數後的狀態為k k表示成二進位制後,第一位表示有沒有2,第二位表示有沒有3 以此類推 令i 1分解質因數後狀態為po s i 1 f ...