hdu1505 dp

 //Accepted    5196 KB    109 ms
 //类似hdu1506
 //输入数据的格式没有明确的限制
 //可能出现以下情况
 //5 5
 //R
 //F
 //F F F
 //F F F F F
 //R R R
 //R R
 //R F R F R
 //R R R R R
 #include <cstdio>
 #include <cstring>
 #include <iostream>
 using namespace std;
 ;
 bool map[imax_n][imax_n];
 int a[imax_n][imax_n];
 int l[imax_n],r[imax_n];
 int n,m;
 void getA()
 {
     ;i<=n;i++)
     {
         ;j<=m;j++)
         {
             a[i][j]=;
             int t=i;
              && map[t][j]==)
             {
                 a[i][j]++;
                 t--;
             }
         }
     }
    // for (int i=1;i<=n;i++)
     //{
     //    for (int j=1;j<=m;j++)
     //    printf("%d ",a[i][j]);
     //    printf("\n");
     //}
 }
 void Dp()
 {
     getA();
     ;
     ;i<=n;i++)
     {
         l[]=;
         a[i][]=-;
         ;j<=m;j++)
         {
             int t=j;
             ])
             {
                 t=l[t-];
             }
             l[j]=t;
         }
         r[m]=m;
         a[i][m+]=-;
         ;j>=;j--)
         {
             int t=j;
             ])
             {
                 t=r[t+];
             }
             r[j]=t;
         }
         ;j<=m;j++)
         )>ans)
         ans=a[i][j]*(r[j]-l[j]+);
     }
     printf(*ans);
 }
 ];
 int main()
 {
     int T;
     while (scanf("%d",&T)!=EOF)
     {
         while (T--)
         {
             scanf("%d%d",&n,&m);
             ;i<=n;i++)
             {
                 ;j<=m;j++)
                 {
                     scanf("%s",s);
                     ]=='F')
                     map[i][j]=;
                     else
                     map[i][j]=;
                 }
             }
         //for (int i=1;i<=n;i++)
         //{
          //   for (int j=1;j<=m;j++)
          //   printf("%d",map[i][j]);
          //   printf("\n");
         //}
             Dp();
         }
     }
     ;
 }
上一篇:python之目录文件操作


下一篇:python SocketServer 源码分析