奋战杭电ACM(DAY5)1009

来源:互联网 发布:软件安全漏洞检测技术 编辑:程序博客网 时间:2024/05/17 04:42

又干了一题,今天感觉不错呀!大笑再接再厉!晚上继续!!奋斗

不知不觉原来用到了昨天看的贪心算法~~~用了才知道这个算法就是贪心,看来还不熟练,继续加油练习!!

FatMouse' Trade

#include <iostream>#include <iomanip>using namespace std;int main(){int M,N,i,k;double javabean,tmp;while(cin >> M >> N){if(M==-1 && N==-1)break;else{   javabean=0;double *p= new double[N];int *j= new int[N];int *f= new int[N];for(i=0; i<N; i++){cin >> j[i] >> f[i];if(f[i]==0){javabean+=j[i];p[i]=0;}elsep[i]=(double)(j[i])/f[i];}for(i=0; i<N-1; i++){for(k=i+1; k<N; k++)if(p[i]<p[k]){tmp=p[i]; p[i]=p[k]; p[k]=tmp;tmp=j[i]; j[i]=j[k]; j[k]=tmp;tmp=f[i]; f[i]=f[k]; f[k]=tmp;}}for(i=0; M>0 && i<N; i++){if(M>=f[i]){javabean += j[i];M -=f[i];}else{javabean += M*p[i];M=0;}}cout << setiosflags(ios::fixed) << setprecision(3) << javabean << endl;}}return 0;}


原创粉丝点击