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.   
posted @ 2012-10-18 08:59  改名字干什么  阅读(181)  评论(0编辑  收藏  举报