題解 Code[vs] P2491 玉蟾宮

P2491 玉蟾宮


時間限制: 1 s
空間限制: 64000 KB
題目等級 : 大師 Master


題目描述 Description

有一天丛晌,小貓rainbow和freda來到了湘西張家界的天門山玉蟾宮访敌,玉蟾宮宮主藍兔盛情地款待了它們菱属,并賜予它們一片土地。
這片土地被分成N*M個格子省咨,每個格子里寫著'R'或者'F',R代表這塊土地被賜予了rainbow,F(xiàn)代表這塊土地被賜予了freda鸣剪。
現(xiàn)在freda要在這里賣萌。。筐骇。它要找一塊矩形土地债鸡,要求這片土地都標著'F'并且面積最大。
但是rainbow和freda的OI水平都弱爆了铛纬,找不出這塊土地厌均,而藍兔也想看freda賣萌(她顯然是不會編程的……),所以它們決定告唆,如果你找到的土地面積為S棺弊,它們每人給你S兩銀子。

輸入描述 Input Description

第一行兩個整數(shù)N,M擒悬,表示矩形土地有N行M列模她。
接下來N行,每行M個用空格隔開的字符'F'或'R'懂牧,描述了矩形土地侈净。

輸出描述 Output Description

輸出一個整數(shù),表示你能得到多少銀子归苍,即(3*最大'F'矩形土地面積)的值用狱。

樣例輸入 Sample Input

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

樣例輸出 Sample Output

45

數(shù)據(jù)范圍及提示 Data Size & Hint

對于50%的數(shù)據(jù),1<=N,M<=200
對于100%的數(shù)據(jù)拼弃,1<=N,M<=1000

題解

如果用單純的暴力搜索夏伊,可得其復雜度為O(n^4),顯然是會TLE的吻氧,所以我們應用DP來優(yōu)化
網(wǎng)上有其他神犇用單調(diào)棧優(yōu)化的O(n3)做法溺忧,而顯然我這種蒟蒻是無法參透的,我在這里要講的是一種線性DP做法盯孙,優(yōu)化后復雜度O(n2)
首先我們對于每個標記為F的點(i,j)維護兩個數(shù)組l[i][j]和r[i][j]鲁森,l[i][j]表示(i,j)這個點向左擴展最遠能到達的點的列坐標-1,r[i][j]維護(i,j)這個點向右擴展最遠能到達的點的列坐標+1振惰,若該點被標記為R歌溉,則l[i][j]=0,r[i][j]=m+1
在這里我們計算面積的思路是每次算出以(i,j)點所在行為底的最大矩形面積骑晶,所以要再維護兩個數(shù)組L[i][j]和R[i][j]痛垛,表示該點所在矩形的底的左右端點的列坐標,h[i][j]維護該矩形高桶蛔,此時狀態(tài)轉(zhuǎn)移方程顯而易見:
L[i][j]=max(l[i][j]+1,L[i-1][j]);
R[i][j]=min(r[i][j]-1,R[i-1][j]);
h[i][j]=h[i-1][j]+1;
我們在維護一個ans初始值為0匙头,每次算出一個面積值,若大于ans則進行更新仔雷,最后直接輸出ans*3即可蹂析,代碼如下

C++代碼

/*
    Name:Toad Palace
    Copyright:Ricardo_Y_Li
    Author:Ricardo_Y_Li
    Date: 09/07/17 21:23
    Description:NULL
*/

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;

bool map[1010][1010];
int l[1010][1010],r[1010][1010];
int L[1010][1010],R[1010][1010],h[1010][1010];
int n,m,ans=0;

int main(){
    ios::sync_with_stdio(false);
    memset(map,0,sizeof(map));
    memset(h,0,sizeof(h));
    cin>>n>>m;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++){
            char c;
            cin>>c;
            if(c=='F')
                map[i][j]=1;
        }
    for(int i=1;i<=n;i++){
        int t=0;
        for(int j=1;j<=m;j++){
            if(map[i][j])
                l[i][j]=t;
            else{
                L[i][j]=0;
                t=j;
            }
        }
        t=m+1;
        for(int j=m;j>=1;j--){
            if(map[i][j])
                r[i][j]=t;
            else{
                R[i][j]=m+1;
                t=j;
            }
        }
    }
    for(int i=1;i<=m;i++){
        R[0][i]=m+1;
        L[0][i]=0;
    }
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++){
            if(map[i][j]){
            h[i][j]=h[i-1][j]+1;
            L[i][j]=max(l[i][j]+1,L[i-1][j]);
            R[i][j]=min(r[i][j]-1,R[i-1][j]);
            int s=(R[i][j]-L[i][j]+1)*h[i][j];
            if(ans<s)
                ans=s;
            }
        }
    cout<<ans*3;
    return 0;
}
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末舔示,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子电抚,更是在濱河造成了極大的恐慌惕稻,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件喻频,死亡現(xiàn)場離奇詭異缩宜,居然都是意外死亡,警方通過查閱死者的電腦和手機甥温,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進店門锻煌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人姻蚓,你說我怎么就攤上這事宋梧。” “怎么了狰挡?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵捂龄,是天一觀的道長。 經(jīng)常有香客問我加叁,道長倦沧,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任它匕,我火速辦了婚禮展融,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘豫柬。我一直安慰自己告希,他們只是感情好,可當我...
    茶點故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布烧给。 她就那樣靜靜地躺著燕偶,像睡著了一般。 火紅的嫁衣襯著肌膚如雪础嫡。 梳的紋絲不亂的頭發(fā)上指么,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天,我揣著相機與錄音榴鼎,去河邊找鬼涧尿。 笑死,一個胖子當著我的面吹牛檬贰,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播缺亮,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼翁涤,長吁一口氣:“原來是場噩夢啊……” “哼桥言!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起葵礼,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤号阿,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后鸳粉,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體扔涧,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年届谈,在試婚紗的時候發(fā)現(xiàn)自己被綠了枯夜。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡艰山,死狀恐怖湖雹,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情曙搬,我是刑警寧澤摔吏,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站纵装,受9級特大地震影響征讲,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜橡娄,卻給世界環(huán)境...
    茶點故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一诗箍、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸烹植。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽恩伺。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間俏让,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工茬暇, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留首昔,地道東北人。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓糙俗,卻偏偏與公主長得像勒奇,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子巧骚,可洞房花燭夜當晚...
    茶點故事閱讀 43,627評論 2 350

推薦閱讀更多精彩內(nèi)容

  • sì 支zhī茶chá 對duì 酒jiǔ赊颠,賦fù 對duì 詩shī格二,燕yàn子zi 對duì 鶯yīng 兒é...
    每個人的孟母堂閱讀 1,201評論 0 6
  • 一年級語文上冊生字表 生字表一(共400字) 啊(ā)愛(ài)安(ān)岸(àn)爸(bà)八(bā)巴(bā)...
    meychang閱讀 2,773評論 0 6
  • 姓名:彭萬紅 單位:廣東順創(chuàng)律師事務所 早讀日期:2017年11月1日,早讀第3天竣蹦,開始于2017年10月 30日...
    1b5f4a5ab414閱讀 121評論 0 0
  • 屯西劉福貴死了顶猜,死于急性腦出血。 事情來得突然痘括,劉家人完全沒有防備长窄,一時間忙亂不堪。不過這一家人老老小小的倒也沒有...
    冬妮婭閱讀 449評論 2 2