首页 > 代码库 > 无限序列
无限序列
描述
1101001000100001000001.......
求第Ai位的数是什么
Ai<=2000000
因为可以推出所有1位置的序号
就可以用一个数组给存起来
又因序号是递增的
所以就可以二分来查找
1 # include<cstdio> 2 # include<cstring> 3 # include<iostream> 4 # include<algorithm> 5 using namespace std; 6 typedef unsigned long long LL; 7 const int maxn=50000; 8 const int INF=900000000; 9 LL f[maxn];10 int two_find(LL l,LL r,LL x){11 while(l<r){12 LL mid=(l+r)>>1;13 if(f[mid]==x)return 1;14 else if(f[mid]>x)r=mid;15 else l=mid+1;16 }17 return 0;18 }19 int main(){20 ios::sync_with_stdio(false);21 LL cur=0,tb=1,num=1,n,x;22 while(f[cur++]<=INF){23 f[cur]=num;24 num=num+tb;25 tb++;26 }27 cin>>n;28 for(int i=1;i<=n;i++){29 cin>>x;30 if(two_find(1,cur,x))printf("1\n");31 else printf("0\n");32 }33 return 0;34 }
无限序列
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。