hdu 5463(水水)

Sample Input
2 3 2 33 3 33 2 33 10 5 467 6 378 7 309 8 499 5 320 3 480 2 444 8 391 5 333 100 499
 
Sample Output
1 2 Hint: The first sample, we need to use 2 grids to store the materials of type 2 and 1 grid to store the materials of type 3. So we only need to transport once;


题意:有一个背包有36个格子  每个格子只能放一种物品,且最多只能放64个  问要多少次才能将物品运完


#include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
#include <set>
#include <map>
#include <string>
#include <math.h>
#include <stdlib.h>
#include <time.h>
using namespace std;
typedef long long ll;

int p[1000];
const int inf = 0x3f3f3f3f;
int main()
{
    int T,n,a,b;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d",&n);
        memset(p,0,sizeof(p));
        int tmax = 0;
        for(int i = 1;i <= n;i++)
        {
            scanf("%d%d",&a,&b);
            p[a] += b;
            if(tmax < a)
                tmax = a;
        }
        int ans = 0;
        for(int i = 1;i <= tmax;i++)
        {
            if(p[i])
            {
                ans += p[i]/64;
                if(p[i] % 64)
                    ans++;
            }
        }
        if(ans % 36)
        printf("%d
",ans/36 + 1);
        else
            printf("%d
",ans/36);
    }
    return 0;
}

  

原文地址:https://www.cnblogs.com/Przz/p/5409744.html