附上**:
#include
using namespace std;
int n,m;
int f[1001][1001];
int f1[1001][1001];
int vis[1001][1001];
int dfs(int x,int y)
for(i=0; i第一點:
f1[x][y]=max(f1[x][y],b) 這是把值儲存起來,之後可以直接使用。就是以x,y為原點,下次f(x,y)會往四個方向走,取四個方向最長的長度,四個中的最大值儲存起來,下次搜尋的時候直接使用。
第二點:
我剛開始以為他會回溯,所以是這樣搞的,避免他會回溯到原來的點。
加了乙個vis[i][j]條件,防止他回溯。
另外說一點:
分別在每乙個dfs函式前面加上乙個vis[x][y]=1 dfs函式後面加上乙個vis[x][y]=0
這兩種是不同的。
第一種與第二種的區別是:
第一種只有原點的四個方向的分支都結束的時候,原點的標記才能被取消。第二種是只要乙個方向的結束,標記就取消了。
後面我取消了這種標記 因為不用標記 也不會回溯到以前,因為if(f[x][y]>f[x-1][y]) 只有原點大於另外乙個方向的值時候 才會呼叫函式。既然是大於,說明另乙個方向不會回溯到原點,因為他必然小於,所以不會呼叫函式。
JS的一道this例題解析
在學習js裡this的指向時,發現了一道有點 的面試題,看懂了對學習this應該是挺有幫助的 例題如下 function parent this.show function function child child.prototype new parent var parent new parent...
KM演算法及一道例題
這道題乍一看沒有什麼性質,但是我們眾所周知也很容易推出來的有乙個性質 這種矩陣的每一項a i j 是可以表示成a i b j 的 也就是說我們可以構建乙個二分圖 對於a i j 左邊的點i向右邊的點j建一條權值為a i j 的邊 我們現在的要求是對於每 一條邊,要求它兩邊的點權必須加起來大於等於邊權...
一道基礎例題的思考
上面是一段我自己編寫的 具體問題是寫出console.log的值,其中我的下意識的判斷 console.log a.constructor b true理由是b.prototype.contructor重寫了a.prototype物件contructor屬性,執行以上 執行結果證明我的下意思判斷是錯...