//剛開始看了下,覺得雖然數很大可能超時,但必須深搜。結果果然超時了
//後來考慮了下,發現在任何乙個點,他能得到的最大值是固定的。所以對某點只要進行一次深搜,並記錄該值,0ms過
#include
using namespace std;
int num[100][100],n;
int max_value[100][100];
bool sign[100][100];
int dfs(int x,int y)
else value2=0;
}else value1=value2=0;
sign[x][y]=true;//做好標記
if(value1>value2)
max_value[x][y]=value1+num[x][y];
else max_value[x][y]=value2+num[x][y];
return max_value[x][y];
}int main()
printf("%d\n",dfs(0,0));
}return 0;
}
算m點問題,深搜解決
演算法導論課後的一道題。樣例輸入 5 125 7 2 2 12 3 樣例輸出 7 3 21 21 12 252 252 2 250 250 2 125 簡單的用深搜解決了,不考慮優化什麼的了,資料多的話會超時,不過這不是a題就這樣吧 xd 算m點問題 jet muffin 計算機4班 陳潔 incl...
兩點(51nod 深搜)
福克斯在玩一款手機解迷遊戲,這個遊戲叫做 兩點 基礎級別的時候是在乙個n m單元上玩的。像這樣 每乙個單元有包含乙個有色點。我們將用不同的大寫字母來表示不同的顏色。這個遊戲的關鍵是要找出乙個包含同一顏色的環。看上圖中4個藍點,形成了乙個環。一般的,我們將乙個序列 d1,d2,dk 看成乙個環,當且僅...