天天看點

ACM訓練日記—8月8日

        經過今天的訓練,還真有點累,主要因為是下午的訓練賽,前兩道題特别的簡單,可到了第三題就直接麼懵了,最郁悶的是賽後看題解還完全看不懂,是線性dp的問題,看了好幾篇部落格,還是半懂,甚至開始懷疑自己動态規劃怎麼學的,明天還是先了解下線性dp的事再看這道題吧。

       另外利用上午和晚上的時間,勉強A了三道題。

        第一道事糖果玉米孩子,要求分别求出沿左右牆壁走出迷宮的步數和走出迷宮最小步數。這道題就需要現在紙上走一走,發現分别沿兩邊牆壁走,有順時針與逆時針的轉向差別,一旦撞牆要沿原來的時針方向反向退一個繼續走。至于求最小步數,廣搜套路就行。

       第二道題,讓給兩個數n,m,m可以被拆成個位後任意相鄰的組合,比如23423,可以分為2,342,3,就這樣是拆開的數想加接近n,這道題是深搜,兩個搜尋方向,設該位是第i位,這一位可以保留進行組合,也可以馬上截止之前的形成一個數。當然還有個坑,就是對于可以按多種方式組合出答案的情況要輸出reject,這其實就是在出現ans是的k++,但最後判斷時是判斷k/2是否大于1。

       第三道題就是簡單的最小生成樹了,就是prim算法,套上就對了。