题意:给出你n个材料,这个人的背包有36个格子、每个格子最多装一种材料64个、 n行给出你每个材料的种类和属性、让你求最少要来回几次、
思路:简单的模拟,有点贪心的意思、
AC代码:
#include<cstdio>
#include<cstring>
const int maxn=1100;
int T;
int n,m,r;
int vis[maxn];
int main()
{
scanf("%d",&T);
while(T--){
scanf("%d",&n);
memset(vis,0,sizeof(vis));
int ans=0;
for(int i=0;i<n;i++){
scanf("%d %d",&r,&m);
vis[r]+=m;
}
for(int i=0;i<=500;i++){
if(vis[i]>0){
if(vis[i]%64==0){
ans+=vis[i]/64;
}
else{
ans+=vis[i]/64+1;
}
}
}
if(!ans%36)
printf("%d\n",ans/36);
else
printf("%d\n",ans/36+1);
}
return 0;
}