poj之旅——1017

来源:互联网 发布:淘宝刷单一单的价格 编辑:程序博客网 时间:2024/05/22 12:38

题目描述:有 1 * 1 到 6 * 6 的产品,最少用几个 6 * 6 的箱子装它们。

题解:贪心策略是先装大的,再装小的,6 * 6 和 5 * 5 以及 4 * 4 肯定独享一个箱子(不可能再放得下同规格的产品)。装了 4 * 4 和 3 * 3 的箱子还可以放 2 * 2 的产品,给几张图,可以看得更清晰:


参考程序:

#include<cstdio>#include<algorithm>#include<iostream>#include<cstdlib>#include<cmath>using namespace std;int main(){int p1,p2,p3,p4,p5,p6;int spa[4]={0,5,3,1};while ((scanf("%d%d%d%d%d%d",&p1,&p2,&p3,&p4,&p5,&p6)==6) && (p1 || p2 || p3 || p4 || p5 || p6)){int ans=p4+p5+p6+(p3+3)/4,free=5*p4+spa[p3 % 4];if (p2>free) ans+=(p2-free+8)/9;free=36*ans-36*p6-25*p5-16*p4-9*p3-4*p2;    if (p1>free) ans+=(p1-free+35)/36;printf("%d\n",ans);}return 0;}

//图片转自hankcs的博客

0 0
原创粉丝点击