标签: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