poj1017(一般貪心,容器類)

2021-07-23 23:08:05 字數 827 閱讀 1875

/*

translation:

有6*6的箱子,以及1*1,2*2,3*3,4*4,5*5,6*6的產品若干。要把這些產品全部裝進箱子,求能用到的箱子的最小個數?

solution:

貪心加上模擬,具體做法見**注釋。

note:

# 開始想法是乙個箱子乙個箱子地裝,每次從大到小拿出產品放進去。想法沒錯,但是怎樣判斷當前產品能否裝進去就成了

問題。後來採取網上的做法,從大到小一次性把當前產品全部裝完,而不是乙個個箱子地裝!同時每裝完一種產品後,用

1*1,2*2的產品對空隙補充,同時更新ans。

* 這類「可能裝不滿的容器問題」可以採用此題的方法解決。

date:

2016.10.23

*/#include #include #include using namespace std;

int p[10];

int main()

else p[2] = max(0, p[2] - 5*p[4]);

ans += p[3]/4; //3*3的4個剛好一箱

p[3] = p[3] % 4;

if(p[3]) ans++;

if(p[3] == 3) //餘下有幾個p[3],分別處理一下

else if(p[3] == 2)

else if(p[3] == 1)

if(p[2]) //如果p[2],p[1]還有剩餘就直接填充

if(p[1])

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

} return 0;

}

POJ 1017 貪心模擬

因為4 4,5 5,6 6的必須單獨放,所以先開闢這三個的盒子,然後往裡面新增1 1和2 2的 對於5 5的只能填1 1的,乙個已經塞了5 5的盒子可以填11個1 1的格仔 對於4 4的,先填2 2的,再填1 1的 然後再為3 3的開闢新盒子,每四個可以放乙個盒子,不足四個的再新開闢乙個,然後往裡面...

貪心 模擬 poj 1017

題目大意 有1 1,2 2,3 3,4 4,5 5,6 6的產品若干個,問最少需要用多少個6 6的包裝盒把所有的產品都裝好。解題思路一 顯然6 6,5 5,4 4的產品每次只能放乙個,且放完後只能放1 1的產品。對於3 3的格仔,設定陣列lim i j 表示放了i個j j的產品後最多還能放多少個2 ...

POJ 1017 裝箱問題(貪心)

大意是只有6 6規格的箱子來裝 雖然是描述三維的,但因為高度相同,因此忽略掉 給你若干個從1 1到6 6規格的箱子,求所需最小箱子數。思路 很明顯應該利用貪心,即優先從最大規格的箱子數來考慮,然後因為在裝完較大規格的箱子後,該箱子可以存在剩餘空間,所以仍應該利用,且仍舊優先裝較小規格中較大的箱子。6...