因為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的開闢新盒子,每四個可以放乙個盒子,不足四個的再新開闢乙個,然後往裡面塞1*1和2*2的,同理也是先塞2*2的;
如果新開闢了乙個盒子裡面只有乙個3*3的,可以塞5個2*2的,注意一下就行了;
然後2*2的開闢,塞1*1的;
最後再為1*1的開闢空間即可;
#include#include#include#include#includeusing namespace std;
typedef long long ll;
const int inf=0x3f3f3f3f;
const double epos=1e-8;
int main()
else if(h==2)
else if(h==1)
}//為2*2的開闢空間,塞1*1的;
t=b/9;
res+=t;
if(t*9!=b)
//最後為1*1的開闢;
t=a/36;
res+=t;
if(t*36!=a)
++res;
printf("%d\n",res);
}return 0;
}
貪心 模擬 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...
poj1017 貪心 思維 好題
題意 運輸公司有6種規格的物品各若干件 1 1 2 2,3 3 4 4,5 5,6 6的,這六種物品都要放在6 6的箱子裡運輸,讓你求出最少用多少個箱子。解題思路 有兩種方法來做,第一種特別繁瑣,也是最直接的解決方式,那就是根據常識來貪心並模擬,量很大,另一種和這個貪心乙個思路,實現的時候非常簡便,...