poj1017 Packets

本文介绍了一个关于不同大小木块如何装入最少数量箱子的问题,并通过贪心算法进行解决。给出了详细的实现代码,包括如何计算不同大小木块的最优放置方案。

参考了http://www.cnblogs.com/mycapple/archive/2012/08/23/2652070.html

思路:

贪心。

实现:

 1 #include <iostream>
 2 #include <cstdio>
 3 using namespace std;
 4 
 5 int main()
 6 {
 7     int b1, b2, b3, b4, b5, b6; //不同大小的木块个数
 8     int nTotal = 0;             //最少需要的箱子数目
 9     int c1;                        //当前能放 1*1 木块的空格数目
10     int c2;                        //当前能放 2*2 木块的空格数目
11     int Contain2[4] = { 0, 5, 3, 1 }; //记录被3*3的占用之后,还剩多少给2*2的使用  
12     while (cin >> b1 >> b2 >> b3 >> b4 >> b5 >> b6, b1 || b2 || b3 || b4 || b5 || b6)
13     {
14         nTotal = b6 + b5 + b4 + (b3 + 3) / 4; //只能装1个6*6的,1个5*5的,1个4*4的,
15                                               //而3*3的需要多情况考虑,3*3的需要向上调整
16                                               //这里有一个小技巧 (b3+3)/4 
17                                               //正好等于b3除以4向上取整的结果,下同 
18         c2 = 5 * b4 + Contain2[b3 % 4]; //放2*2的数目等于放一个4*4时需要5个2*2加上
19                                         //放1到4个3*3时各需要的数目 ,即还可以装多少个2*2的  
20         if (b2 > c2)    
21             nTotal += (b2 - c2 + 8) / 9;  //向上调整 ,总的2*2的个数减去装过的2*2的个数,
22                                           //得到剩余的2*2的个数,
23                                           //此个数加上8然后除以9就正好等于它除以9向上取整的结果,
24                                           //之所以总数要加上这个数是由于若单独装2*2,可以装9个
25         c1 = 36 * nTotal - 36 * b6 - 25 * b5 - 16 * b4 - 9 * b3 - 4 * b2; //还可以装多少个1*1的 
26         if (b1 > c1)    
27             nTotal += (b1 - c1 + 35) / 36; //向上调整,总的1*1的个数减去装过的1*1的个数,
28                                            //得到剩余的1*1的个数,
29                                            //此个数加上35然后除以36就正好等于它除以36向上取整的结果
30                                            //之所以总数要加上这个数是由于若单独装1*1,可以装36个
31         cout << nTotal << endl;
32     }
33     return 0;
34 }

 

转载于:https://www.cnblogs.com/wangyiming/p/6589746.html

在车辆工程中,悬架系统的性能评估和优化一直是研究的热点。悬架不仅关乎车辆的乘坐舒适性,还直接影响到车辆的操控性和稳定性。为了深入理解悬架的动态行为,研究人员经常使用“二自由度悬架模型”来简化分析,并运用“传递函数”这一数学工具来描述悬架系统的动态特性。 二自由度悬架模型将复杂的车辆系统简化为两个独立的部分:车轮和车身。这种简化模型能够较准确地模拟出车辆在垂直方向上的运动行为,同时忽略了侧向和纵向的动态影响,这使得工程师能够更加专注于分析与优化与垂直动态相关的性能指标。 传递函数作为控制系统理论中的一种工具,能够描述系统输入和输出之间的关系。在悬架系统中,传递函数特别重要,因为它能够反映出路面不平度如何被悬架系统转化为车内乘员感受到的振动。通过传递函数,我们可以得到一个频率域上的表达式,从中分析出悬架系统的关键动态特性,如系统的振幅衰减特性和共振频率等。 在实际应用中,工程师通过使用MATLAB这类数学软件,建立双质量悬架的数学模型。模型中的参数包括车轮质量、车身质量、弹簧刚度以及阻尼系数等。通过编程求解,工程师可以得到悬架系统的传递函数,并据此绘制出传递函数曲线。这为评估悬架性能提供了一个直观的工具,使工程师能够了解悬架在不同频率激励下的响应情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值