在解決電路佈線問題時,一種很常用的方法就是在佈線區域疊上乙個網格,該網格把佈線區域劃分成m*n個方格,佈線時,轉彎處必須採用直角,如已經有某條線路經過乙個方格時,則在該方格上不允許疊加佈線。如下圖所示,如從乙個方格a(2,1)的中心點到另乙個方格b(8,8)的中心點佈線時, 每個方格佈線時需要1個單位的電路材料,所需要最少的電路材料是16。
輸入格式:
第一行輸入網格的m和n
第二行開始輸入網格中已經佈線的情況,如果已經有佈線時,用1表示,尚未佈線時,用0表示。
接下來兩行分別輸入需要佈線的起始位置a和結束位置b。
輸出格式:
輸出從起始位置a到結束位置b佈線時所需要的最少電路材料。
輸入樣例:
在這裡給出一組輸入。例如:
8 81 1 1 1 1 1 1 1
0 0 0 0 0 1 1 1
1 0 1 1 0 0 0 1
1 0 1 1 0 1 1 0
1 0 1 1 1 1 1 1
1 0 1 1 0 0 0 1
1 0 0 0 0 1 0 0
1 1 1 1 1 1 1 0
2 18 8
輸出樣例:
在這裡給出相應的輸出。例如:
分析:此題不難,由題可知只求最短路徑,而不求走過的點,直接用遞迴來做即可,注意遞迴方法的設計。
#include
#include
#include
using
namespace std;
#define maxn 100
#define maxv 99999
int m, n;
int place[maxn]
[maxn]
;int startx, starty, endx, endy;
intmigong
(int x,
int y)
intmain()
} cin >> startx >> starty >> endx >> endy;
cout<<
migong
(startx,starty)
<
system
("pause");
return0;
}
動態規劃電路佈線
電路佈線簡介 舉例及其詳細說明 塊測試結果 在一塊電路板的上下兩端分別有n個接線柱。根據電路設計,要求用導線 i,i 將上端接線柱i與下端接線柱 i 相連,如圖,其中,i 1 i n,是 1,2 n 的乙個排列.導線 i,i 稱為該電路板上的第i條連線.對於任何1 i小於j n,第i條連線和第j條連...
動態規劃 電路佈線
1 問題描述 在一塊電路板的上 下兩端分別有n個接線柱。根據電路設計,要求用導線 i,i 將上端接線柱i與下端接線柱 i 相連,如下圖。其中,i 1 i n,是 1,2,n 的乙個排列。導線 i,i 稱為該電路板上的第i條連線。對於任何1 i j n,第i條連線和第j條連線相交的充要條件是 i j ...
動態規劃 電路佈線
問題描述 在一塊電路板的上 下兩端分別有n個接線柱。根據電路設計,要求用導線 i,i 將上端接線柱i與下端接線柱 i 相連,如下圖。其中,i 1 i n,是 1,2,n 的乙個排列。導線 i,i 稱為該電路板上的第i條連線。對於任何1 i j n,第i條連線和第j條連線相交的充要條件是 i j 在製...