首页 / 算法 / 出口胡萝卜 (贪心加暴力算法)
出口胡萝卜 (贪心加暴力算法)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了出口胡萝卜 (贪心加暴力算法),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1690字,纯文字阅读大概需要3分钟。
内容图文
![出口胡萝卜 (贪心加暴力算法)](/upload/InfoBanner/zyjiaocheng/1321/116bf4404ae44fe2886629c0ffcc3802.jpg)
题目描述
终于,Nova君饲养的小兔子们成精了,他们可以帮着赚钱啦。春天,兔子们播下胡萝卜的种子;夏天,兔子们耕耘;秋天,兔子们收获硕大无比的胡萝卜;冬天,兔子们把胡萝卜包装好,远销海内外。现在问题来了,Nova君希望削减包装的运输的成本,因而要尽可能少的用包装箱。兔子们种植的胡萝卜很奇葩,他们的长度都为H,但粗细度不一致,为了方便,事先把胡萝卜风干并且切成规则的长方体,规格为AAH,H为长度,A为横切面的边长。假设胡萝卜只有1x1xH,2x2xH,3x3xH, 4x4xH, 5x5xH, 6x6xH这6种规格,通常使用一个 6x6xH的长方体包裹包装然后邮寄给客户。
输入
多组测试数组(组数少于100),对于每组数据,输入一行,为6个正整数(int范围内),分别代表规格为 1x1xH 至6x6xH 这六种胡萝卜的数量。
输出
对于每组数据,输出一行,为所需最少的包裹数。
输入样例
0 0 4 0 0 1
7 5 1 0 0 0
输出样例
2
1
题目来源:http://biancheng.love/contest/23/problem/C/index
解题思路:同样采用贪心算法,不过这次的贪心算法很麻烦,但是思路很清晰。(好比做高中数学题)
首先讨论一下我们应该先发哪一种萝卜。
电脑没电了,先给出代码。白天补上详解。
代码:
1 #include <bits/stdc++.h> 2 3usingnamespace std; 4int a[7]; 5 6int main() 7{ 8longlong ans; 9while(~scanf("%d%d%d%d%d%d",&a[1],&a[2],&a[3],&a[4],&a[5],&a[6])) 10 { 11 ans=a[6]; 12if(a[5]>0) 13 { 14 ans=ans+a[5]; 15 a[1]=a[1]-11*a[5]; 16 } 17if(a[4]>0) 18 { 19 ans=ans+a[4]; 20if(a[2]>5*a[4]) 21 a[2]=a[2]-5*a[4]; 22else23 { 24 a[1]=a[1]-(20*a[4]-4*a[2]); 25 a[2]=0; 26 } 27 } 28if(a[3]>0) 29 { 30if(a[3]%4==0) 31 ans=ans+a[3]/4; 32else33 { 34 ans=ans+a[3]/4+1; 35if(a[3]%4==1) 36 { 37if(a[2]>=5) 38 { 39 a[2]=a[2]-5; 40 a[1]=a[1]-7; 41 } 42else43 { 44 a[2]=0; 45 a[1]=a[1]-(27-4*a[2]); 46 } 47 } 48if(a[3]%4==2) 49 { 50if(a[2]>=3) 51 { 52 a[2]=a[2]-3; 53 a[1]=a[1]-6; 54 } 55else56 { 57 a[2]=0; 58 a[1]=a[1]-(18-4*a[2]); 59 } 60 } 61if(a[3]%4==3) 62 { 63if(a[2]>=1) 64 { 65 a[2]=a[2]-1; 66 a[1]=a[1]-5; 67 } 68else69 { 70 a[1]=a[1]-9; 71 } 72 } 73 } 74 } 75if(a[1]<0) a[1]=0; 76if((a[2]*4+a[1])%36==0) 77 ans=ans+(a[2]*4+a[1])/36; 78else79 ans=ans+(a[2]*4+a[1])/36+1; 80 printf("%lld\n",ans); 81 } 82 }
原文:http://www.cnblogs.com/zpfbuaa/p/5002071.html
内容总结
以上是互联网集市为您收集整理的出口胡萝卜 (贪心加暴力算法)全部内容,希望文章能够帮你解决出口胡萝卜 (贪心加暴力算法)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。