HDU CityGame用java一直wa,求解答下。

发布于 2022-09-06 15:51:47 字数 1730 浏览 24 评论 0

import java.io.BufferedInputStream;
import java.util.Arrays;
import java.util.Scanner;


public class Main {
    final static int N = 1010;//
//    static float [] dp = new float [N];
    static int [] height = new int [N];
    static int [] l = new int [N];
    static int [] r= new int [N];
//    static float per[]=new float [N+1];
    public static void main(String args[])
    {
        Scanner in = new Scanner(new BufferedInputStream(System.in));
        int times=in.nextInt();
        while(times!=0)
        {
            int m,n,i,res=0;
            char [] s=new char[3];
            m=in.nextInt();
            n=in.nextInt();
            Arrays.fill(height, 0);
            for(int row=1;row<=m;row++)
            {
                for(int col=1;col<=n;col++)
                {
                    s=in.next().toCharArray();
                    if(s[0]=='F')
                        height[col]++;
                    else {
                        height[col]=0;
                    }
                }
                for(i=1;i<=n;i++)
                {
                    l[i]=i;
                    while(l[i]-1>=1&&height[l[i]-1]>=height[i])
                        l[i]=l[l[i]-1];
                }
                for(i=n;i>=1;i--)
                {
                    r[i]=i;
                    while(r[i]+1<=n&&height[r[i]+1]>=height[i])
                        r[i]=r[r[i]+1];
                }
                res=-1;
                for(i=1;i<=n;i++)
                    res=Math.max(res, (r[i]-l[i]+1)*height[i]);
            }
            System.out.println(3*res);
            times--;
        }
            
    }
}

代码如上

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

謸气贵蔟 2022-09-13 15:51:47

自问自答,结束

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文