題目大意:給一矩陣,兩人分別在左上和右下,兩人傳遞紙條,規定左上的人只能向右和向下傳遞,右下的人只能向左和向上傳遞,兩者路徑不能相交,求兩條路徑的權值總和最大是多少。
題目解答:
我們轉化一下思想,題目中說由左上方到右下方來回,我們可以看作是從左上方找兩條不相交的路徑到右下方。這裡我們可以好比是兩個紙條同時從左上方向右下方傳,只要保證在同一時刻兩個紙條不在同乙個人手裡,那麼我們就能保證兩個字條的路徑不相交.
確定演算法: dp(動態規劃)
狀態:當前時刻的兩個字條的座標。
為了保證兩個字條是同步傳遞的,所以方程式要加乙個限定條件 ( i + j = u + v )**:
#includeusing namespace std;
const int maxn=51;
int dp[maxn][maxn][maxn][maxn];
int n,m,a[maxn][maxn];
int main()
}int a,b,c,d;
for(int i=1;i<=n;i++)}}
}cout << dp[n][m-1][n-1][m] << endl;
return 0;
}
動態規劃 傳紙條
這一道題的思路很簡單,暴力dp都可以過 就是用4個for 但是有可能會爆空間。先來講講暴力dp的思路吧 這一道題可以看成是求乙個人從左上角到右下角走兩次所經過路線的最大值,所以用兩個for來列舉第一次走的橫縱座標,另外兩個for來列舉第二次做的橫縱座標,一共分四種情況 1 f i j k l f i...
動態規劃 傳紙條
小淵和小軒是好朋友也是同班同學,他們在一起總有談不完的話題。一次素質拓展活動中,班上同學安排做成乙個m行n列的矩陣,而小淵和小軒被安排在矩陣對角線的兩端,因此,他們就無法直接交談了。幸運的是,他們可以通過傳紙條來進行交流。紙條要經由許多同學傳到對方手裡,小淵坐在矩陣的左上角,座標 1,1 小軒坐在矩...
傳紙條 動態規劃
小淵和小軒是好朋友也是同班同學,他們在一起總有談不完的話題。一次素質拓展活動中,班上同學安排做成乙個m行n列的矩陣,而小淵和小軒被安排在矩陣對角 線的兩端,因此,他們就無法直接交談了。幸運的是,他們可以通過傳紙條來進行交流。紙條要經由許多同學傳到對方手裡,小淵坐在矩陣的左上角,座標 1,1 小軒坐在...