首页 > 其他 > 详细

POJ 1017 Packets(装箱问题)

时间:2021-01-21 09:27:10      阅读:25      评论:0      收藏:0      [点我收藏+]

按照依次逻辑顺序,从大到小装,不够加箱。

技术分享图片
 1 #include <iostream>
 2 using namespace std;
 3 
 4 int main() {
 5     int s1, s2, s3, s4, s5, s6;
 6     while (cin >> s1 >> s2 >> s3 >> s4 >> s5 >> s6) {
 7         if (s1 + s2 + s3 + s4 + s5 + s6 == 0) break;
 8         int ans = s6 + s5 + s4 + s3 / 4;
 9         s3 = s3 % 4;  // 4个3*3构成1个6*6
10         int c1 = s5 * 11, c2 = s4 * 5;
11         if (s3 == 3) ans++, c2 += 1, c1 += 5;
12         else if (s3 == 2) ans++, c2 += 3, c1 += 6;
13         else if (s3 == 1) ans++, c2 += 5, c1 += 7;
14         if (s2 > c2) {
15             ans = ans + (s2 - c2) / 9;
16             int p = (s2 - c2) % 9;
17             if (p != 0) ans++, c1 = c1 + (9 - p) * 4;
18         } else {
19             c1 = c1 + (c2 - s2) * 4;
20         }
21         if (s1 > c1) {
22             ans = ans + (s1 - c1) / 36;
23             int p = (s1 - c1) % 36;
24             if (p) ans++;
25         }
26         cout << ans << endl;
27     }
28     return 0;
29 }
View Code

 

POJ 1017 Packets(装箱问题)

原文:https://www.cnblogs.com/pavtlly/p/14305897.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!