小樂樂要下山(腦殘動態規劃記錄路徑)

來源:互聯網
上載者:User

標籤:

哈爾濱理工大學OJ上的題目,水是很水,結果我做了好久,發現題中要迴圈輸入,我也是醉了。

題目很簡單但是心裡不平衡決定發一下。

Description上學的路總是那麼艱辛,在小樂樂辛苦的出了家門之後,她才想起自己的家已經搬到山上了(睡的真迷糊)。下山的路同樣十分艱難,不同的地方通行的難易程度也不同。,小樂樂現在在山頂上,她面前有兩條路,每條路通往一個地點,每個地點有一個值,表示這個通行的難易程度。最底層的地點就是山腳了。大家知道,小樂樂好懶好懶的,她想知道怎麼下山最省力?Input第一行一個整數n(1<n<500)
隨後n行,第i+1行有i個數字
表示山上的路況Output輸出從山頂到山腳最省力的路。(保證答案唯一)Sample Input
3
1
2 5
5 6 3
Sample Output
1 2 5
Hint輸入的是一個三角形,每個點能走到下面那個點和下右那個點。
 1 #include<stdio.h> 2 #include<math.h> 3 #include<string.h> 4 #include<iostream> 5 using namespace std; 6 int a[600][600]; 7 int dp[600][600]; 8 int n; 9 int dpit(int i,int j)10 {11     if(i==n)12         return dp[i][j]=a[i][j];13     else14         return dp[i][j]=a[i][j]+min(dpit(i+1,j),dpit(i+1,j+1));15 }16 void print(int i,int j)17 {18     if(i>n) return ;19     if(dp[i][j]>dp[i][j+1])20     {21         printf("%d",a[i][j+1]);22         if(i!=n)23             printf(" ");24         else25             printf("\n");26         print(i+1,j+1);27     }28     else29     {30         printf("%d",a[i][j]);31         if(i!=n)32             printf(" ");33         else34             printf("\n");35 36         print(i+1,j);37     }38 }39 int main()40 {41     while(~scanf("%d",&n)){42     for(int i=1; i<=n; i++)43         for(int j=1; j<=i; j++)44             scanf("%d",&a[i][j]);45     memset(dp,0,sizeof(dp));46     //printf("%d",dp[1][1]);47     //int ans=dpit(1,1);48     for(int i=n; i>=1; i--)49         for(int j=1; j<=i; j++)50         {51             if(i==n)52                 dp[i][j]=a[i][j];53             // printf("%d ",dp[i][j]);}54             else55                 dp[i][j]=a[i][j]+min(dp[i+1][j],dp[i+1][j+1]);56             //   printf("%d  %d  %d i=%d j=%d\n",dp[i+1][j],dp[i+1][j+1],a[i][j],i,j);57             /* printf("%d ",dp[i][j]);*/58         }59 /*for(int i=1;i<=n;i++)60 for(int j=1;j<=n;j++){61     printf("%3d",dp[i][j]);62     if(j==n)63         printf("\n");64 }*/65     printf("%d ",a[1][1]);66         print(2,1);67 }68 }

本題要求記錄路徑,不如我們來找路徑,反正已經把DP過程都儲存了,所以根據狀態轉移方程我們就可以再次找到路徑了,就是向著小的地方走。

動態規劃路徑輸出方法有好多,我會一一學習。

小樂樂要下山(腦殘動態規劃記錄路徑)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.