今天上午開始寫姜神的搜尋題.
第一道,經典八數碼,重新複習康托展開與bfs.**寫得太弱,外加對題理解不充分,調了一上午的碼.
第二題,八數碼變種,資料更水,把握住翻轉的擴充套件規律即可.
第三題,還在施工
第四題,一開始dfs暴力,tle掉;後來開始用dfs記憶化搜尋,失敗;接著嘗試bfs+dp,tle掉.最後在網上看了題解,利用dp解決.
在dp的過程中要留意邊界.另外狀態轉移的時候很容易寫出模模糊糊的錯誤轉移.在這題中,先處理好一排或一列,在逐層或逐列轉移,可以避免重複計算導致的超時.
第四題另有一解,可用二分的方法來嘗試在起點的血量,在用dfs去跑,能到達終點的,令r = mid;無法到達的l = mid ,直到出現確切的值.
關於10月20日 8的六道題的心得與感悟
二十號了,複賽在即,還望努力.第一題 腦筋急轉彎一樣的神奇水題.有乙個a b的矩形桌子,和若干個半徑為r的圓盤,兩人輪流把圓盤放到桌子上,不能有重疊的部分.最後無法放圓盤的人就是輸家.最後輸出贏家.一開始思來想去,完全沒有思路.最後看題解才發現是一道大水題.放盤子的時候,只有兩種情況.1.盤子可以放...
關於鍊錶的四道演算法題
解決鍊錶的四道演算法題 1.鍊錶反轉。2.使用快慢指標獲取鍊錶中間值。3.使用快慢指標判斷鍊錶中是否有環。4.使用快慢指標找出鍊錶中環的入口。使用遞迴解決鍊錶反轉 路人假helloworld 反轉鍊錶 public void reverse node head reverse head.next 反...
12月13日 一道有趣的小題目
在很久很久以前,曾經看過這麼一道題目 package com.tree.thread class singleton public static singleton getinstance public class test 對該題的輸出結果原本的猜測要麼是 0,0 要麼是 0,1 然後實際操作的結...