33 条题解
-
0318683708 LV 3 @ 2009-01-18 13:00:12
PROGRAM yanghui(input,output);
VAR
c,e,n,shuangshu:integer;
z:boolean;
h:array[1..100,1..100]of integer;
begin
readln(n);
shuangshu:=0;
fillchar(h,sizeof(h),1);
for c:=2 to n do
begin
for e:=2 to c do
begin
h[e,c]:=h[e-1,c-1]+h[e,c-1];
z:=odd(h[e,c]);
if z=false
then shuangshu:=shuangshu+1;
end;
end;
writeln(shuangshu);
end. -
02009-01-08 20:29:00@
果然easy......
-
02009-01-05 12:45:41@
haodi
-
02009-01-04 17:45:09@
CURIMIT 你不早说这个题解 害我把高精度加减乘除和快速幂 全部都用上了
狂晕啊 -
02009-01-04 17:42:14@
一定要用ANSISTRING 否则最后3点都过不去
-
02009-01-02 10:30:07@
猥琐题
-
02008-12-28 19:25:46@
哪位大牛说一下规律
-
02008-12-27 16:59:22@
递归就可以,但是想了想给出了优化,不用递归直接运算就好了.
提示:二进制.ps:好久没写高精度了..这题调了好久,不过还好直接过了.
-
02009-07-17 08:23:38@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
├ 测试数据 11:答案正确... 0ms
├ 测试数据 12:答案正确... 0ms
├ 测试数据 13:答案正确... 0ms
├ 测试数据 14:答案正确... 0ms
├ 测试数据 15:答案正确... 0ms
├ 测试数据 16:答案正确... 0ms
├ 测试数据 17:答案正确... 0ms
├ 测试数据 18:答案正确... 0ms
├ 测试数据 19:答案正确... 0ms
├ 测试数据 20:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms高精度秒杀!
这是一道汇集了高精度整个家族于一体的题目...
-
02009-01-02 19:09:13@
Curimit 大牛太谦虚了~~~
这道题要是没有题解的话 难度应该可以达到5滴 -
02008-12-27 14:04:11@
zlq抢了
-
02008-12-27 13:35:53@
有规律的说。。。
-
-12009-07-24 10:27:53@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
├ 测试数据 11:答案正确... 0ms
├ 测试数据 12:答案正确... 0ms
├ 测试数据 13:答案正确... 0ms
├ 测试数据 14:答案正确... 0ms
├ 测试数据 15:答案正确... 0ms
├ 测试数据 16:答案正确... 0ms
├ 测试数据 17:答案正确... 0ms
├ 测试数据 18:答案正确... 0ms
├ 测试数据 19:答案正确... 0ms
├ 测试数据 20:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msprogram P1494;
type array1=array[1..100] of longint;
array2=array[1..170] of longint;
var a,c,d,e,f:array1;
b:array2;
i,j,k,l,n,t:longint;
s:string;
procedure ga(var p,q:array1);
var i:longint;
begin
k:=100;
while (q[k]=0) and (k>1) do dec(k);
for i:=1 to k do inc(p[i],q[i]);
k:=100;
while (p[k]=0) and (k>1) do dec(k);
for i:=1 to k do
if p[i]>9 then
begin
p:=p+p[i] div 10;
p[i]:=p[i] mod 10;
end;
end;
procedure gs(var p,q:array1);
begin
k:=100;
while (q[k]=0) and (k>1) do dec(k);
for i:=1 to k do dec(p[i],q[i]);
k:=100;
while (p[k]=0) and (k>1) do dec(k);
for i:=1 to k do
if p[i]1) do dec(l1);
l2:=100;
while (q[l2]=0) and (l2>1) do dec(l2);
for i:=1 to l1 do
for j:=1 to l2 do
gc:=gc+p[i]*q[j];
for i:=1 to l1+l2 do
if gc[i]>9 then
begin
gc:=gc+gc[i] div 10;
gc[i]:=gc[i] mod 10;
end;
end;
function gk(p:array1;q,r:longint):array1;
var i,u,w:longint;
begin
w:=q;
for i:=2 to 10 do w:=w*q;
u:=r div 10;
for j:=1 to u do
begin
k:=100;
while (p[k]=0) and (k>1) do dec(k);
for i:=1 to k do p[i]:=p[i]*w;
k:=k+5;
for i:=1 to k do
if p[i]>9 then
begin
p:=p+p[i] div 10;
p[i]:=p[i] mod 10;
end;
end;
u:=r mod 10;
for j:=1 to u do
begin
k:=100;
while (p[k]=0) and (k>1) do dec(k);
for i:=1 to k do p[i]:=p[i]*q;
k:=k+1;
for i:=1 to k do
if p[i]>9 then
begin
p:=p+p[i] div 10;
p[i]:=p[i] mod 10;
end;
end;
exit(p);
end;
function com(p:array1):boolean;
begin
k:=100;
while (p[k]=0) and (k>1) do dec(k);
if p[k]0 then exit(true) else exit(false);
end;
procedure DtoB(p:array1);
var step:longint;
begin
step:=0;
while com(p) do
begin
inc(step);
k:=100;
while (p[k]=0) and (k>1) do dec(k);
for i:=k downto 2 do
begin
p:=p+p[i] mod 2*10;
p[i]:=p[i] div 2;
end;
b[step]:=p[1] mod 2;
p[1]:=p[1] div 2;
end;
end;
begin
fillchar(a,sizeof(a),0);
fillchar(b,sizeof(b),0);
fillchar(c,sizeof(c),0);
fillchar(d,sizeof(d),0);
t:=0;
d[1]:=1;
readln(s);
l:=length(s);
for i:=1 to l do
begin
val(s[l-i+1],a[i]);
f[i]:=a[i];
end;
inc(a[1]);
DtoB(a);
n:=170;
while (b[n]=0) and (n>1) do dec(n);
for i:=n downto 1 do
if b[i]=1 then
begin
inc(t);
e:=gc(gk(d,2,t-1),gk(d,3,i-1));
ga(c,e);
end;
inc(f[1],2);
a:=gc(a,f);
k:=100;
while (a[k]=0) and (k>1) do dec(k);
for i:=k downto 2 do
begin
a:=a+a[i] mod 2*10;
a[i]:=a[i] div 2;
end;
a[1]:=a[1] div 2;
gs(a,c);
k:=100;
while (a[k]=0) and (k>1) do dec(k);
for i:=k downto 2 do write(a[i]);
writeln(a[1]);
end.
"k:=100"错输成"k:=50",郁闷了我大半年
(1~16秒杀,17~20错误答案)P.S.用string照秒不误,焉用ansistring