【ACM】Crixalis's Equipment
2013-12-08 20:59
225 查看
#include "stdio.h" #include "stdlib.h" /* 贪心算法: Ai->x 表示第i个物品的体积 Ai->y 表示第i个物品移动所需要的空间大小 前提:所有物品的移动空间都不大于容积V Ai->x + A(i+1)->y 表示先移动第一个物品 再移动第二个物品所需要的瞬时最大空间大小 for example : V = 10 x y 2 10 8 5 2+5 < 8+10 所以第一个物品先搬动 */ typedef struct stuff { int x; int y; }stuff; int cmp( const void * a, const void *b ) { int t; stuff * x = (stuff *) a; stuff * y = (stuff *) b; if( x->x != y->x ) { t = ( ( x->x + y->y ) > ( y->x + x->y ) ? 1 : -1); } else { t = ( x->y < y->y ? 1 : -1 ); } return t; } int main(int argc, char* argv[]) { int t; int v,n; stuff e[1000]; int i; int flag; while( scanf( "%d" , &t ) != EOF ) { while( t-- ) { flag = 0; scanf( "%d%d", &v , &n); for( i = 0 ; i < n ; i++ ) { scanf( "%d %d" , &e[i].x , &e[i].y ) ; } qsort(e,n,sizeof(e[0]),cmp); for( i = 0 ; i < n ; i++ ) { if( v >= e[i].x && v >= e[i].y) { v-=e[i].x; } else { flag = 1 ; break; } } if( flag == 0 ) printf( "Yes\n" ); else printf ( "No\n" ); } } return 0; }
相关文章推荐
- HDOJ-Crixalis's Equipment
- 杭电ACM--2001计算两点间的距离
- ACM 房间安排
- CSU 1111-ACM
- HDU 5952 Counting Cliques 【DFS+剪枝】 (2016ACM/ICPC亚洲区沈阳站)
- 杭电ACM 第2013题
- 杭电ACM--2012素数判定
- [ACM] hdu 1521 排列组合(指数型母函数)
- ACM我来了
- HDU 5954 Do not pour out 积分 二分 — 2016ACM-ICPC亚洲区沈阳站
- 杭电ACM 第2030题
- [ACM_ZJUT_1021]ACMICPC(暴力破解VS动态规划)
- Codeforces Round #240 (Div. 2) D. Mashmokh and ACM
- 杭电ACM题目分类
- 【ACM】冒泡排序
- 杭电ACM 第2048题
- ACM中队员的合作策略
- ACM中国国家集训队论文集目录(1999-2009)
- 2015ACM四川省赛C题
- 2016ACM/ICPC亚洲区大连站-重现赛(感谢大连海事大学)(7/10)