acgo题库
  • 首页
  • 题库
  • 学习
  • 天梯
  • 备赛

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

    • GESP
    • CPA
    • 电子学会考级
  • 竞赛
  • 讨论
  • 团队
  • 商城
登录
注册
题目详情提交记录(0)
  • A21006.国王饮水记

    userId_undefined
    ༺ཌༀ༒☯星河·月寂☯༒ༀད༻™
    52阅读
    4回复
    2点赞
  • 题解

    #include<bits/stdc++.h> int N,n,m,p; int h[8192],s[8192];//8192=2<<13 double f[16][8192]; int g[16][8192]; int a[400]; using namespace std; #define P pair<int,double> double operator%(const P&a,const P&b){ return (b.second-a.second)/(b.first-a.first); } void div(int x){ long long q=0; for(int i=0;i<=p;i++){ q=q*1000000000+a[i];a[i]=q/x;q%=x; } } int main(){ scanf("%d%d%d",&N,&m,&p);p=p/9+1; scanf("%d",&h[n=1]); for(int i=2;i<=N;i++){ int t;scanf("%d",&t);if(h[1]<t)h[n]=t; } sort(h+1,h+n+1); if(m>n)m=n; for(int i=1;i<=n;i)f[0][i]=h[1],s[i]=s[i-1]+h[i]; int l=14;if(l>m)l=m; for(int i=1;i<=l;i++){ static P q[8024]; for(int j=2,l=1,r=0;j<=n;j++){ P c=P(j-2,s[j-1]-f[i-1][j-1]); for(;l<r&&(q[r-1]%q[r])>(q[r]%c);r--); q[r]=c; P t=P(j,s[j]); for(;l<r&&(q[l]%t)<(q[l+1]%t);l); g[i][j]=q[l].first+1; f[i][j]=(q[l]%t); } } int [16];[l]=n-(m-l); for(int i=l;i;i--)[i-1]=g[i][[i]]; a[0]=h[1]; for(int i=1;i<=l;i++)a[0]+=s[[i]]-s[[i-1]],div([i]-[i-1]+1); for(int i=_[l]+1;i<=n;i++)a[0]+=h[i],div(2); printf("%d.",a[0]); for(int i=1;i<=p;i++)printf("%09d",a[i]); }

    userId_undefined
    共产党万岁!中华人民共和国万岁!
    4阅读
    0回复
    0点赞
暂无数据

提交答案之后,这里将显示提交结果~

首页