怎样用js做网站轮播图,seo基本步骤,博物馆门户网站建设方案,黔西网站建设经典的动态规划#xff0c;LRJ神牛的书上经典例题第一题。 开一个三维数组,f[i][j][k]表示将i~j这一段#xff0c;连上后面的k个格子全部消去所能够获得的最大价值。 状态转移方程#xff1a; f[i][j][k]Max{ Max{f[i][p][len[j]k]f[p1][j-1][0]}(color[p]color[j] and iLRJ神牛的书上经典例题第一题。 开一个三维数组,f[i][j][k]表示将i~j这一段连上后面的k个格子全部消去所能够获得的最大价值。 状态转移方程 f[i][j][k]Max{ Max{f[i][p][len[j]k]f[p1][j-1][0]}(color[p]color[j] and ipj)//和前面某段一起消掉 f[i][j-1][0]sqr(len[j]k)//马上消掉这一段 } 其中len[i]表示第i段连续区间的长度比如说样例1中的len值分别为1,4,3,1 代码很简单 Program POJ1390;//By_Thispoet
Constmaxn200;
Vari,j,k,m,n,l,r,p,o,q :Longint;f :Array[0..maxn,0..maxn,0..maxn]of Longint;len,color,maxr,rep :Array[1..maxn]of Longint;rpos :Array[1..maxn]of Integer;rec :Array[1..maxn,0..maxn]of Longint;Function Max(i,j:Longint):Longint;
beginif ij then exit(i);exit(j);
end;BEGINreadln(o);q:o;while o0 dobegin n:0;l:0;fillchar(rpos,sizeof(rpos),0);fillchar(rec,sizeof(rec),0);fillchar(len,sizeof(len),0);readln(r);for i:1 to r dobeginread(m);if lm then inc(len[n]) elsebegininc(n);inc(rec[m,0]);rec[m,rec[m,0]]:n;rep[n]:rec[m,0];color[n]:m;len[n]:1;end;l:m;end;for i:n downto 1 dobeginmaxr[i]:rpos[color[i]];inc(rpos[color[i]],len[i]);end;//preparefillchar(f,sizeof(f),0);for i:1 to n dofor k:0 to maxr[i] dof[i,i,k]:sqr(len[i]k);for j:1 to n-1 dofor i:1 to n-j dofor k:0 to maxr[ij] dobeginf[i,ij,k]:f[i,ij-1,0]sqr(len[ij]k);l:rep[ij]-1;while l0 dobeginp:rec[color[ij],l];if pi then break;f[i,ij,k]:Max(f[i,ij,k],f[i,p,klen[ij]]f[p1,ij-1,0]);dec(l);end;end;writeln(Case ,q-o1,:, ,f[1,n,0]);dec(o);end;END.转载于:https://www.cnblogs.com/Thispoet/archive/2011/10/03/2198448.html