vijos p1063(迎春舞会之集体舞)
DP,从左到右,从上到下 for 一遍,如果j为
跟盖房子有点像,我只算了向下的三角,有人说要算向上的三角,但是还是A了......
不知道什么原因。
1 program p1063; uses math; 2 var 3 i,j,k,l,m,n:longint; 4 s:array[1..300,1..300] of char; 5 f:array[1..300,1..300] of longint; 6 ch:char; 7 begin 8 read(n); 9 for i:=1 to n do 10 begin 11 read(ch); 12 read(ch); 13 for j:=1 to 2*n-i do 14 read(s[i,j]); 15 end; 16 fillchar(f,sizeof(f),0); 17 for i:=1 to n do 18 for j:=i to 2*n-i do 19 begin 20 if (j-i+1)mod 2<>0 then 21 begin 22 if s[i,j]='-' then 23 begin 24 if s[i-1,j]='-' then 25 f[i,j]:=min(f[i-1,j-1],f[i-1,j+1])+1 26 else f[i,j]:=1; 27 end; 28 end 29 end; 30 k:=0; 31 for i:=1 to n do 32 for j:=i to 2*n-i do 33 if k<f[i,j] then k:=f[i,j]; 34 for i:=1 to k do 35 l:=l+2*i-1; 36 write(l); 37 end.