zoukankan      html  css  js  c++  java
  • 【ACM】Crixalis's Equipment

    1

    #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
    " ); else printf ( "No
    " );	
    		}
    	
    	}
    	return 0;
    }
  • 相关阅读:
    线程的中断.interrupt
    线程的加入.join()
    Runnable接口
    线程Thread类
    求和、均值
    最值、对应索引位置
    数组、冒泡排序
    获取Methods成员方法类
    获取Field成员变量类
    基于WinDbg的内存泄漏分析
  • 原文地址:https://www.cnblogs.com/hInstance/p/3464255.html
Copyright © 2011-2022 走看看