bzoj1260: [CQOI2007]涂色paint

    xiaoxiao2021-04-12  34

    传送门 明显区间dp f[i][j]表示i到j一段的最少涂色次数 枚举是直接修改还是两边组合。

    uses math; var s:string; f:array [0..55,0..55] of longint; n,i,j,k,p:longint; begin readln(s); n:=length(s); fillchar(f,sizeof(f),1); for i:=1 to n do f[i,i]:=1; for i:=2 to n do for j:=1 to n-i+1 do begin if s[j]=s[j+i-1] then p:=0 else p:=1; f[j,j+i-1]:=min(f[j,j+i-2],f[j+1,j+i-1])+p; for k:=j to j+i-2 do f[j,j+i-1]:=min(f[j,j+i-1],f[j,k]+f[k+1,j+i-1]); end; write(f[1,n]); end.
    转载请注明原文地址: https://ju.6miu.com/read-667812.html

    最新回复(0)