首页 > 其他 > 详细

HDU5463 Clarke and minecraft

时间:2015-09-21 10:28:05      阅读:268      评论:0      收藏:0      [点我收藏+]

解题思路:此题刚开始,觉得好繁琐,好混乱,理清思路后,发现很简单。

       具体见代码分析。

技术分享
 1 #include<cstdio>
 2 #include<cstring>
 3 #include<algorithm>
 4 using namespace std;
 5 const int maxn = 505;
 6 int hash1[maxn]; //标记对应类型总共出现了多少个。
 7 int main()
 8 {
 9     int t, n, a, b, sum, cnt;
10     scanf("%d", &t);
11     while(t--)
12     {
13         scanf("%d", &n);
14         memset(hash1, 0, sizeof(hash1));
15         while(n--)
16         {
17             scanf("%d %d", &a, &b);
18             hash1[a] += b; //hash1标记对应类型共出现多少个
19         }
20         sum = cnt = 0;
21         for(int i = 0; i <= 505; i++) //因为a和b的取值范围都为500
22         {
23             if(hash1[i]) //如果出现过
24             {
25                 sum += hash1[i]/64; //sum记录总共要装多少个格子
26                 if(hash1[i]%64) sum ++; //如果不能整除,则要多放一个格子
27                 cnt += sum/36, sum %= 36;//cnt记录总共要运多少次
28             }
29         }
30         if(sum) cnt ++; //如果sum没有整除,则要多运一次
31         printf("%d\n", cnt);
32     }
33     return 0;
34 }
View Code

 

HDU5463 Clarke and minecraft

原文:http://www.cnblogs.com/loveprincess/p/4825209.html

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