換抵擋裝置(Kickdown)

2022-06-08 11:48:12 字數 757 閱讀 5606

題目

給出兩個長度分別是 n1 , n2 (n1,n2<=100)且每列的高度只為1或2的長條。

需要將他們放入乙個高度為3的容器,問能容納他們的最短容器長度。

分析每組輸入兩行數,且只由1,2構成。然後上下兩排需要以最小長度咬合在一起,

不過可以1對1形成乙個空缺。然後求咬合後的總長度的最小值。

讀入時可以先用字串儲存,然後轉化為陣列。這樣可以方便運算同時利用字元陣列的

易寫入特性。

之後只需兩次二層迴圈遍歷即可(分別以其中一行為固定,另一行進行移動)。

不符合的條件為上下咬合後高度大於3.

c實現

#include#include

#define maxn 205

intmain()

for(int i=0;i)

//下面不動

inti,j;

for(i=0;i)

}if(j==lent)

}int ans1 = i+lentlent;

//上面不動

for(i=0;i)

}if(j==lenb)

} int ans2 = i+lenblenb;

printf(

"%d\n

",ans1 < ans2?ans1:ans2);

}return0;

}

UVa1588 Kickdown 換抵擋裝置

給出兩個長度分別為n1,n2且每列高度只為1或2的長條,需要將它們放入乙個高度為3的容器,求出能夠容納他們的最短容器長度。模擬插入,從第乙個介面開始插,如果不滿足條件就跳到下乙個介面,滿足條件時跳出函式輸出答案即可。includeusing namespace std int slo char a,...

換抵擋裝置

給出兩個長度為x,y且每列高度只為1或2的長條。需要將它們放入乙個高度為3的容器,求出能容納它們最短容器長度。每列高度只有1或2的意思是每個長條由1或2的單位小長條橫向排列而成,如果兩個長條上下扣的時候可以1,2全部或部分互補,總長就比較短,如果沒有,只能分開放。總體思路是採取將乙個較短的長條倒置,...

UVa 1588 換抵擋裝置

題目大意是說,兩個槽能夠插在一起,並保證每一列的高度不高於3,保證最短長度。思路很簡單,取短字串遍歷長字串的每乙個位置,紀錄下位置,並取最短即可。習題3 11 換抵擋裝置 void caculate17 else int minlen int strlen min arr int maxlen in...