#include<stdio.h>/*只能按这种形式排序单纯一种形式是不对的,按ai排序
20 2
1 1
10 20
按bi排序
20 2
5 17
1 16 都是不对的
二a.u+b.v得出的是先算a的需要的空间,a.v+b.u算出的是先算b所需要的空间
*/
#include<stdlib.h>
#define N 1100
typedef struct node {
int u,v;
}F;
F f[N];
int cmp(const void *a,const void *b) {if((*(F *)a).u+(*(F *)b).v!=(*(F *)a).v+(*(F *)b).u)return (*(F *)a).u+(*(F *)b).v>(*(F *)a).v+(*(F *)b).u?1:-1;return 0;
}
int main() {int n,m,i,t;scanf("%d",&t);while(t--) {scanf("%d%d",&n,&m);for(i=0;i<m;i++)scanf("%d%d",&f[i].u,&f[i].v);qsort(f,m,sizeof(f[0]),cmp);for(i=0;i<m;i++) {if(n>=f[i].v)n-=f[i].u;elsebreak;}if(i==m)printf("Yes\n");elseprintf("No\n");}
return 0;
}
转载于:https://www.cnblogs.com/thefirstfeeling/p/4410715.html