| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 302 人关注过本帖
标题:杭电的1505最大矩形问题题,我怎么AC不过啊!!
只看楼主 加入收藏
好孩子好宝贝
Rank: 1
等 级:新手上路
帖 子:35
专家分:2
注 册:2011-7-26
结帖率:87.5%
收藏
 问题点数:0 回复次数:0 
杭电的1505最大矩形问题题,我怎么AC不过啊!!
Sample Input
2
5 6
R F F F F F
F F F F F F
R R R F F F
F F F F F F
F F F F F F

5 5
R R R R R
R R R R R
R R R R R
R R R R R
R R R R R


Sample Output
45
0


求最大的F的矩形,再在最大矩形里面的F数乘3,就是最后的结果。。。
我的代码:求解释。。。为什么通不过。。。。
#include<stdio.h>
#include<string.h>
#define T 1010
double map[T][T],max;
int R,M,N,r[T],l[T];

void make_set()
{
    int i;
    for(i=0;i<=N+1;i++)
    {
        l[i]=i;
        r[i]=i;
    }
}
int main()
{
    int i,j;
    char t;
    scanf("%d",&R);
    while(R--)
    {
        scanf("%d%d",&N,&M);
        memset(map,0,sizeof(map));
        t=getchar();                      //接受回车。
        for(i=1;i<=N;i++)
        {
            for(j=1;j<=M;j++)
            {
                scanf("%c",&t);
                if(t=='F') map[i][j]=map[i][j-1]+1;
                t=getchar();             //接受空格和回车。
            }
        }
        max=0;
        for(i=1;i<=M;i++)
        {   
            make_set();
            for(j=1;j<=N;j++)
                while( map[j][i]!=0 && map[l[j]-1][i]>=map[j][i])
                    l[j]=l[l[j]-1];
            for(j=N;j>=1;j--)
                while( map[j][i]!=0 && map[r[j]+1][i]>=map[j][i] )
                    r[j]=r[r[j]+1];
            for(j=1;j<=N;j++)
                max=max>map[j][i]*(r[j]-l[j]+1)?max:map[j][i]*(r[j]-l[j]+1);
        }
        printf("%.0lf\n",3*max);
    }
    return 0;
}
搜索更多相关主题的帖子: 最大的 include 
2011-08-18 13:47
快速回复:杭电的1505最大矩形问题题,我怎么AC不过啊!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020637 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved