百度之星Astar2012程序设计大赛 初赛试题(二)
- 格式:doc
- 大小:40.00 KB
- 文档页数:7
百度之星Astar2012程序设计大赛初赛试题(第一场)————及B题答案比赛说明百度之星初赛:2012年6月2日、6月3日10:00Am~12:00Pm本次大赛的初赛的初赛采取在线答题、编译,离线判题的形式,选手报名后,可以在6月2日、6月3日任选一天参加比赛,也可选择两场都参加。
针对每题,交题后,系统将给出程序编译是否正确的结果,但不会给出程序是否通过全部测试数据的评价;当场比赛结束后,所有选手的针对每题所写的程序将被离线评判,每题根据程序通过测试数据的数目计算得分。
每场初赛根据单场所有题目总分计算成绩,选出当场成绩在前400名的选手进入复赛(第一场已经进入复赛的选手参加第二场比赛如果再次晋级,将被不在第二场参与排名)。
2012年6月2日,2012百度之星Astar2012程序设计大赛初赛打开大幕。
这里提供了初赛第一场的题目,供有未进初赛和其它有兴趣的朋友研究。
初赛第一场共4题。
分别是度度熊就是要第一个出场、小小度刷礼品、集合的交与并、轮子上的度度熊。
目录比赛说明······················· 1·A:度度熊就是要第一个出场·············· 2·B:小小度刷礼品··················· 5·C:集合的交与并····················6·D:轮子上的度度熊···················6·A:度度熊就是要第一个出场题目描述Baidu年会安排了一场时装秀节目。
第一题(共四题100分):连续正整数(10分)题目描述:一个正整数有可能可以被表示为n(n>=2)个连续正整数之和,如:15=1+2+3+4+515=4+5+615=7+8请编写程序,根据输入的任何一个正整数,找出符合这种要求的所有连续正整数序列。
输入数据:一个正整数,以命令行参数的形式提供给程序。
输出数据:在标准输出上打印出符合题目描述的全部正整数序列,每行一个序列,每个序列都从该序列的最小正整数开始、以从小到大的顺序打印。
如果结果有多个序列,按各序列的最小正整数的大小从小到大打印各序列。
此外,序列不允许重复,序列内的整数用一个空格分隔。
如果没有符合要求的序列,输出“NONE”。
例如,对于15,其输出结果是:1 2 3 4 54 5 67 8对于16,其输出结果是:NONE评分标准:程序输出结果是否正确。
百度之星程序设计大赛试题-2第二题(共四题100分):重叠区间大小(20分)题目描述:请编写程序,找出下面“输入数据及格式”中所描述的输入数据文件中最大重叠区间的大小。
对一个正整数n,如果n在数据文件中某行的两个正整数(假设为A和B)之间,即A<=n<=B 或A>=n>=B,则n属于该行;如果n同时属于行i和j,则i和j有重叠区间;重叠区间的大小是同时属于行i和j的整数个数。
例如,行(10 20)和(12 25)的重叠区间为[12 20],其大小为9;行(20 10)和(12 18)的重叠区间为[10 12],其大小为3;行(20 10)和(20 30)的重叠区间大小为1。
输入数据:程序读入已被命名为input.txt的输入数据文本文件,该文件的行数在1到1,000,000之间,每行有用一个空格分隔的2个正整数,这2个正整数的大小次序随机,每个数都在1和2^32-1之间。
(为便于调试,您可下载测试input.txt文件,实际运行时我们会使用不同内容的输入文件。
)输出数据:在标准输出上打印出输入数据文件中最大重叠区间的大小,如果所有行都没有重叠区间,则输出0。
NOIP初赛阅读程序模拟题(容易)题目:第1题program t1;var d, p: integer;beginp:=1;d:=11;while d>1 dobeginp:=2*(p+1);d:=d-1end;writeln (p)end.输出:__________________第2题program t2;var g,m: integer;k,t: real;begink:=0; g:=0;for m:=1 to 49 dobeging:=g+1;k:=k+1/(g*(g+1))end;writeln ( k: 10: 2 )end.输出:__________________第3题program t3;var n, i, t: longint;tem: integer;s: string;beginreadln(n);s:='1';repeati:= length(s);while s[i] ='1' dobegins[i]:= '0' ;dec(i);end;if i>0 then s[i]:='1'else s:= '1' +s;val(s,t,tem);until t mod n = 0;writeln(n,'*',t div n,'=',s);end.输入:6输出:________________________第4题program t4;const n = 5;var i,j,m,s:integer;beginm:=0;for i:=1 to n dobeginm:=m+i;s:=m;for j:=1 to 2*i do write(' '); {' '中间是一个空格} for j:=1 to n dobeginwrite(s mod 10:2);s:=s+j;end;writeln;end;end.输出:________________________第5题program t5;var a:array[0..8] of char;i: integer;beginfor i:= 1 to 8 do a[i]:=chr(i * 2 +ord('A'));for i:= 1 to 4 dobegina[0]:=a[i];a[i]:=a[9-i];a[9-i]:=a[0];end;for i:= 1 to 8 do write(a[i]);writeln;end.输出:________________________第6题Program t6;var n, i, x: integer;d:array[0..10] of integer;beginreadln(n);fori:=1 to n dobeginread(x);d[x]:=d[x] +1;end;d[0]:=0;for i:=1 to 10 do d[i]:=d[i-1]+d[i];for i:=1 to 10 doif d[i] < > d[i-1] then writeln(i:3,d[i-1]+1:4); end.输入:203 4 6 1 7 6 9 4 10 76 6 3 3 87 9 10 6 7输出:____________________________第7题program t7;var a,b:array[1..32] of integer;i: integer;procedure ssort( i ,j: integer);var m, k, x: integer;beginif j-i>1 thenbeginm:=(i+j) div 2;ssort(i,m);ssort(m+1,j);k:=i;for x:=i to m dobeginb[k]:=a[x]; b[k+1]:=a[m+x-i+1];k:=k+2;end;for x:=i to j do a[x]:=b[x];end;end;beginfor i:=1 to 16 do a[i]:=i;ssort(1,16);for i:= 1 to 16 do write(a[i]:3);writeln;end.输出:__________________________________________第8题program t8;var a,d:array[1..100] of integer;n ,i ,j ,k,x ,s :integer;beginn:=5;a[1]:=1;d[1]:=1;for i:=1 to n dobegins:=i+1;x:=0;for j:=1 to n+1-i dobegink:=s+x;x:=x+1;a[j+1]:=a[j]+k;write(a[j],' ');end;writeln('...');d[i+1]:=d[i]+i;a[1]:=d[i+1];end;end.输出:____________________________________________第9题program t9;var m,n,i,p,k:integer;r:array[1..200] of integer;b: boolean;beginm:=6;n:=2;for i:=1 to m-1 do r[i]:=i+1;r[m]:=1;i:=0;p:=1;b:=true;while b dobegini:=i+1;k:=p;p:=r[p];if k=p then begin writeln(p) ;b:=false endelse if i=n+1 thenbeginwrite(p,' ');i:=0;p:=r[p];r[k]:=p;endendend.输出:________________________________第10题program t10;var n,k,s:longint;beginn:=1000000000;k:=0;s:=1;while s <= n dobegink:=k+1;n:=n-s;s:=s+6*kend;writeln (k)end.输出:____________________________第11题program t11;const a: array[1..14] of longint=(94,32,40,90,99,80,46,21,69,28,64,73,85,54); var i, j, k, m,left, right, temp: longint;beginm:=8; left:= 1; right:= 14;while left < right dobegink:=a[m]; i:=left; j:=right;repeatwhile k < a[j] do j:=j-1;while k > a[i] do i:=i+1;if i <= j thenbegintemp:=a[i]; a[i]:=a[j]; a[j]:=temp; i:=i+1; j:=j -1enduntil i > j;if j < m then left:=i;if i > m then right:=jend;writeln(a[m])end.输出:___________________________________第12题program t12;var m ,n,s: longint;procedure p(n: longint);beginif n< >0 thenbeginp(n div 2);s:=(s*2+n mod 2 *m) mod 1023endend;beginm:=2002;n:=5871;s:=0;p(n);writeln(s);end.输出:______________________________第13题PROGRAM t13;VAR n,i,j,k:integer;BEGINreadln(n);for i:=1 to n dobeginfor j:=1 to n dobeginif i>=j then k:=j else k:=i;write(k:4)end;writelnendEND.输入:7输出:第14题PROGRAM t14;VAR n,i,j,k,mi,ma:integer;BEGINreadln(n);for i:=1 to n dobeginif i>=n+1-i then ma:=i else ma:=n+1-i;mi:=n+1-ma;k:=1;for j:=1 to n dobeginwrite(k:4);if j<mi then k:=k+1else if j>=ma then k:=k-1;end;writelnendEND.输入:7输出:第15题PROGRAM t15;VAR n,i,j,r,c,k,m:integer;BEGINreadln(n);for i:=1 to n dobeginfor j:=1 to n dobeginif i+j<=n+1 then k:=(i+j-2)*(i+j-1) div 2+i elsebeginr:=n+1-i; c:=n+1-j;k:=n*n+1-(r+c-2)*(r+c-1) div 2-rend;write(k:4)end;writelnendEND.输入:7输出:第16题PROGRAM t16;VAR a:array[1..20,1..20]of integer;n,i,j,r,c,k:integer;BEGINreadln(n);for i:=1 to n dobeginfor j:=1 to n dobeginif i+j<=n+1 then k:=(i+j-2)*(i+j-1)div 2+(i+j)mod 2*i+(i+j-1)mod 2*j elsebegin r:=n+1-i; c:=n+1-j;k:=n*n+1-(r+c-2)*(r+c-1)div 2-(r+c)mod 2*r-(r+c-1)mod 2*c;end;write(k:4);end;writelnendEND.输入:6输出:第17题PROGRAM t17;VAR n,i,j,k,c,s,d:integer;BEGINreadln(n);for i:=1 to n dobeginfor j:=1 to n dobeginif i>j then k:=i*i+1-j else k:=j*j+1+i-j-j; write(k:3)end;writelnendEND.输入:8输出:第18题PROGRAM t18;VAR n,i,j,k,r,c,ma:integer;BEGINwrite('Enter n : '); readln(n);for r:=1 to n dobeginfor c:=1 to n dobegini:=r;j:=c;if r>c then ma:=r else ma:=c;if ma mod 2=1 then begin i:=c;j:=r end;if i>j then k:=i*i+1-j else k:=j*j+1+i-j-j; write(k:3)end;writelnendEND.输入:8输出:第19题PROGRAM t19;VAR q,r:array[0..100]of integer;m,n,i,j,k:integer;BEGINfor i:=0 to 100 do q[i]:=-1;write('m,n : '); readln(m,n);write(m,'/',n,' = ',m div n,'.');k:=m mod n;i:=0;while q[k]=-1 dobeginq[k]:=i;r[i]:=k*10 div n;k:=k*10 mod n;i:=i+1;end;for j:=0 to q[k]-1 do write(r[j]);if k>0 thenbeginwrite(char(39));for j:=q[k] to i-1 do write(r[j]);write(char(39));end;writelnEND.分别输入:m,n : 123 15m,n : 3 7m,n : 100 12m,n : 1000 71分别输出:第20题PROGRAM t20;CONST x=3;VAR y,m,d,day:integer;mn:array[0..6]of string[8];BEGINmn[0]:='Sunday';mn[1]:='Monday';mn[2]:='Tuesday';mn[3]:='Wensday';mn[4]:='Thursday';mn[5]:='Friday';mn[6]:='Saturday';readln(y,m,d);if m<3 then begin m:=m+12; y:=y-1 end;day:=(y+(y div 4)-(y div 100)+(y div 400) +(m-3)*2+(m*3-7)div 5+d-1+x)mod 7; writeln(mn[day])END.输入:2002 5 30输出:第21题PROGRAM t21;CONST n=20;VAR i,j,q:integer;BEGINi:=3;while i<n dobeginq:=trunc(sqrt(i));j:=3;while (j<=q) and (i mod j<>0) do j:=j+2; if j>q then write(i:8);i:=i+2end;writelnEND.输出:第22题PROGRAM t22;VAR n,m:integer;FUNCTION f(n:integer):integer;VAR tmp,i:integer;BEGINtmp:=1;FOR i:=1 TO (n DIV 2) DOtmp:=tmp+f(i);f:=tmp;END;BEGINreadln(n);m:=f(n);writeln('f(',n,')=',m)END.输入:6输出:第23题PROGRAM t23;VAR I,J:INTEGER;A,X,Y,Z:STRING;BEGINA:='BAABCDDCAB';I:=6;WHILE I>=2 DOBEGINX:='';FOR J:=I TO I*I-1 DO X:=X+A[I];Y:=A;Y[0]:=CHR(I);Z:='';FOR J:=LENGTH(A)-I+1 TO LENGTH(A) DO Z:=Z+A[J]; Z:=X+Y+Z;I:=I-2END;WRITELN(Z)END.输出:第24题PROGRAM t24;VAR I,S,T,X:INTEGER;PROCEDURE PP(Y:INTEGER);BEGINT:=1;FOR I:=1 TO X DO T:=T*I+1;END;BEGINX:=5; S:=4;PP(X);S:=S+T;X:=3;PP(X);S:=S-T;X:=5;WRITELN('S=',S);WRITELN('X=',X)END.输出:第25题Program t25(input,output);VAR I,J,S:INTEGER;B :ARRAY[0..5] OF INTEGER;BEGINS:=1;FOR I:=1 TO 5 DO B[I]:=I;J:=1;WHILE J>0 DOBEGINJ:=5;WHILE (J>0) AND (B[J]=10+J-5) DO J:=J-1; IF J>0 THENBEGINS:=S+1; B[J]:=B[J]+1;FOR i:=J+1 TO 5 DO B[i]:=B[J]+i-J END;END;WRITELN('S=',S);END.输出:第26题program t26(input,output);VAR i, s, max:integer;a:array[1..10] of integer;Beginfor i:=1 to 10 do read(a[i]);max:=a[1]; s:=a[1];for i:=2 to 10 dobegin if s<0 then s:=0;s:=s+a[i];if s>max then max:=send;writeln('max=',MAX)End.输入:8 9 -1 24 6 5 11 15 -28 9输出:第27题PROGRAM t27;var i,x,x1,x2:integer;beginx1:=3; x2:=8;for i:=1 to 5 dobeginx:=(x1+x2)*2;x1:=x2;x2:=xend;writeln('x=',x)end.输出:第28题PROGRAM t28;const maxn=20;var i,j,k,n:integer;a:array [1..maxn,1..maxn] of integer;beginreadln(n);i:=1; j:=(n+1) div 2;for k:=1 to n*n dobegina[i,j]:=k;if k mod n=0then i:=i+1else begin i:=i-1;j:=j+2 end;if i>n then i:=i-n;if i<=0 then i:=i+n;if j>n then j:=j-nend;for i:=1 to n dobeginfor j:=1 to n do write(a[i,j]:3);writelnendend.输入:5输出:第29题PROGRAM t29;var i,k:integer;a:array [0..20] of integer;begina[1]:=1;a[2]:=1;k:=1;repeata[k+2]:=1;for i:=k+1 downto 2 do a[i]:=a[i]+a[i-1]; k:=k+1;until k>=10;for i:=1 to 11 do write(a[i]:5);writelnend.输出:第30题PROGRAM t30;var m,n:integer;function ack(m,n:longint):longint;beginif m=0 then ack:=n+1else if n=0 then ack:=ack(m-1,1)else ack:=ack(m-1,ack(m,n-1)) end;beginwrite('Input m,n=');readln(m,n);writeln('ack(',m,',',n,')=',ack(m,n))end.分别输入:Input m,n= 1 3Input m,n= 2 4Input m,n= 3 3Input m,n= 3 4分别输出:第31题PROGRAM t31;const n=20;var i,j,k,l:integer;a:array[0..n] of integer;beginreadln(k);j:=1;while k>=j dobegina[j]:=j; k:=k-j; j:=j+1end;l:=j-1;while k>0 dobegina[l]:=a[l]+1; k:=k-1; l:=l-1end;for i:=1 to j-1 do write(a[i]:4);writelnend.输入:11输出:第32题PROGRAM t32;var i,n:longint;beginreadln(n);i:=2;while n<>1 dobeginwhile n mod i=0 dobegin write(i,' '); n:=n div i end;i:=i+1end;writelnend.输入:27720输出:第33题PROGRAM t33;function s(n:integer):integer;beginif n=0 then s:=0 else s:=s(n-1)+nend;beginwriteln(s(100))end.输出:第34题PROGRAM t34;const maxn=10;var i,j,n:integer;a:array [-maxn..maxn,-maxn..maxn] of integer; beginn:=5;for i:=-n to n dobeginfor j:=-n to n dobeginif abs(i)<abs(j) then a[i,j]:=abs(j) else a[i,j]:=abs(i); write(a[i,j],' ');end;writelnendend.输出:第35题PROGRAM t35;var n:longint;procedure turn(n:longint);beginif n>0 then begin turn(n div 8); write(n mod 8) endend;beginn:=32766;turn(n)end.输出:第36题PROGRAM t36;var x,y:longint;beginx:=270270; y:=20691;while (x<>0) and (y<>0) dobeginif x>=y then x:=x-y else y:=y-xend;if x=0 then writeln(y) else writeln(x)end.输出:第37题PROGRAM t37;Var i,j,n:integer;a:array[1..1000] of integer;beginn:=200;for i:=1 to n do a[i]:=0;for i:=1 to n dobeginj:=i;while j<=n dobegina[j]:=1-a[j];j:=j+iendend;for i:=1 to n do if a[i]=1 then write(i:5)end.输出:第38题PROGRAM t38;const maxn=8;type arraytype=array [1..maxn] of integer;var i,n:integer;a:arraytype;procedure p(k:integer;a:arraytype);var i,temp:integer; b:arraytype;beginif k=n then begin for i:=1 to n do write(a[i],' '); writeln end else for i:=k to n dobegin b:=a; temp:=b[k]; b[k]:=b[i]; b[i]:=temp;p(k+1,b) endend;beginn:=4;for i:=1 to n do a[i]:=i;p(1,a);end.输出:第39题PROGRAM t39;const maxn=8;type arraytype=array [0..maxn] of integer;var i,j,k,n:integer;a,b,c:arraytype;beginn:=4;for i:=0 to n do a[i]:=0;repeatfor i:=0 to n do c[i]:=i+1;for i:=n-1 downto 0 dobegin b[i]:=c[a[i]];for j:=a[i] to n-1 do c[j]:=c[j+1] end; for i:=n-1 downto 0 do write(b[i],' ');writeln;a[0]:=a[0]+1;i:=0;while a[i]>i dobegin a[i+1]:=a[i+1]+1; a[i]:=0; i:=i+1 end; until a[n]>0end.输出:第40题PROGRAM t40;var i,j,k,n,r:integer;a:array[0..100] of integer;beginn:=6; r:=3;for i:=0 to r do a[i]:=i;while a[0]=0 dobeginfor i:=1 to r do write(a[i],' ');writeln;k:=r;while a[k]>=n-r+k do k:=k-1;a[k]:=a[k]+1;for i:=k+1 to r do a[i]:=a[k]+i-k;end;writelnend.输出:第41题PROGRAM t41;const maxn=20000;var i,j,n,s:longint;a:array [1..maxn] of boolean;beginreadln(n);for i:=1 to n do a[i]:=false;for i:=1 to n dobeginj:=i;while j<=n dobegina[j]:=not(a[j]);j:=j+iendend;s:=0;for i:=1 to n do if a[i] then s:=s+i;writeln(s);end.分别输入:1020010000分别输出:第42题PROGRAM t42;var n,x,p:integer;function prime(y:integer):boolean;var i:integer;begini:=2;while (i*i<=y) and (y mod i<>0) do i:=i+1;if i*i>y then prime:=true else prime:=falseend;beginreadln(n);while n<=100 dobeginx:=1;repeatx:=x+1;until (x>=n div 2) or prime(x) and prime(n-x);if prime(x) and prime(n-x) then writeln(n,'=',x,'+',n-x); n:=n+2endend.输入:88输出:第43题PROGRAM t43;var n:1..9;procedure diamond(m:integer);procedure line(k:integer);var j:integer;beginwrite('':10-k);for j:=1 to 2*k-1 do if j<=k then write(j) else write(2*k-j); writeln;end;beginif m=n then line(m)else begin line(m);diamond(m+1);line(m);end;end;beginreadln(n);diamond(1);end.输入:8输出:第44题PROGRAM t44;const h:string[16]='0123456789ABCDEF';var n:longint; i,j:integer;s:array[1..16] of integer;beginreadln(n);i:=0;while n>0 dobegini:=i+1;s:=n mod 16;n:=n div 16;end;write('h='); for j:=i downto 1 do write(h[s[j]+1]);writeln;end.输入:347592输出:答案:1、输出:30702、输出:0.983、输出:6*185=11104、输出:1 2 4 7 13 4 6 9 36 7 9 2 60 1 3 6 05 6 8 1 55、输出:QOMKIGEC6、输出:1 13 24 56 77 128 169 1710 197、输出: 1 9 5 13 3 11 7 15 2 10 6 14 4 12 8 168、输出:1 3 6 10 15 ...2 5 9 14 ...4 8 13 ...7 12 ...11 ...9、输出:4 2 1 3 6 510、输出:100011、输出:6912、输出:49513、输出:1 1 1 1 1 1 11 2 2 2 2 2 21 2 3 3 3 3 31 2 3 4 4 4 41 2 3 4 5 5 51 2 3 4 5 6 61 2 3 4 5 6 714、输出:1 1 1 1 1 1 11 2 2 2 2 2 11 2 3 3 3 2 11 2 3 4 3 2 11 2 3 3 3 2 11 2 2 2 2 2 11 1 1 1 1 1 115、输出:1 2 4 7 11 16 223 5 8 12 17 23 296 9 13 18 24 30 3510 14 19 25 31 36 4015 20 26 32 37 41 4421 27 33 38 42 45 4728 34 39 43 46 48 4916、输出:1 2 6 7 15 163 5 8 14 17 264 9 13 18 25 2710 12 19 24 28 3311 20 23 29 32 3421 22 30 31 35 3617、输出:1 2 5 10 17 26 37 504 3 6 11 18 27 38 519 8 7 12 19 28 39 5216 15 14 13 20 29 40 5325 24 23 22 21 30 41 5436 35 34 33 32 31 42 5549 48 47 46 45 44 43 5664 63 62 61 60 59 58 5718、输出:1 2 9 10 25 26 49 504 3 8 11 24 27 48 515 6 7 12 23 28 47 5216 15 14 13 22 29 46 5317 18 19 20 21 30 45 5436 35 34 33 32 31 44 5537 38 39 40 41 42 43 5664 63 62 61 60 59 58 5719、输出:123/15 = 8.23/7 = 0.'428571'100/12 = 8.'3'1000/71 = 14.'08450704225352112676056338028169014'20、输出:Thursday21、输出: 2 3 5 7 11 13 17 1922、输出:f(6)=623、输出:AABAAB24、输出:S=314X=525、输出:S=25226、输出:max=7727、输出:x=122428、输出:24 15 1 17 85 167 23 146 22 13 4 2012 3 19 10 2118 9 25 11 229、输出: 1 10 45 120 210 252 210 120 45 10 130、输出:ack(1,3)=5ack(2,4)=11ack(3,3)=61ack(3,4)=12531、输出:1 2 3 532、输出:2 2 2 3 3 5 7 1133、输出:505034、输出:5 5 5 5 5 5 5 5 5 5 55 4 4 4 4 4 4 4 4 4 55 4 3 3 3 3 3 3 3 4 55 4 3 2 2 2 2 2 3 4 55 4 3 2 1 1 1 2 3 4 55 4 3 2 1 0 1 2 3 4 55 4 3 2 1 1 1 2 3 4 55 4 3 2 2 2 2 2 3 4 55 4 3 3 3 3 3 3 3 4 55 4 4 4 4 4 4 4 4 4 55 5 5 5 5 5 5 5 5 5 535、输出:7777636、输出:9937、输出: 1 4 9 16 25 36 49 64 81 100 121 144 169 19638、输出:1 2 3 41 2 4 31 32 41 3 4 21 4 3 21 42 32 13 42 1 4 32 3 1 42 3 4 12 43 12 4 1 33 2 1 43 24 13 1 2 43 14 23 4 1 23 4 2 14 2 3 14 2 1 34 3 2 14 3 1 24 1 3 24 1 2 3 39、输出:1 2 3 41 2 4 31 32 41 3 4 21 42 31 4 3 22 13 42 1 4 32 3 1 42 3 4 12 4 1 32 43 13 1 2 43 14 23 2 1 43 24 13 4 1 23 4 2 14 1 2 34 1 3 24 2 1 34 2 3 14 3 1 24 3 2 140、输出:1 2 31 2 41 2 51 2 61 3 41 3 51 3 61 4 51 4 61 5 62 3 42 3 52 3 62 4 52 4 62 5 63 4 53 4 63 5 64 5 641、输出:14105033835042、输出:88=5+8390=7+8392=3+8994=5+8996=7+8998=19+79100=3+9743、输出:15行数字菱形,每一行由1到i,再由I-1到1 44、输出:h=54DC8。
2012年宁波市第27届中小学生计算机程序设计竞赛小学组初赛试题小学组初赛试题●●所有答案都必须写在答题纸上,写在试卷上无效●●一、选择题(每题2分,共30分。
每小题只有唯一一个正确答案)1)乐乐在记事本里打了“Happy Birthday!”,则它们在计算机内存储时采用的编码是:()。
A )区位码B )ASCII 码C )字形码D )条形码2)乐乐经常听MP3,由此他也学到了一些有关MP3的知识。
下列有关MP3的信息中不正确的是:()。
A )表达同一首乐曲时,MP3格式的文件大小比WAVE 格式要小得多。
B )MP3声音是一种声音数字化之后经过压缩和编码技术处理得到的声音格式。
C )MP3音乐所采用的声音数据压缩编码的标准是JPEG 。
D )MP3之所以得以流行,是因为MP3声音的质量好,存储容量小,便于传输与存储。
3)下图所示是一个16×16点阵的发光LED 字幕模块,假如使用1表示点发光、0表示点熄灭,那么这个发光LED 字幕模块如果要在计算机内部完整地保存,在不进行压缩的前提下,最少需要的存储空间是:()。
A )8ByteB )32ByteC )8KBD )32KB4)在计算机系统中,数值一律用补码来表示(存储)。
主要原因:使用补码,可以将符号位和其他位统一处理;同时,减法也可按加法来处理。
那么在PASCAL 系统中,-15用byte 变量类型存储在计算机内,其二进制编码为:()。
A )10001111B )00001111C )11110000D )111100015)十进制数2012.25用二进制数表示的结果是:()。
A )(11111010101.1)2B )(11111011100.01)2C )(1111001000.01)2D )(11111001000.1)26)乐乐在参加信息学奥赛的学习过程中,想在因特网上与他人进行即时讨论、交流,则下列工具中最适合的是:()。
Astar2006百度之星程序设计大赛题目1.百度语言翻译机百度的工程师们是非常注重效率的,在长期的开发与测试过程中,他们逐渐创造了一套独特的缩略语。
他们在平时的交谈、会议,甚至在各种技术文档中都会大量运用。
为了让新员工可以更快地适应百度的文化,更好地阅读公司的技术文档,人力资源部决定开发一套专用的翻译系统,把相关文档中的缩略语和专有名词翻译成日常语言。
输入要求:输入数据包含三部分:1. 第一行包含一个整数N(N<=10000),表示总共有多少个缩略语的词条;2. 紧接着有N行的输入,每行包含两个字符串,以空格隔开。
第一个字符串为缩略语(仅包含大写英文字符,长度不超过10字节),第二个字符串为日常语言(不包含空格,长度不超过255字节);3. 从第N+2开始到输入结束为包含缩略语的相关文档(总长度不超过1000000个字节)。
例:6PS 门户搜索部NLP 自然语言处理PM 产品市场部HR 人力资源部PMD 产品推广部MD 市场发展部百度的部门包括PS,PM,HR,PMD,MD等等,其中PS还包括NLP小组。
样例:in.txt输出要求:输出将缩略语转换成日常语言后的文档。
(将缩略语转换成日常语言,其他字符保留原样)。
例:百度的部门包括门户搜索部,产品市场部,人力资源部,产品推广部,市场发展部等等,其中门户搜索部还包括自然语言处理小组。
样例:out.txt评分规则:1.程序将运行在一台Linux机器上(内存使用不作严格限制),在每一测试用例上运行不能超过10秒,否则该用例不得分;2.要求程序能按照输入样例的格式读取数据文件,按照输出样例的格式将运行结果输出到标准输出上。
如果不能正确读入数据和输出数据,该题将不得分;3.该题目共有4个测试用例,每个测试用例为一个输入文件。
各测试用例占该题目分数的比例分别为25%,25%,25%,25%;4.该题目20分。
注意事项:1.输入数据是中英文混合的,中文采用GBK编码。
第一题:微生物增殖假设有两种微生物X 和YX出生后每隔3分钟分裂一次(数目加倍),Y出生后每隔2分钟分裂一次(数目加倍)。
一个新出生的X,半分钟之后吃掉1个Y,并且,从此开始,每隔1分钟吃1个Y。
现在已知有新出生的X=10, Y=89,求60分钟后Y的数目。
如果X=10,Y=90 呢?本题的要求就是写出这两种初始条件下,60分钟后Y的数目。
题目的结果令你震惊吗?这不是简单的数字游戏!真实的生物圈有着同样脆弱的性质!也许因为你消灭的那只Y 就是最终导致Y 种群灭绝的最后一根稻草!请忍住悲伤,把答案写在“解答.txt”中,不要写在这里!第二题:古堡算式福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:ABCDE * ? = EDCBA他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!”华生:“我猜也是!”于是,两人沉默了好久,还是没有算出合适的结果来。
请你利用计算机的优势,找到破解的答案。
把ABCDE 所代表的数字写出来。
答案写在“解答.txt”中,不要写在这里!第三题:比酒量有一群海盗(不多于20人),在船上比拼酒量。
过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了。
再打开一瓶酒平分,又有倒下的,再次重复...... 直到开了第4瓶酒,坐着的已经所剩无几,海盗船长也在其中。
当第4瓶酒平分喝下后,大家都倒下了。
等船长醒来,发现海盗船搁浅了。
他在航海日志中写到:“......昨天,我正好喝了一瓶.......奉劝大家,开船不喝酒,喝酒别开船......”请你根据这些信息,推断开始有多少人,每一轮喝下来还剩多少人。
如果有多个可能的答案,请列出所有答案,每个答案占一行。
格式是:人数,人数,...例如,有一种可能是:20,5,4,2,0答案写在“解答.txt”中,不要写在这里!第四题:奇怪的比赛某电视台举办了低碳生活大奖赛。
题目的计分规则相当奇怪:每位选手需要回答10个问题(其编号为1到10),越后面越有难度。
2012百度之星资格赛试题与AC代码A:百度计算器的加法时间限制: 1000ms 内存限制: 10000kB描述百度框计算中提供了计算器这个功能,模拟计算器中的复杂功能,我们最先需要解决的就是实现加法模块。
今天就给你个机会,和百度计算器一样,计算一下十以内的加法吧。
输入仅有一组数据,包含两个正整数,分别为a, b(0 <= a, b <= 10)输出一个正整数,暨输入a, b后对应的a+b的计算结果样例输入5 2样例输出7#include <stdio.h>#include <stdlib.h>/*author tilltheendwjxblog /wjh200821或者/tilltheendwjx/*/int main(){int a,b;scanf("%d%d",&a,&b);printf("%d",a+b);//system("pause");return 0;}B:小诺爱USB设备时间限制: 1000ms 内存限制: 65536kB描述在百度工作的小诺是一个USB设备迷,在他桌上有一堆的USB设备——USB鼠标、USB小音箱、USB按摩器……但是,公司配给小诺的ThinkPad X系列的电脑只有一个能用的USB接口。
不过还好,小诺有一堆的USB Hub,可以把一个可用的USB接口变成多个USB接口。
但是,小诺很难确定这些USB Hub能否满足他他众多的USB设备的需求。
输入输入首行包括一个整数N(1 ≤ N ≤ 20),表示测试数据组数。
接下去的N行,每行包括一组测试数据。
每组测试数据行以一个整数K开头(1 ≤ K ≤ 10),表示这组测试数据提供的USB Hub的数量;紧接着,在同一行,有K个整数(每两个整数之间由一个空格分隔开),{M1,M2…Mi…MK}(2 ≤ Mi ≤ 10),每个整数表示了这个USB Hub能将一个USB接口数变成的多个USB接口的数量。
手机RSS阅读器任务描述:一、标题手机RSS阅读器二、题目目前网上新闻很多,但如果都用网页浏览找起来很麻烦,而且很多新闻都价值不高,只要看个标题就够了。
我们希望构造一款跨平台的网上新闻阅读器,能够在各种主流的手机平台上阅读新闻。
三、初赛阶段要求1. 功能需求a) 搜狐提供各种RSS新闻频道(/rss.shtml),网易也有新闻RSS(/rss/),用户可以订购感兴趣的新闻频道b) 界面内展示用户订购的新闻频道,可以浏览,获取最新新闻c) 用户根据需要可以自动/手动更新新闻列表d) 可以打开阅读新闻详细内容e) 设计页面图标f) 支持换肤2. 非功能需求a) 使用Phonegap 开发b) 要求提供Android版本c) Android 版本支持2.2,800*480 分辨率四、初赛阶段说明1. 开发语言使用HTML5 + Phonegap2. 提交任务包包括编译完成可执行的二进制程序以及源文件3. 提供开发设计说明书及使用手册各一份4. 提供Android环境下操作录像一份(建议使用屏幕录制软件,增加解说词,保存为mpeg或avi文件格式)5. 开发在Android2.2 版本模拟器上进行(Android2.2,分辨率800*480,内存256M,存储512M),运行期内存限制在32M以内,占用存储资源少于10M五、系统实现技术提示信息RSS资料:RSS(简易信息聚合,也叫聚合内容)是一种描述和同步网站内容的格式。
RSS可以是以下三个解释的其中一个:Really Simple Syndication;RDF (Resource Description Framework)Site Summary;Rich Site Summary。
但其实这三个解释都是指同一种Syndication的技术。
RSS目前广泛用于网上新闻频道,Blog和Wiki,主要的版本有0.91, 1.0, 2.0。
使用RSS订阅能更快地获取信息,网站提供RSS输出,有利于让用户获取网站内容的最新更新。
NOIP2012初赛模拟试题(二)(普及 Pascal语言二小时完成)●●全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效●●一.单项选择题(共10题,每题1.5分,共计15分。
每题有且仅有一个正确答案。
)1、下列说法正确的是( )。
A. CPU的主频越高,其运算速度越快B.存储器具有记忆能力,其中信息任何时候都不会丢失C.两个显示器屏幕尺寸相同,则它们的分辨率必定相同D.计算机系统可以分为硬件系统和系统软件两大部分2、有一个数值2341,它与十六进制数4E1相等,那么该数值是( )。
A.五进制数B.六进制数C.七进制数D.八进制数3、在计算递归函数时,如不使用递归过程,则一般情况下必须借助于( )数据结构。
A.栈B.树C.双向队列D.广义表4、表达式a*(c-b)/(d+e)的前缀表达式是()。
A.acbde*-/+ B.*-/+achde C.-cb*a/+de D./*a-cb+de5、在一个具有N个顶点的无向图中,要连通全部的顶点至多需要边的数目是( )。
A.N B.N-l C.N*(N-1)/2 D.N*(N-1)6. 二进制数00100100和00010100的和是( )。
A.00101000 B.001010100 C.01000100 D.001110007、一个队列开始为空,数列1,2,3……按顺序进队,经过操作序列“进、进、出、进、进、出、进、进、进、出、进、出”后,队列中的倒数第2个元素是()A.5 B.6 C.7 D.88、表达式28 div 4 mod (-3)+trunc(3.675)的值是( )。
A.5 B.4 C.3 D.29、在一棵度为3的树中,度为3的结点个数为2,度为2的结点个数为1,则度为0的结点个数为( )。
A.4 B.5 C.6 D.710、存储400个24*24点阵汉字的字模所需的存储容量为( )。
A.255KB B.75KB C.37.5KB D.28.125KB11、存储一幅分辨率为1024*768像素的256色图片需要的存储容量为( )。
2012年蓝桥杯全国软件设计大赛-C语言校内选拔赛参考答案一、代码填空题(满分50分)1. strlen(str)-1;str[i]=str[j]2.a+b>c&&a+c>b&&b+c>a3.x1或x1!=0或x1>0;x1/2-24.num/100%10==3或num%1000/100==3;!num==0或者num!=05.j<=2或j<3;b[j][i]=a[i][j];i<=2或i<36.&a[i];i%4==0;printf(“\n”)7.x[i-1]+x[i-2];fabs((double)(x[i-1]-x[i]))或者fabs(x[i-1]-x[i])或者 abs(x[i-1]-x[i]);i+28.%;/;j=i,j>=1,j—或者 j=i,j>0;j--9.j=4;a[0]=k10.buf[i]!=buf[strlen(buf)-1-i]二、程序设计(满分50分)1题参考答案:#include "stdafx.h"#include "stdio.h"#include "math.h"int main(int argc, char* argv[]){int n;int i,j;while(1){printf("请从键盘上输入一个大于等于2的整数:");scanf("%d",&n);j=0;if(n<2){printf("输入的数不合法!");}else if(n==2){printf("%d\n",2);break;}else{for(i=2;i<=(int)sqrt(n);i++){if(n%i==0){j=1;break;}}if(j==0){printf("%d\n",n);break;}}}printf("\n");return 0;}2题参考答案:#include "stdafx.h"#include "stdio.h"#define N 10int main(int argc, char* argv[]){int a[N]={12,78,56,34,25,67,9,89,97,46};int i,j,temp;printf("排序前的数组为:\n");for(i=0;i<N;i++){printf("%d\t",a[i]);}printf("\n");for(i=0;i<N;i++){for(j=0;j<N-1-i;j++){if(a[j]<a[j+1]){temp=a[j];a[j]=a[j+1];a[j+1]=temp;}}}printf("排序后的数组为:\n");for(i=0;i<N;i++){printf("%d\t",a[i]);}printf("\n");return 0;}3题参考答案:#include "stdafx.h"#include "stdio.h"int main(int argc, char* argv[]){int x,y,z;for(x=0;x<=10;x++){y=20-2*x;z=30-x-y;if(x+y+z==30){printf("%d\t%d\t%d\n",x,y,z);}}return 0;}杨辉三角参考答案:#include "stdafx.h"#include "stdio.h"#define N 10int main(int argc, char* argv[]){int a[N][N]={{1,0},{1,0},{1,0},{1,0},{1,0},{1,0},{1,0},{1,0},{1,0},{1,0}};int i,j;for(i=1;i<N;i++){for(j=1;j<=i;j++){a[i][j]=a[i-1][j-1]+a[i-1][j];}}for(i=0;i<N;i++){for(j=0;j<=i;j++){printf("%d\t",a[i][j]);}printf("\n");}return 0;}5.第五题参考答案:#include "stdafx.h"#include "stdio.h"#include "math.h"int main(int argc, char* argv[]){int n;int i,j,k;while(1){printf("请输入3到30之间的奇数:");scanf("%d",&n);if(n%2!=0 && n>=3 && n<=30){break;}else{printf("输入错误,");}}int m=n/2+1;for(i=1;i<=m;i++){for(j=i;j<m;j++){printf(" ");}for(k=1;k<=2*i-1;k++){printf("* ");}printf("\n");}for(i=1;i<m;i++){for(j=1;j<=i;j++){printf(" ");}for(k=1;k<=n-2*i;k++){printf("* ");}printf("\n");}return 0;}6题小孩报数参考答案:#include "stdafx.h"#include "stdio.h"#define N 30int main(int argc, char* argv[]) {int i;int a[N];int count,k=0;for(i=0;i<N;i++){a[i]=i+1;}do{count=0;for(i=0;i<N;i++){if(a[i]!=0){k++;}else{count++;}if(k==6){printf("%d\t",a[i]);a[i]=0;k=0;}}}while(count<N);return 0;}。
全国计算机技术与软件专业技术资格(水平)考试2012年上半年程序员上午试卷(考试时间 9 : 00~11 : 30 共 150 分钟)1. 在答题卡的指定位置上正确写入你的姓名和准考证号,并用正规 2B 铅笔在你写入的准考证号下填涂准考证号。
2. 本试卷的试题中共有 75 个空格,需要全部解答,每个空格 1 分,满分75 分。
3. 每个空格对应一个序号,有 A、B、C、D 四个选项,请选择一个最恰当的选项作为解答,在答题卡相应序号下填涂该选项。
4. 解答前务必阅读例题和答题卡上的例题填涂样式及填涂注意事项。
解答时用正规 2B 铅笔正确填涂选项,如需修改,请用橡皮擦干净,否则会导致不能正确评分。
例题● 2012 年上半年全国计算机技术与软件专业技术资格(水平)考试日期是(88)月(89)日。
(88)A. 3 B. 4 C. 5 D. 6(89)A. 20 B. 21 C. 22 D. 23因为考试日期是“5 月 20 日”,故(88)选 C,(89)选 A,应在答题卡序号 88 下对 C 填涂,在序号 89 下对 A 填涂(参看答题卡)。
●Word 2003中的水平标尺如下图所示,图中①和②分别表示(1):图中③和④分别表示(2)。
(1)A.首行缩进和左缩进 B.悬挂缩进和左缩进C.首行缩进和右缩进D.悬挂缩进和右缩进(2)A.首行缩进和左缩进 B.悬挂缩进和左缩进C.首行缩进和右缩进D.悬挂缩进和右缩进●在Excel中,设A1单元格的值为23, A2单元格的值为36,若在A3单元格中输入A1-A2,则A3单元格中的内容为(3);若在A3单元格输入公式“=TEXT(A2, "Y0.00")”,则A3单元格的值为(4)。
(3)A.-13 B.13 C.######D.A1-A2(4) A.¥36 B.Y36.00 C.36.00D.#VALUE●/index.html中的http表示(5)。
A. 123456789B. 0123456789C. 12345678910A. 上述代码执⾏后其输出相当于求1-10的和(包含10)B. 上述代码执⾏后其输出相当于求1-10的和(不包含10)C. 上述代码执⾏后其输出相当于求0-10的和(不包含10)D. 上述代码执⾏时将触发异常A. 1B. 2C. 9D. 10第 8 题 下⾯Python 代码执⾏后的输出是( )。
A. 0#0#0#0#0#0#0#1#B. 0#0#0#0#0#0#1#C. 0#0#0#0#1#for i in range (10): print (i , end = "")12for i in range (10): tnt += i print (tnt )123for i in range (1,10): if i % 2: continue else : break print (i )123456for i in range (10): if i % 3: continueprint ("0", end = "#")else :print ("1",end = "#")123456A. i % 7 == 0 and i % 3 != 0B. not(i % 7) and i % 3 != 0C. i % 7 and i % 3D. i % 7 == 0 and not(i % 3 == 0)A. tnt = tnt + N % 10B. tnt += N % 10C. tnt = N % 10 + tntD. tnt = N % 10第 11 题 下⾯Python 代码执⾏后的输出是( )。
A. 0010120123B. 01012012301234C. 001012012301234D. 01012012301234012345for i in range (100):if __________________________: print (i )123N = int (input ("请输入正整数:"))tnt = 0while N != 0:___________________ N = N // 10print (tnt )123456for i in range (5):for j in range (i ): print (j ,end ="")123A. 将代码最后⼀⾏的print()与if-else 对齐效果相同B. 将代码最后⼀⾏的print()修改为print("")效果相同C. 将Lie * Hang > 9修改为Lie * Hang >= 10效果相同D. 将Lie * Hang > 9修改为Hang * Lie > 9效果相同第 13 题 在数学中N!表⽰N 的阶乘,即1到N 的乘积,如3!=1*2*3。
一、赛题回顾:Du熊正在负责一个大型的项目,目前有K台服务器,有N个任务需要用这K台服务器来完成,所以要把这些任务分成K个部分来完成,在同上台服务器上执行的任务必须是连续的任务,每个任务有各自需要的执行时间。
例如N=5,K=2,每个任务需要时间分别为5,3,1,4,7分钟,那么我们可以分成(5)(3 1 4 7)两部分,这样第一台服务器所花时间就是5分钟,而第二台机器需要花15分钟,当然,所有任务完成的时间是按最迟完成的那台服务器的时间,即这样划分的话完成所有任务所需要的时间就是15分钟。
而另外一种划分方法是(5 3 1)(47),这种划分方案完成所有任务的时间就是11分钟,也是最优的一种划分方案。
现在你的任务就是根据给定的N,K和每个任务要花费的时间,找出使完成所有任务时间最短的方案。
输入:多组输入。
第一行输入N和K(1<=K<=N<=10000)。
第二行输入N个不大于1000的正整数,表示各个任要花费的时间。
N=K=0表示输入结束。
输出:每行输出一个整数,对应对于每个数据(除了N=K=0不用输出)。
样例输入:5 15 3 1 4 75 25 3 1 4 75 35 3 1 4 710 31 2 3 4 5 6 7 8 9 100 0样例输出:2011821二、解题思路:二分一下答案,然后贪心分段,再判断一下分出来的段数是否小于k就可以了。
三、参考代码:本帖隐藏的内容#include<cassert>#include<valarray>#include<cstdlib>#include<cctype>#include<cstring>#include<cstdio>#include<cmath>#include<algorithm>#include<vector>#include<string>#include<iostream>#include<sstream>#include<map>#include<set>#include<queue>#include<stack>#include<fstream>#include<numeric>#include<iomanip>#include<bitset>#include<list>#include<stdexcept>#include<functional>#include<utility>#include<ctime>#include<complex>#include<memory>using namespace std;// begin insertdefines#define forE(elem,v) for(__typeof__(v.begin())_it = v.begin(); _it !=v.end();++_it) for(int_once=1, _done=0; _once; (!_done) ? (_it=v.end(),--_it) :_it ) for(__typeof__(*_it)& elem = * _it; _once && !(_once=0); _done=1) typedef vector<int> VRI;// end insertdefinesbool check(const VRI &a, const int K, const int m){int sNum = 0, acc = 0;forE(ai, a) {if (ai> m) return false;acc += ai;if (acc> m) {acc = ai;sNum++;}}sNum++;return sNum <= K;}int main(int argc, char *argv[]){int N, K;while (true) {scanf("%d%d",&N, &K);if (!N&& !K) break;assert(1 <= N && N <=10000);assert(1 <= K && K <= N);VRI a(N);forE(ai, a) scanf("%d",&ai);forE(ai, a) assert(1 <= ai&& ai <= 1000);int l = 0,r = 0;forE(ai, a) r += ai;while (l <r) {int m = (l+ r) / 2;if(check(a, K, m))r = m;else l = m +1;}printf("%d\n", l);}return 0;}水果忍者一、赛题回顾:题目描述你知道水果忍者吗?这是一个智能手机上面很流行的游戏。
百度之星Astar2012程序设计⼤赛复赛试题(下)百度之星Astar2012程序设计⼤赛复赛试题(下)2012年6⽉17⽇,百度爱好者给⼤家带了2012百度之星Astar2012程序设计⼤赛复赛第⼆场的题⽬,供有兴趣的朋友研究。
复赛第⼆场共3题。
分别是轮⼦上的度度熊2、消灭病毒和BD语⾔翻译器。
第⼀题、轮⼦上的度度熊2百度楼下有⼀块很⼤很⼤的⼴场。
⼴场上有很多轮滑爱好者,每天轮滑爱好者们都会在⼴场上做⼀种叫做平地花式轮滑的表演。
度度熊也想像他们⼀样在轮上飞舞,所以也天天和他们练习。
因为度度熊的天赋,⼀下就学会了好多动作。
但他觉得只是单独的做动作很没意思,动作的组合才更有欣赏性。
平地花式轮滑(简称平花),是穿轮滑鞋在固定数量的标准桩距间做⽆跳起动作的各式连续滑⾏。
度度熊表演的舞台上总共有N个桩,⽽他也从⾃⼰会的动作中挑出M最好看的。
但事情并没有这么简单。
⾸先,每个动作因为复杂度不同,所以经过的桩的个数、消耗的体⼒也不尽相同。
然⽽度度熊的体⼒是有限的。
然后,为了保持连贯性,有些动作是接不起来的,所以每个动作都有他前⾯能接的⼀个动作的列表。
更有甚者,有的动作要考虑前很多个动作才能确定是否能做出来。
但度度熊这次把这些应该连接在⼀起的动作直接定为⼀个动作了。
所以⼀个动作被描述为⼀个序列:{X1, X2, X3, … Xn}表⽰,做这个动作的时候会先前进X1个桩,再前进X2个桩(注意:Xi可能是负数,这表⽰后退|Xi|个桩)。
度度熊的完整表演需要恰好停在最后⼀个桩后⾯,并且在表演过程中不允许有前进/后退⽅向上桩不够的情况发⽣。
最后,评分也很复杂。
这次每个动作没有单独得分了,最终得分=组合得分+剩余体⼒。
表演的时候,需要确定⼀个组合,表演过程中完成这组组合中所有的动作,同样的动作允许多次出现,但不能包含其他多余的动作。
这个组合的分数就是最终得分中的“组合得分”。
举个例⼦,总共有10个桩,体⼒上限是25,有以下⼏个动作:动作1:{1,3,1},需要5的体⼒。
百度之星程序设计大赛初题目1.百度语言翻译机百度的工程师们是非常注重效率的,在长期的开发与测试过程中,他们逐渐创造了一套独特的缩略语。
他们在平时的交谈、会议,甚至在各种技术文档中都会大量运用。
为了让新员工可以更快地适应百度的文化,更好地阅读公司的技术文档,人力资源部决定开发一套专用的翻译系统,把相关文档中的缩略语和专有名词翻译成日常语言。
输入要求:输入数据包含三部分:1. 第一行包含一个整数N(N<=10000),表示总共有多少个缩略语的词条;2. 紧接着有N行的输入,每行包含两个字符串,以空格隔开。
第一个字符串为缩略语(仅包含大写英文字符,长度不超过10字节),第二个字符串为日常语言(不包含空格,长度不超过255字节);3. 从第N+2开始到输入结束为包含缩略语的相关文档(总长度不超过1000000个字节)。
例:6PS 门户搜索部NLP 自然语言处理PM 产品市场部HR 人力资源部PMD 产品推广部MD 市场发展部百度的部门包括PS,PM,HR,PMD,MD等等,其中PS还包括NLP小组。
样例:in.txt输出要求:输出将缩略语转换成日常语言后的文档。
(将缩略语转换成日常语言,其他字符保留原样)。
例:百度的部门包括门户搜索部,产品市场部,人力资源部,产品推广部,市场发展部等等,其中门户搜索部还包括自然语言处理小组。
样例:out.txt2.饭团的烦恼“午餐饭团”是百度内部参与人数最多的民间组织。
同一个部门的、同一所大学的、同一年出生的、使用同一种型号电脑的员工们总是以各种理由组织各种长期的、临时的饭团。
参加饭团,不仅可以以优惠的价格尝到更加丰富的菜式,还可以在吃饭的时候和同事们增进感情。
但是,随着百度的员工越来越多,各个饭团的管理变得繁杂起来。
特别是为了照顾员工们越来越挑剔的胃,饭团的点菜负责人的压力也越来越大。
现在,这个任务就交给“百度之星”了,因为,你将要为所有的百度饭团设计一个自动点菜的算法。
百度之星Astar2012程序设计大赛初赛试题————及答案(第二场)A:度度熊就是要刷排名第一一天度度熊在Baidu游戏大厅中发现了一个隐藏的神奇游戏,叫做“度度熊的逆袭”。
度度熊很好奇到底是什么情况,于是就进入了游戏。
这个游戏很神奇,游戏会给出n个数Ai,度度熊可以任意从中选取一些数,一个数可以选任意多次。
选好之后度度熊得到的分数为度度熊选出的数的Xor(异或)值。
度度熊顿时产生了兴趣,决心要刷至Ranklist的第一名。
但是度度熊犯难了,度度熊不知道自己给出的方案是不是最好的,于是度度熊找到了你,希望你告诉他对于某个回合,度度熊能得到的最高分和第二高分是多少?输入第1行1个数n,接下来1行n个整数表示Ai, (0<=Ai<231)1<=n<=105输出输出一行两个数,表示度度熊能够得到的最高分和第二高分为多少样例输入25 3样例输出6 5#include<stdio.h>main(){long a[100000],i,max1,max2,j,n;scanf("%ld",&n);for(i=0;i<n;i++)scanf("%ld",&a[i]);max1=0;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(max1<a[i]^a[j]){max2=max1;max1=a[i]^a[j];}printf("%ld %ld",max1,max2);}B:度度熊的礼物度度熊拥有一个自己的Baidu空间,度度熊时不时会给空间朋友赠送礼物,以增加度度熊与朋友之间的友谊值。
度度熊在偶然的机会下得到了两种超级礼物,于是决定给每位朋友赠送一件超级礼物。
不同类型的朋友在收到不同的礼物所能达到的开心值是不一样的。
开心值衡量标准是这样的:每种超级礼物都拥有两个属性(A, B),每个朋友也有两种属性(X, Y),如果该朋友收到这个超级礼物,则这个朋友得到的开心值为A*X + B*Y。
由于拥有超级礼物的个数限制,度度熊很好奇如何分配这些超级礼物,才能使好友的开心值总和最大呢?输入第一行n表示度度熊的好友个数。
接下来n行每行两个整数表示度度熊好朋友的两种属性值Xi, Yi。
接下来2行,每行三个整数ki , Ai, Bi,表示度度熊拥有第i种超级礼物的个数以及两个属性值。
1<=n<=1000, 0<=Xi ,Yi, Ai, Bi1+k2>=n输出输出一行一个值表示好友开心值总和的最大值样例输入43 67 41 52 43 3 43 4 3样例输出118提示送给第一种礼物的人有1,3,4,送给第二种礼物的人有2#include <iostream>#include <vector>#include <algorithm>#include <stdio.h>using namespace std;struct dat{double x, y, z;double v;dat(double a, double b, double c, double d):x(a), y(b), z(c), v(d){} dat(){}};struct Val{int i, j;double v;Val(int ti, int tj, double tv):i(ti), j(tj), v(tv){}Val(){}};const int M = 1001;dat web[M];vector<Val> val;double S(int i, int j){return (web[j].x-web[i].x) * (web[j].x-web[i].x) +(web[j].y-web[i].y) * (web[j].y-web[i].y) +(web[j].z-web[i].z) * (web[j].z-web[i].z);}bool cmp(const dat& a, const dat& b){return a.v<b.v;}bool cmp2(const Val& a, const Val& b){ return a.v<b.v;}int faaa[M];int find(int a){int x = a;while(x!=faaa[x]) x = faaa[x];while(a!=faaa[a]){int t = a;a = faaa[a];faaa[t] = x;}return a;}int main(){int n, k;double t, max=0.0, x, y, z;cin>>n>>k;for(int i=0; i<n; i++){faaa[i] = i;cin>>x>>y>>z;t = x*x+y*y+z*z;web[i] = dat(x,y,z,t);val.push_back(Val(i, i, t) );for(int j=0; j<i; j++){val.push_back(Val(i, j, S(i, j)) ); }}sort(val.begin(), val.end(), cmp2); int dif = n-k;int i;for(i=0; dif; i++){int fa = find(val[i].i);int fb = find(val[i].j);if(fa != fb){faaa[fa] = fb;dif --;}}while(val[i].i!=val[i].j && find(val[i].i) == find(val[i].j)) i++;printf("%.6lf\n", val[i].v);return 0;}C:网页聚类有N(N2+ (y_j-y_i)2 + (z_j-z_i)2。
请求出最大的t,使得N个网页可以聚成K类,其中每个类至少包含一个网页,且任意两个位于不同类中网页的相似度都至少为t。
输入第一行包含两个整数N和K,后面N行每行三列,分别为x、y、z。
输出最大的t的值,使用四舍五入在小数点后保留六位小数。
样例输入5 30.1 0.2 0.40.2 0.8 0.70.3 0.4 0.50.0 0.5 0.00.3 0.3 0.2样例输出0.170000D:小王子的表演为了庆祝女王的生日,王宫前的广场上正举行着一场神枪手的表演赛。
这些神枪手中包括军队里的射击天才,山中的顶级猎人,异国的神奇牛仔……来自五湖四海的高手汇聚一堂。
在比赛中技压群雄的人,不仅仅能给女王的生日添上华丽的祝福,还能够获得无上的荣誉。
比赛的规则很简单。
场中存在着N个靶子,每个枪手允许在场内任何一点向任意方向射击一次,穿透最多靶子数目的枪手就是胜利者。
从广场的平面图来看,每个靶子都可以被认为是一个点,并且第i个靶子的运动轨迹是以点(xi ,yi)为起点,点(xi +ai,yi+bi)为终点的线段。
发令枪响的那一刻,每个靶子同时从起点到终点开始匀速运动。
虽然靶子各自的速度不尽相同,但是所有的靶子将会在10秒后同时到达终点,选手必须在这10秒之内(包含开始和结束的瞬间)进行射击。
子弹的速度可以认为是无穷大并且射击场没有边界。
小王子偷偷地也报名参加的这次比赛,希望能在母亲的生日上表现出自己的成长。
聪明的小王子早就通过观察把所有靶子的运动情况强记在心,那么,小王子最完美的射击究竟能够穿透多少靶子呢?输入第一行只有一个整数,N, (1<=N<=50)之后每一行包含4个整数,xi ,yi,ai,bi,分别表示第i的靶子运动轨迹的起点(xi ,yi),以及方向(ai,bi),假设这些整数的绝对值都不大于1000。
输出只需要输出一个整数,表示最优情况下小王子一发子弹能够击穿的靶子数目样例输入9-14 -14 6 0-12 -14 0 2-10 -12 0 -2-12 -12 2 0-14 -14 0 6-8 -14 0 6-8 -8 -6 0-13 -11 1 2-9 -11 -1 2样例输出4提示两个靶子可能会在某些时刻重叠在一起,此时它们不会发生碰撞而是沿着各自的轨迹继续运动下去。
数据中没有两个运动完全相同的靶子。