有n個大小不一的正方形,現將它們依次以45度斜放入第一象限,每個正方形都要與x軸有乙個交點,且不能與之前放入的正方形重疊。在此前提下,正方形與x軸交點的座標應盡可能小。問這樣放置後,從上往下看,至少能部分被看見的正方形有哪些?
每個測試點包含多組測試資料。每個測試資料的第一行是乙個整數n,第二行是n個正整數,表示每個正方形的變長。輸入以一行單獨的0結束。
對於每個測試資料輸出一行,增序輸出至少可看到部分的正方形的編號,用空格隔開。
43 5 1 4
3 2 1 2
0
1 2 41 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 ...