HDU 5463 Clarke and minecraft(模拟)

来源:互联网 发布:写一个动态数组模板类 编辑:程序博客网 时间:2024/04/29 17:58

题目地址:点击打开链接

题意:一个人要背一个包把散在地上的材料从A地帮到B地,他的包有36格子,每个格子只能放一种材料,一个格子最多能放64个材料,问他得搬东西从A地到B地几次

思路:把相同的材料放的一块,然后往背包里放就行了,36个格子满了他就得搬一次

AC代码:

#include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <queue>#include <stack>#include <map>#include <cstring>#include <climits>#include <cmath>using namespace std;int a[510];int main(){    int t,n,i;    int kind,num;    scanf("%d",&t);    while(t--)    {        memset(a,0,sizeof(a));        scanf("%d",&n);        for(i=0; i<n; i++)        {            scanf("%d%d",&kind,&num);            a[kind] += num;        }        int sum = 0;        for(i=1; i<=500; i++)        {            a[i] % 64 == 0 ? sum += a[i] / 64 : sum += a[i] / 64 + 1;        }        sum % 36 == 0 ? printf("%d\n",sum/36) : printf("%d\n",sum/36+1);    }    return 0;}


0 0