題意:
有一些1*1*1的單位正方體積木,現在要擺積木,每一塊積木有兩種方法,要麼放在地面上,要麼放在別的積木的正上方,現在給你擺好積木的正面圖和側面圖,問你最少用了多少塊積木。
思路:比較有意思也比較容易想到,而且題目中給的幾個圖看完估計就能想到怎麼做了,光看文字的時候第一組測試資料我都沒模擬過去,哎!看完圖會發現乙個問題,假如我們看正面圖,我們看到的是一組連續的,但是在實際情況下他們有可能不連續,我說的不連續是指前後的不連續,至於是什麼順序,可以使任意順序,任意順序?越亂的東西越要簡單想,那麼也就是說我們根本不用考慮他的順序,我們只要根據最優解隨意改變他的順序就行了,怎麼樣才是最優?題目要求是少的積木,那麼首先正面的這些全要有,側面呢?能沒有就沒有,怎麼樣才能沒有呢?只有正面出現乙個和他等高的,那麼我們就直接用那個等高的去替換他就行了,但是注意一點,乙個只能替換乙個,如果沒得替換的,那麼就把當前高度加到答案裡就行了,還有這個題目用誰去替換誰答案都是一樣的,因為正檢視和側檢視本來就是相對而言的。
#include
#include
int main ()
for(i = 1 ;i <= m ;i ++)
printf("%d\n" ,ans);
}return 0;
}