海戰遊戲

在N*M的矩陣上,放置了L個軍艦,軍艦的左上角座標爲ux,uy,左下角座標爲dx,dy。軍艦是一個矩形。現在要放置第L+1個軍艦,但是軍艦不能重疊,並且上下左右,上左,上右,下左,下右都不能相鄰。求放置一個長爲p,寬爲q的軍艦的放置方案數(放置方案)。

2<=N,M<=30000,L<=30;

 

樸素的方法。對軍艦可以放置的位置進行枚舉,並且判斷每一個位置是否與其他軍艦衝突。時間複雜度爲O(MNL)

 

補集的方法。計算所有衝突的位置,用總放置方法減去,就是我們可以放的地方。時間複雜度爲(p^2*q^2*L^2)軍艦大小遠遠小於M,N,

該方法提高了時間效率

 

代碼如下

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