题解:P10402 「XSOI-R1」凑点
Brain_Huger · · 题解
写一篇不用二分的题解。
思路
首先我们发现,题目中可以这么修改:
pow f,将计数器
我们可以观察下幂函数
在 pow 操作,使其变成任何大于等于
接着就是这个式子:
根据换底公式用 c++ 自带的
注意
代码
#include<bits/stdc++.h>
#define int long long
int n,x,y,X;
signed main(){
scanf("%lld%lld%lld",&n,&x,&y),x=0;
if(y==0){
printf("%lld\n",n);
for(int i=1;i<=n;i++)scanf("%lld",&X),printf("mul %lld\n",i);
return 0;
}
printf("%lld\n",n+1);
for(int i=1;i<=n;i++)scanf("%lld",&X),x+=X,printf("add %lld\n",i);
long double ans=log10(y)*1.0000/log10(x),s=pow(x,ans);//此处用 log,log2都行
if(fabs(s-y)>1e-4)while(printf("sto wmr orz"));
printf("pow %.114510Lf",ans);
return 0;
}