hdu-2187

来源:互联网 发布:pi数据库 api 编辑:程序博客网 时间:2024/04/29 16:34
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;int dj[1000010];int main(){    int C;    scanf("%d",&C);    while(C--)        {   memset(dj,0,sizeof(dj));        int n,m,i,p,h;        scanf("%d%d",&n,&m);        int t=0;        for(i=0;i<m;++i)        {            scanf("%d%d",&p,&h);            while(h--)            dj[t++]=p ;        }        sort(dj,dj+t);        int sum=0,zl=0;        for(i=0;i<t;++i)        {            sum+=dj[i];            if(sum>n)            {sum=sum-dj[i];break;}            else            zl+=1;        }        printf("%.2lf\n",zl+(n-sum)*1.0/dj[i]);    }    return 0;}
 
代码2:
 
#include<stdio.h>#include<algorithm>using namespace std;int a[1000010];int main(){int C;scanf("%d",&C);while(C--){int n,m,k=0;//int a[1000010];//这样写会出现 Runtime Error(STACK_OVERFLOW)!!!!!!!!scanf("%d%d",&n,&m);int i,p,h;for(i=0;i<m;++i){scanf("%d%d",&p,&h);    while(h--)    a[k++]=p;}sort(a,a+k);double sum=0,t=0;for(i=0;i<k;++i){if(sum+a[i]-n>=1e-7)    break;elsesum+=a[i],t++;}printf("%.2lf\n",t+(n-sum)/a[i]);}return 0;}

0 0
原创粉丝点击