标签:情况 图片 告诉 iostream 答案 review shu code 分享图片
1 #include<iostream> 2 #include<cstdio> 3 #include<cmath> 4 #include<cstring> 5 #define N 500005 6 using namespace std; 7 const long long inf=1e18; 8 long long read(){ 9 long long s=0,f=1; 10 char t=getchar(); 11 while(t<‘0‘||t>‘9‘){ 12 if(t==‘-‘)f=-1; 13 t=getchar(); 14 } 15 while(t>=‘0‘&&t<=‘9‘){ 16 s=(s<<1)+(s<<3)+t-‘0‘; 17 t=getchar(); 18 } 19 return s*f; 20 } 21 long long ksm(long long a,long long b){ 22 long long ans=1; 23 while(b){ 24 if(b&1)ans=ans*a; 25 b>>=1;a=a*a; 26 } 27 if(ans<0)return inf; 28 return ans; 29 } 30 long long c[30][30],n,m,k; 31 void pre(){ 32 c[0][0]=1; 33 for(long long i=1;i<=3;i++){ 34 c[i][i]=c[i][0]=1; 35 for(long long j=1;j<i;j++)c[i][j]=c[i-1][j]+c[i-1][j-1]; 36 } 37 } 38 long long add[N],val[N],Pow[N],S[N],T[N][4],siz[N]; 39 bool check(long long p){ 40 long long used=0,Siz=0,sum,dis=ceil(pow(p,1.0/m)); 41 if(m>3){ 42 memset(add,0,sizeof add); 43 for(long long i=n,x;i>=1;i--){ 44 if(add[i]>val[i])continue; 45 x=(val[i]-add[i])/p+1; 46 used+=x;if(used>k)return false; 47 for(long long j=i-1;j>=1&&Pow[i-j]<p;j--){ 48 add[j]+=x*(p-Pow[i-j]); 49 } 50 } 51 } 52 else{ 53 memset(S,0,sizeof S); 54 memset(T,0,sizeof T); 55 memset(siz,0,sizeof siz); 56 for(long long i=n,x,now;i>=1;i--){ 57 Siz+=siz[i];sum=Siz*p;now=1; 58 for(long long j=0;j<=m;j++,now*=i){ 59 S[j]+=T[i][j]; 60 sum-=now*S[j]; 61 } 62 if(sum>val[i])continue; 63 x=(val[i]-sum)/p+1;used+=x; 64 if(used>k)return false; 65 long long lim=i-dis,fla=1;now=ksm(i,m);lim=max(lim,0ll); 66 for(long long j=0;j<=m;j++,fla*=-1,now/=i){ 67 T[lim][j]-=fla*x*c[m][j]*now; 68 S[j]+=x*fla*c[m][j]*now; 69 } 70 Siz+=x;siz[lim]-=x; 71 } 72 } 73 return true; 74 } 75 long long ans; 76 int main(){ 77 n=read(),m=read(),k=read(); 78 pre(); 79 for(long long i=1;i<=n;i++)val[i]=read(); 80 for(long long i=1;i<=n;i++)Pow[i]=ksm(i,m); 81 long long l=1,r=1000000; 82 while(l<=r){ 83 long long mid=l+r>>1; 84 if(check(mid))r=mid-1,ans=mid; 85 else l=mid+1; 86 } 87 cout<<ans; 88 return 0; 89 }
over
标签:情况 图片 告诉 iostream 答案 review shu code 分享图片
原文地址:https://www.cnblogs.com/saionjisekai/p/9745898.html