hdu 2570 贪心
贪心的经典题型
该死的精度问题,WA了好几次,以后能用乘的绝不用除!!
#include<iostream> #include<algorithm> #include<cstdio> using namespace std; int main(){ int n,v,w,k,i; int p[111],t[111]; cin>>k; while(k--){ cin>>n>>v>>w; for(i=0;i<n;i++) scanf("%d",p+i); sort(p,p+n); t[0]=p[0]*100; //保留两位小数点 w*=100; int d=0,kk=1,flag=0; for(i=1;i<n;i++){ t[i]=t[i-1]+p[i]*100; //本来是 t[i]=(t[i-1]+p[i]*100)/(kk+1); 一直WA if(t[i]<=w*(kk+1)){ //改成 w*(kk+1) 就过了 flag=1; kk=i+1; d=i; } } if(!flag && t[0]>w) cout<<"0 0.00"<<endl; else printf("%d %.2f\n",kk*v,(double) t[d]/(kk*10000.0)); } return 0; }
作者:pngcui
博客园:http://www.cnblogs.com/pngcui/
github:https://github.com/pngcui
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明。