洛谷 1761 正方形

2021-06-18 20:15:13 字數 1039 閱讀 5971

有n個大小不一的正方形,現將它們依次以45度斜放入第一象限,每個正方形都要與x軸有乙個交點,且不能與之前放入的正方形重疊。在此前提下,正方形與x軸交點的座標應盡可能小。問這樣放置後,從上往下看,至少能部分被看見的正方形有哪些?

每個測試點包含多組測試資料。每個測試資料的第一行是乙個整數n,第二行是n個正整數,表示每個正方形的變長。輸入以一行單獨的0結束。

對於每個測試資料輸出一行,增序輸出至少可看到部分的正方形的編號,用空格隔開。

4

3 5 1 4

3 2 1 2

0

1 2 4

1 3

對於50%的資料,n<=10 ;

對於100%的資料,n<=50 正方形的大小不超過30。

大模擬題

一開始感覺太麻煩了 放乙個不僅由前乙個影響 還可能由前面的好幾個限制

而且實數還有誤差。。。。

導致模擬掛了。。。

後來聽大神們一講

只有3個數有用

左端點l  右端點r  與x軸交點x

x-l=r-x

不妨把邊長直接作為x-l   r-x

然後每次放在靠近x,y軸的地方 再向右移動

#include#include#include#include#include#includeusing namespace std;

int m,a,b,c,d,ans;

struct self s[55];

void findcover()

; for(a=1;a<=m;a++)

for(a=1;a<=m;a++)if(!cover[a])cout<>s[1].y;

s[1].x=s[1].y;

s[1].l=0;

s[1].r=s[1].x*2;

for(a=2;a<=m;a++)

findcover();

}return 0;

}

洛谷1387 最大正方形

在乙個n m的只包含0和1的矩陣裡找出乙個不包含0的最大正方形,輸出邊長。輸入格式 輸入檔案第一行為兩個整數n,m 1 n,m 100 接下來n行,每行m個數字,用空格隔開,0或1.乙個整數,最大正方形的邊長 輸入樣例 1 4 4 0 1 1 1 1 1 1 0 0 1 1 0 1 1 0 1 輸出...

洛谷習題 最大正方形

最近學oi有點過火,今早上愣是沒睡醒,上午的自習就沒有了!不過還是很開心,連a三道dp水題。這個題的話,思路比較清晰。我們想知道有沒有邊長為l的正方形,肯定要先知道有沒有邊長為l 1的正方形。我們列舉乙個正方形的左上角,然後搬著乙個邊長為l 1的正方形在四個角上跑,如果這四個角上的小正方形全是1,那...

洛谷 P1387 最大正方形

題目描述 在乙個n m的只包含0和1的矩陣裡找出乙個不包含0的最大正方形,輸出邊長。輸入輸出格式 輸入格式 輸入檔案第一行為兩個整數n,m 1 n,m 100 接下來n行,每行m個數字,用空格隔開,0或1.輸出格式 乙個整數,最大正方形的邊長 輸入輸出樣例 輸入樣例 1 4 4 0 1 1 1 1 ...