矩陣對角點的尋路問題

題目:http://community.topcoder.com/stat?c=problem_statement&pm=1889&rd=4709

題意:給個矩形的地圖,左下角爲起點,右上角爲終點,再減去不通的路,求總共有多少路線


分析:這是別人練java的一道題,剛開始用暴力搜索,對與小數據還行,後面時間複雜度太大了,還是得用數學分析

假設起點(00)終點(n,m)不通行道路段(a[i].x , a[i].y) to (b[i].x , b[i].y) (保證a數組的值小於或等於b數組)

(1)對於一個nxm的矩陣對角線達到總可能路線的數學規律(就是取n行m列的排列組合方法了)
·
(2)畫上幾條橫線代表此路不通
(3)所以要減去這些路,先對第一條分析如下,可能性就是這條路兩端可以跟起點和終點構成2個矩陣(直線也是矩陣,寬爲0)
 所以可能性就是看成2段矩陣的可能性,起點是(0,0),終點是n,m,就很容易帶進去算出來 

(4)第二條也類似,如圖
(5)最後最後要加上重複減去的,就是下圖了,明顯有3個矩陣,if判斷代表一條線必須在另一條線的上方,它們纔有可能在同些路上

合起來就是


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章