栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

poj 1964 City Game

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

poj 1964 City Game

#include <iostream>#include <cstdio>#include <cmath>#include <cstring>using namespace std;const int maxn = 1010;int t, n, m;int height[maxn], l[maxn], r[maxn];int dp();int main(){    scanf("%d", &t);    while(t-- != 0)    {        memset(height, 0, sizeof(height));        memset(l, 0, sizeof(l));        memset(r, 0, sizeof(r));        scanf("%d %d", &n, &m);        int maxv = 0;        for(int i = 1; i <= n; i++)        { for(int j = 1; j <= m; j++) {     char s[3];     scanf("%s", s);     if(s[0] == 'F')         height[j]++;     else         height[j] = 0; } int tmp = dp(); maxv = max(maxv, tmp);        }        printf("%dn", maxv * 3);    }    return 0;}int dp(){    l[0] = l[m+1] = r[0] = r[m+1] = -1;    for(int i = 1; i <= m; i++)    {        if(height[i] > 0)        { for(int j = i - 1; ; j = l[j]) {     if(height[j] < height[i])     {         l[i] = j;         break;     } }        }    }    for(int i = m; i >= 1; i--)    {        if(height[i] > 0)        { for(int j = i + 1; ; j = r[j]) {     if(height[j] < height[i])     {         r[i] = j;         break;     } }        }    }    int maxv = 0;    for(int i = 1; i <= m; i++)    {        if(height[i] > 0) maxv = max(maxv, (r[i] - l[i] - 1) * height[i]);    }    return maxv;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/374293.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号