zoj1276 區間dp 路徑輸出

2022-09-15 22:30:30 字數 1087 閱讀 6868

【題意】:矩陣連乘,找到最小次數,同時輸出括號的巢狀方式

【分析】:經典的區間dp,並且記錄下了dp的path

因為是遞迴得到的path,所以遞迴壓棧按從裡到外的順序得到path就可以了

輸出巢狀括號部分很好的考察了對的理解,和遞迴執行的順序。

注意題目輸出中有的地方有空格。

【**】:

1

//zoj1276 路徑輸出用到了棧的思想,比較考驗思維

2 #include3 #include

4 #include5

#define maxn 13

6using

namespace

std;

7intn;8

inta[maxn],b[maxn],dp[maxn][maxn],path[maxn][maxn];

9int cas=0;10

int dp(int i,int

j)21}22

return

dp[i][j];23}

24void print(int i,int

j)30

31print(i,path[i][j]);

32 printf("x "

);33 print(path[i][j]+1

,j);

3435

if (i")"

);3637}

38int

main()

45 memset(dp,-1,sizeof

(dp));

46//

for(int i=1;i47 printf("

case %d:

",cas);

48 dp(1

,n);

49//

cout<50 print(1

,n);

51 printf("\n"

);5253}

54return0;

5556 }

zoj3541 區間dp求方案

題目鏈結 先吐槽一下hdu的spj,死都過不了,uva和zoj上都能過。題意就是一排上有很多燈,給你每個燈按下去後能亮的時間和座標 人每秒走一格 首先發現列舉起點做不了,所以要列舉終點。這裡有乙個很有用的結論,就是每個燈我只關心最後一次路過的時間,而從某個點一直按到結束的合法方案中,我們要麼直接走到...

zoj 3537 區間dp 計算幾何

題意 給定n個點的座標,先問這些點是否能組成乙個凸包,如果是凸包,問用不相交的線來切這個凸包使得凸包只由三角形組成,根據costi,j xi xj yi yj p算切線的費用,問最少的切割費用。題解 點我 2015 07 20 專題複習 稍微修改了一下,順便發現題號寫錯了 1 include2 in...

poj 1141 區間dp 列印路徑

題意 定義合法的括號序列如下 1 空序列是乙個合法的序列 2 如果s是合法的序列,則 s 和 s 也是合法的序列 3 如果a和b是合法的序列,則ab也是合法的序列 例如 下面的都是合法的括號序列 下面的都是非法的括號序列 給定乙個由 和 組成的序列,找出以該序列為子串行的最短合法序列。解題思路 這題...