亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

POJ1651 Multiplication Puzzle(DP矩陣鏈)

2019-11-14 12:32:00
字體:
來源:轉載
供稿:網友

Multiplication Puzzle Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 9500 Accepted: 5906 Description

The multiplication puzzle is played with a row of cards, each containing a single positive integer. During the move player takes one card out of the row and scores the number of points equal to the PRoduct of the number on the card taken and the numbers on the cards on the left and on the right of it. It is not allowed to take out the first and the last card in the row. After the final move, only two cards are left in the row.

The goal is to take cards in such order as to minimize the total number of scored points.

For example, if cards in the row contain numbers 10 1 50 20 5, player might take a card with 1, then 20 and 50, scoring 10*1*50 + 50*20*5 + 10*50*5 = 500+5000+2500 = 8000

If he would take the cards in the opposite order, i.e. 50, then 20, then 1, the score would be 1*50*20 + 1*20*5 + 10*1*5 = 1000+100+50 = 1150. Input

The first line of the input contains the number of cards N (3 <= N <= 100). The second line contains N integers in the range from 1 to 100, separated by spaces. Output

Output must contain a single integer - the minimal score. Sample Input

6 10 1 50 50 20 5 Sample Output

3650

分析 矩陣鏈(Matrix Chain),用迭代實現動態規劃. 我把分析放在了代碼注釋中

感受 剛開始一直看別人代碼,看不懂后來拿紙一步一步算總算弄明白了,Orz看十遍不如親手算一遍.

#include<cstdio>#include<iostream>#include<algorithm>#include<cmath> #include<vector>using namespace std;#define inf 0x3fffffff#define maxn 105int p[maxn];// 表示矩陣的行數, 注意我是從0開始的 int m[maxn][maxn];//m[i][j]表示從第i個矩陣鏈到第j個矩陣鏈的最少相乘次數 int s[maxn][maxn];//s[i][j]表示從第i個矩陣鏈到第j個矩陣鏈的分界點(也就是解的追蹤),在本題中可以不寫 void matrix_chain(int* p,int n,int m[maxn][maxn],int s[maxn][maxn]){ for(int i=0;i<=n;i++) m[i][i]=0; for(int len=2;len<n;len++)//len:鏈長 for(int i=1;i<=n-len+1;i++)// i:左邊界 (i=1,表示第i個矩陣鏈) { int j=i+len-1;//通過左邊界i和鏈長r可確定右邊界j (j:第j個矩陣鏈) m[i][j]=inf;// init for(int k=i;k<=j-1;k++){ int t=m[i][k]+m[k+1][j]+p[i-1]*p[k]*p[j]; if( t < m[i][j]){ m[i][j]=t; //更新解 s[i][j]=k; } } } }//print_parens的功能是打印括弧,本題可以不要. //paren : 括弧//感覺和線段樹有點相似,對著樣例把這個樹畫出來就懂了,圖在代碼的最下面*/ void print_parens(int s[maxn][maxn],int i ,int j) { if(i==j) printf("A%d",i); else { printf("("); print_parens(s,i,s[i][j]); print_parens(s,s[i][j]+1,j);//遞歸調用 printf(")"); } } int main(){ //freopen("in.txt","r",stdin); int n; scanf("%d",&n); for(int i=0;i<n;i++){ scanf("%d",&p[i]); } matrix_chain(p,n,m,s); printf("%d/n",m[1][n-1]); /* printf("%d/n",s[1][n-1]); printf("%d/n",s[2][n-1]); printf("%d/n",s[2][4]); printf("/nprint_parens:/n"); print_parens(s,1,n-1); */ return 0; }

關于print_parens的理解 下圖是依據樣例可以畫出的樹,然后按照先序遍歷訪問所有節點. 這里寫圖片描述 對于綠色節點: 第一次訪問打印左括弧(即入棧時打印“(”) ,第二次訪問打印右括弧(即出棧時打印”)”) 對于紅色節點: 直接輸出Ai

最后打印出的結果為: (A1(((A2A3)A4)A5))


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产成人av在线播放| 欧美洲成人男女午夜视频| 91情侣偷在线精品国产| 精品亚洲aⅴ在线观看| 亚洲精品福利在线观看| 日韩精品一区二区三区第95| 日韩在线小视频| 成人国产精品久久久久久亚洲| 亚洲免费人成在线视频观看| 日韩在线视频观看正片免费网站| 欧美黑人巨大xxx极品| 中文字幕亚洲欧美| 欧美性高跟鞋xxxxhd| 亚洲午夜女主播在线直播| 亚洲人成毛片在线播放| 亚洲欧美日韩成人| 欧美黑人视频一区| 美女视频久久黄| 亚洲 日韩 国产第一| 亚洲午夜未删减在线观看| 欧美激情喷水视频| 色偷偷9999www| 亚洲国产另类久久精品| 日韩经典中文字幕| 国产成人精品av在线| 国产精品久久一区| 欧美性做爰毛片| 亚洲自拍小视频免费观看| 91精品国产自产91精品| 日韩美女免费观看| 国内精品久久久久久影视8| 国产精品在线看| 国产精品成人av在线| 国产一区二中文字幕在线看| 成人免费激情视频| 国产噜噜噜噜噜久久久久久久久| 成人国产精品久久久久久亚洲| 69精品小视频| 国产在线拍揄自揄视频不卡99| 色综合久久88| www日韩中文字幕在线看| 国产精品久久久久久中文字| 91在线高清免费观看| 黑人巨大精品欧美一区二区| 免费不卡在线观看av| 亚洲国产精品免费| 在线亚洲欧美视频| 最新69国产成人精品视频免费| 97国产真实伦对白精彩视频8| 日韩成人网免费视频| 欧美成年人视频网站欧美| 精品网站999www| 日韩精品免费在线视频观看| 色综合老司机第九色激情| 日韩视频在线一区| 亚洲性生活视频在线观看| 亚洲性夜色噜噜噜7777| 亚洲精品白浆高清久久久久久| 精品国产91久久久久久老师| 国产精品永久免费在线| 精品国产视频在线| 91精品国产九九九久久久亚洲| 国产精选久久久久久| 欧美区在线播放| 韩日欧美一区二区| 日产精品99久久久久久| 欧美在线视频观看免费网站| 国产日本欧美一区二区三区在线| 4438全国成人免费| 夜夜嗨av色一区二区不卡| 亚洲欧洲午夜一线一品| 日韩国产在线播放| 欧美一区第一页| 欧美日韩成人在线视频| 成人免费视频a| 国产午夜一区二区| 2021国产精品视频| 亚洲电影av在线| 欧美一级片免费在线| 国产一区二区三区在线播放免费观看| yellow中文字幕久久| 国产日韩换脸av一区在线观看| 97国产精品视频人人做人人爱| 成人日韩av在线| 亚洲第一网站免费视频| 亚洲国产欧美一区二区丝袜黑人| 色阁综合伊人av| 欧美黄色免费网站| 亚洲欧洲免费视频| 欧美精品在线第一页| 97在线视频免费看| 91精品国产91久久久久久吃药| 亚洲精品国产拍免费91在线| 国产精品一二三在线| 中文字幕日韩欧美精品在线观看| 亚洲japanese制服美女| 日韩欧美国产成人| 亚洲最新中文字幕| 欧美日韩美女视频| 日韩最新中文字幕电影免费看| 日韩av网址在线观看| 国产视频精品xxxx| 久久伊人精品视频| 91久久精品国产91久久| 国产精品久久久久久久av大片| 国产亚洲欧美视频| 国产成人精品一区| 日韩成人av在线播放| 国产精品第3页| 91精品一区二区| 久久精品国产欧美激情| 久久国产精品免费视频| 精品色蜜蜜精品视频在线观看| 久久精品99久久久香蕉| 91免费在线视频| 国产精品人人做人人爽| 日韩电影中文字幕在线| 亚洲黄色片网站| 欧美麻豆久久久久久中文| 韩国三级电影久久久久久| 欧美精品中文字幕一区| 欧美区二区三区| 久久免费少妇高潮久久精品99| 亚洲最新视频在线| 国产网站欧美日韩免费精品在线观看| 中文字幕日韩av综合精品| 91免费看片在线| 亚洲国产成人精品一区二区| 九九热视频这里只有精品| 国内精品视频一区| 亚洲国产精品人久久电影| 久久99热这里只有精品国产| 亚洲女同性videos| 色伦专区97中文字幕| 成人黄色影片在线| 国产成人精品免费久久久久| 日韩美女福利视频| www.欧美精品| 国产精品嫩草影院一区二区| 亚洲国产精品人久久电影| 青青在线视频一区二区三区| 日韩精品视频免费专区在线播放| 国产一区二区三区精品久久久| 91香蕉嫩草神马影院在线观看| 日韩av电影院| 高清日韩电视剧大全免费播放在线观看| 国产精品久久久精品| 久久亚洲精品网站| 国产欧美日韩免费| 国产这里只有精品| 日韩av电影在线播放| 日韩女优在线播放| 国产成人精品最新| 欧美韩国理论所午夜片917电影| 日韩成人网免费视频| 91精品国产色综合久久不卡98| 欧洲成人免费视频| 日韩视频在线观看免费| 亚洲欧洲xxxx| 欧美风情在线观看| 中文综合在线观看| 亚洲精品欧美日韩| 日韩一区二区福利| 国产色婷婷国产综合在线理论片a|