1210 舞台設定

2021-09-28 11:17:26 字數 1664 閱讀 1675

遊樂園決定在乙個n×m的廣場上舉辦一次頒獎晚會,總管要你幫忙搭建乙個舞台。

現在給你廣場的布置圖(規定地圖的上方為正北),有些位置需要布置為觀眾席(記為1),另一些是空地(記為0)。舞台只能在空地上搭建。

為了使晚會更加吸引人,平平覺得舞台應該是朝北的h—金字塔形。h—金字塔形舞台是由h個矩形舞台相接而成的,其中後方的矩形舞台的兩端必須超出在其前面的矩形舞台,且最小矩形面對的朝向為舞台的方向。下面給出幾個例項:

舞台的面積應該盡量大,輸出面積最大的朝北h—金字塔形舞台的面積。

第一行3個整數 n、m、h。

接下來n行,每行m個0或1,中間用乙個空格隔開。

乙個整數,表示最大的朝北的h—金字塔形舞台的面積。

如果沒有符合題意的h—金字塔形舞台輸出0。

4 6 2

0 0 1 0 0 1

0 0 0 0 0 0

0 0 1 0 0 0

0 1 1 0 0 0

10
樣例對應的最優方案如下圖:

×表示觀眾席

【資料規模和約定】

對於10%的資料 h=1;

對於40%的資料 h≤5;

對於100%的資料 h≤20;

對於100%的資料 n、m≤100。

dp。設f[ i ][ l ][ r ][ s ]表示帶第i行,選了l~r的範圍作為金字塔的第s層的最大面積。

2.新建一層:f[ i ][ l ][ r ][ s ]=f[ i-1 ][ l+1~r ][ l~r-1 ][ s-1 ]+r-l+1。

時間o(nm^3h)。

優化:邊做邊處理處g[ i ][ l ][ r ][ s ]表示到第i行,左端點大於l,右端點小於r,做了s層的金字塔的最大面積。

g[ i ][ l ][ r ][ s ]=max

複雜度o(nm^2h)。

空間複雜度(nm^2h)。

開滾動陣列——>(m^2h)。

#include#include#include#define i int

#define ll long long

#define f(i,a,b) for(i i=a;i<=b;++i)

#define fd(i,a,b) for(i i=a;i>=b;--i)

#define mem(a,b) memset(a,b,sizeof(a))

#define n 110

using namespace std;

i rd(i &x)

while(c>='0'&&c<='9')

x*=w;

}i n,m,h,a[n][n],f[2][n][n][21],g[2][n][n][21],ans,p=0;

i main()

} f(i,1,n)

else f[p][l][r][s]=0;}}

} }printf("%d\n",ans);

return 0;

}

珍惜這個舞台。。。

16張黃牌4張紅牌,結束了這場近似瘋狂的比賽。葡萄牙人,踏過了荷蘭人。下一場他們將面對球踢的醜陋的令人髮指的英格蘭。世界盃是乙個舞台。每乙個球員,教練,國家隊,都在這個舞台上上演自己足球生涯中最重要的表演。但表演是乙個團隊的專案,當某個人通過瘋狂的演出毀掉了這場演出時,他對不起台上所有的人,也對不起...

12 10每日部落格

今天記錄一下我在使用layui元件中的 的時候遇到的問題,就是如何將mysql讀取到的資料顯示在 元件中的url指向的就可以是後台的servlet,然後servlet向前臺傳遞的是乙個json資料,並且要按照官網中的案例進行返回,不然前台的介面無法載入資料並且會提示介面異常。這裡的json是 net...

人生舞台與理想

從小到大,人生舞台都是已經被設計好的。學生時代,人生舞台在校園,那個時代,我們讀書,考試,接著選擇學校,再迴圈 讀書,考試,再選擇學校。工薪時代,人生的舞台已經在工作單位,這個時代,我們被面試,工作,跳槽或公升遷,再迴圈 被面試,工作,跳槽或公升遷。本來,舞台有多大,理想就有多大,隨著舞台變大,變高...