洛谷B3626。这是我写的源代码
// Problem: B3626 跳跃机器人
// Contest: Luogu
// URL: https://www.luogu.com.cn/problem/B3626
// Memory Limit: 128 MB
// Time Limit: 1000 ms
//
// Powered by CP Editor (https://cpeditor.org)
#include<bits/stdc++.h>
using namespace std;
bool bl(long long a,long long b,long long c)
{
if((c-a)<=(b-c)) return true;
else return false;
}
int main()
{
long long n;
cin>>n;
long long sum;
for(sum=0;n!=1;sum++)
{
long long p=ceil(sqrt(n*1.0)-1),q=floor(sqrt(n*1.0)+1);
// cout<<p<<" "<<q<<endl;
long long pp=p*p,qq=q*q;
// cout<<pp<<" "<<qq<<endl;
if(!(n%2)) n/=2;
else if(sum==0) n--;
else if(n==3) n--;
else if(bl(pp,qq,n)) n--;
else n++;
// cout<<n<<endl<<endl;
}
cout<<sum<<endl;
return 0;
}
但为什么只得了20分?
