保险咨询网站留电话,网站功能及报价,唐汉网站建设,网页即时聊天P1795 无穷的序列_NOI导刊2010提高#xff08;05#xff09; 题目描述 有一个无穷序列如下#xff1a; 110100100010000100000… 请你找出这个无穷序列中指定位置上的数字 输入输出格式 输入格式#xff1a;第一行一个正整数N#xff0c;表示询问次数#xff1b; 接下来的… P1795 无穷的序列_NOI导刊2010提高05 题目描述 有一个无穷序列如下 110100100010000100000… 请你找出这个无穷序列中指定位置上的数字 输入输出格式 输入格式 第一行一个正整数N表示询问次数 接下来的N行每行一个正整数AiAi表示在序列中的位置。 输出格式 N行每行为0或l表示序列第Ai位上的数字。 输入输出样例 输入样例#1 复制 4
3
14
7
6 输出样例#1 复制 0
0
1
0说明 对于100%的数据有N≤1500000Ai≤10^9 思路前缀和二分。 #includemap
#includecstdio
#includecstring
#includeiostream
#includealgorithm
using namespace std;
mapint,boolma;
int n,x,sum1;
int main(){scanf(%d,n);for(int i1;i;i){ma[sum]1,sumi;if(sum1000000000) break; }while(n--){scanf(%d,x);if(ma[x]) printf(1\n);else printf(0\n);}
} STL TLE 90分 #includecstdio
#includecstring
#includeiostream
#includealgorithm
using namespace std;
int ma[44722];
int l,r,mid;
int n,x,sum1;
int main(){scanf(%d,n);ma[1]1;for(int i2;i44721;i)ma[i]ma[i-1]i-1;while(n--){scanf(%d,x);l1;r44721;int flag0;for(int i1;i32;i){mid(lr)/2;if(ma[mid]x) lmid1;else if(ma[mid]x) rmid-1;else if(ma[mid]x){ flag1;break; }}if(flag) printf(1\n);else printf(0\n);}
} 转载于:https://www.cnblogs.com/cangT-Tlan/p/7892264.html