HDU 5463

题意:一个盒子有36个格子、每个格子可以装64个物品,搬运一个箱子是一次搬运,问最少到搬运次数

思路:直接求总需要多少个格子,然后去求盒子,这里求盒子呢有个小技巧,就是用ceil函数

 1 #include<iostream>
 2 #include<cmath>
 3 #include<cstring>
 4 using namespace std;
 5 int num[10000];
 6 int main()
 7 {
 8     int t;cin >> t;
 9     while(t--)
10     {    
11         int n;cin >> n;
12         memset(num,0,sizeof(num));        //每次需要清零 、 
13         int mmax;
14         mmax=0;
15         for(int i=0;i<n;++i){
16             int a,b;cin >> a >> b;    
17             num[a]+=b;                 //统计每一个种类的总数、 
18             if(a>mmax)    mmax=a;        //记录最大的种类数字 、 
19         }
20         int tot=0;
21         for(int i=0;i<=mmax;++i){
22             if(num[i]!=0)
23                 tot+=ceil(1.0*num[i]/64);     
24         }
25         cout << ceil(1.0*tot/36) << endl;
26     }
27 }

ceil函数包含在头文件“cmath”,ceil(),括号里面要是实数,求是的大于等于这个实数的最大整数,很多想这类种类问题都可以用ceil函数来求解

原文地址:https://www.cnblogs.com/sasuke-/p/5170124.html