标签:long can mission each tween panel turn ring scan
2 1 1 1 10
0 4HintFor the second case, the real numbers are 6,8,9,10.
题目就是求这个F(x)
题解:打个表找规律,F(x)=x/2-1+(sqrt(x)%2? 0:-1) 推荐证明:http://blog.csdn.net/acdreamers/article/details/9730423
注:sqrt()存在精度问题。精度处理不好会wa.
#include<cstdio>
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cmath>
#define ll long long
using namespace std;
ll Sqrt(ll l,ll r,ll a) {
ll mid=(l+r)/2;
if(l>r)
return r;
if(a/mid>mid)
return Sqrt(mid+1,r,a);
else if(a/mid<mid)
return Sqrt(l,mid-1,a);
else
return mid;
}
ll solve(ll r) {
if(r<6)return 0;
return r/2-2+(ll)Sqrt(1,r,r)%2;;
}
int main() {
int t;
cin>>t;
while(t--) {
ll l,r;
scanf("%I64d%I64d",&l,&r);
printf("%I64d\n",solve(r)-solve(l-1));
}
return 0;
}
标签:long can mission each tween panel turn ring scan
原文地址:http://www.cnblogs.com/cynchanpin/p/7196772.html