资源描述:
《2014noip复赛模拟练习18(答案).doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、1.TOM有一个无穷序列中如下:110100100010000100000。。。。。请你帮助TOM找出在这个无穷序列中指定位置上的数字输入格式InputFormat第一行一个正整数N,表示询问的次数;接下来的N行一个正整数Ai,Ai表示在序列中的位置。输出格式OutputFormatN行,每一行为0或1,表示序列第Ai位上的数字。对于100%的数据有N<=1500000,Ai<=10^9varn,i:longint;x,z,y:int64;beginreadln(n);fori:=1tondobeginreadln(x);z:=(x-1)*2;y:=trunc(sqrt(z));ifz=y*
2、(y+1)thenwriteln('1')elsewriteln('0');end;readln;readln;end.输入39910111输出001输入57102415100004输出100012.输入一个正整数N(1<=N<=20)后,可以得到一个N*N的数字螺旋方阵,分别求该方阵中的主对角线与副对角线上的数字之和S,P,输出S、P的差。例如:N=5得到的数字螺旋方阵如下:12345其中:主对角线从左上角到右下角,得到161718196的数字之和为:S=1+17+25+21+9=73152425207副对角线从右上角到左下角,得到142322218的数字之和:P=5+19+25+23+1
3、3=85131211109S-P=-12Input一个正整数NOutput主对角线与副对角线上的数字之和的差。SampleInput5SampleOutput-12varn,i,j,t,f,l,q,z:integer;s1,s2:longint;a:array[1..20,1..20]ofinteger;beginreadln(n);t:=1;f:=1;l:=n;i:=1;q:=1;z:=n;whilet<=n*ndobegincasefof1:beginforj:=qtozdobegina[i,j]:=t;inc(t);end;f:=2;q:=i+1;dec(l);z:=l+q-1;end
4、;2:beginfori:=qtozdobegina[i,j]:=t;inc(t);end;f:=3;q:=j-1;z:=q-l+1;end;3:beginforj:=qdowntozdobegina[i,j]:=t;inc(t);end;f:=4;q:=i-1;dec(l);z:=q-l+1;end;4:beginfori:=qdowntozdobegina[i,j]:=t;inc(t);end;f:=1;q:=j+1;z:=q+l-1;end;end;end;s1:=0;s2:=0;fori:=1tondos1:=s1+a[i,i];fori:=ndownto1dos2:=s2+a[n-
5、i+1,i];writeln(s1-s2);end.输入7输出-24输入20输出-200输入12输出-7215输出-1123.字母A,B,C的所有可能的组合(按字典顺序排序)是:A,AB,ABC,AC,B,BC,C每个组合都对应一个字典顺序的序号,如下所示:1A2AB3ABC4AC5B6BC7C找出某个字母组合的字典序号。例如,上例中AC的字典序号是4。注:假设某个字母组合为X1X2X3…XK,保证X16、例:2f[i]表示为i位的总方案数,每读一位就累加varn,i,j,tot:longint;f:array[0..27]oflongint;a:array[0..26]ofchar;c:char;beginfillchar(f,sizeof(f),0);readln(n);fori:=ndownto1dobeginforj:=i+1tondof[i]:=f[i]+f[j];inc(f[i]);end;tot:=0;j:=0;a[0]:='@';whilenoteolndobegininc(j);read(a[j]);fori:=ord(a[j-1])-64+1toord(a[j])-64-1
7、dotot:=tot+f[i];inc(tot);end;writeln(tot);end.二进制数nmodm的结果是多少?输入数据 第一行输入一个二进制数n。 第二行输入一个二进制数m。输出数据 输出nmodm的结果。输入样例1010101010111000输出样例1010数据规模 n的长度(二进制数的位数)<=200000; m的长度(二进制数的位数)<=20。与10进制的高精同理,10进制每次