博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

ACM_ICPC hdu-2111(简单贪心算法)

Posted on 2015-10-26 19:46  梦茴初夏  阅读(383)  评论(0编辑  收藏  举报
一道非常简单的贪心算法,但是要注意输入的价值是单位体积的价值,并不是这个物品的总价值!
#include <iostream> #include <stdio.h> #include <algorithm> using namespace std; struct CT{ int pi; int mi; }; int cmp( CT p1 , CT p2 ){ return p1.pi > p2.pi ; } int main() { int sum , V , n ; struct CT ct[110]; while(scanf("%d" , &V)&& V != 0){ scanf("%d",&n); for( int i = 0 ; i < n ; i++ ){ scanf("%d%d" , &ct[i].pi , &ct[i].mi ); } sort(ct , ct+n , cmp ); int flog = 1 ; sum = 0 ; for( int i = 0 ; i < n ; i++ ){ for( int j = 1 ; j <= ct[i].mi ; j++ ){ V-=1; sum+=ct[i].pi; if(V == 0){ flog = 0; break; } } if(flog == 0) break; } printf("%d\n",sum); } return 0; }