1 #include <cstdio>
2 #include <cstring>
3 int a[205];//a[i]表示体重为i的人的个数
4 int main(){
5 int s,w,n,x;
6 scanf("%d",&s);
7 while(s--){
8 scanf("%d%d",&w,&n);
9 for(int i = 0; i < n; ++i){
10 scanf("%d",&x);
11 ++a[x];
12 }
13 int t = w, ans = 0, count = 0;//t表示船剩余可承载量,ans记录船只数,count记录船上人数
14 while(n){
15 int i;
16 for(i = t; i; --i)
17 if(a[i]){
18 if(t < i) continue;//可承载量不足,找更轻的人
19 if(t == w) ++ans;
20 --n; --a[i];
21 ++count;
22 t -= i;
23 break;
24 }
25 if(!i || !t || count == 2) { t = w; count = 0; }
26 //在满足条件内找不到人,或者刚好装满,或者装够两个人,使用新船只,更新相关变量
27 }
28 printf("%d\n",ans);
29 memset(a,0,sizeof(a));
30 }
31 return 0;
32 }