码迷,mamicode.com
首页 > 其他好文 > 详细

HDU5463 Clarke and minecraft

时间:2015-09-21 10:28:28      阅读:196      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!