社区讨论
求救!今天比赛B题,Sub4WA一个点
学术版参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @lo7w3rma
- 此快照首次捕获于
- 2023/10/27 08:43 2 年前
- 此快照最后确认于
- 2023/10/27 08:43 2 年前
CPP
#include<bits/stdc++.h>
#include<stdio.h>
#define ll long long
#define ull unsigned long long
#define pl puts("")
#define pc putchar(' ')
using namespace std;
ll read()
{
ll x=0;
int f=1;
char c=getchar();
while(!isdigit(c))
{
if(c=='-')
f=-1;
c=getchar();
}
while(isdigit(c))
x=(x<<1)+(x<<3)+c-'0',c=getchar();
return x*f;
}
char buf_ans[114];
ll next_n(double last_ans=0,ll get_n=0)
{
sprintf(buf_ans,"%.6f",last_ans);
for(ll i=0,x=0;;i++)
{
if(buf_ans[i]=='.')
return get_n^x;
if(i&1)
x*=10;
else
x=x*10+(buf_ans[i]^48);
}
}
ll t,n,m;
double ans;
long long qwq(int i)
{
return floor((i+0.5)*(i+0.5)*(i+0.5)*(i+0.5));
}
map<int,double> mp;
void init()
{
for(int i=1;i<=5;i++)
mp[i]=i;
for(int i=6;i<=39;i++)
mp[i]=mp[i-1]+0.5;
}
long long sum[31666];
int main()
{
t=read();
for(int i=1;i<=31623;i++)
sum[i]=sum[i-1]+floor((qwq(i)-qwq(i-1))*1.0/i);
init();
while(t--)
{
n=next_n(ans,read());
if(n<=39)
{
ans=mp[n];
printf("%.6lf\n",ans);
continue;
}
for(int i=2;i<=31623;i++)
if(n>=qwq(i-1)&&n<qwq(i))
ans=sum[i-1]+(n-qwq(i-1))*1.0/i;
printf("%.6lf\n",ans);
}
return 0;
}
有无大佬帮忙看看哪里挂了/kk
回复
共 0 条回复,欢迎继续交流。
正在加载回复...