336 条题解
-
0pyh119fans LV 3 @ 2008-10-19 21:53:44
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
快吧?
用unsigned long存储,每8位压缩一次.
AC的人可以挑战下http://www.spoj.pl/problems/MUL/ -
02008-10-17 20:56:52@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 25ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:25ms可爱的Lora Temper,真快
-
02008-10-14 21:16:08@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 9ms
---|---|---|---|---|---|---|---|-
不开5000还真过不了 郁闷啊type bn=array[0..5000] of longint;
var
a,b,c:bn;
sa,sb,st:ansistring;
l,i,tm:longint;
procedure stn(s:ansistring;var num:bn);
begin
while length(s) mod 4 0 do insert('0',s,1);
l:=length(s);
for i:=1 to l div 4 do
begin
st:=copy(s,l-i*4+1,4);
val(st,num[i]);
end;
num[0]:=i;
end;
procedure multiply(a,b:bn;var c:bn);
var i,j:longint;
begin
for i:=1 to a[0] do
for j:=1 to b[0] do
begin
inc(c,a[i]*b[j]);
inc(c,c div 10000);
c:=c mod 10000;
end;
if c[a[0]+b[0]]=0 then c[0]:=a[0]+b[0]-1 else c[0]:=a[0]+b[0];
end;begin
readln(sa);readln(sb);
stn(sa,a);stn(sb,b);
multiply(a,b,c);
write(c[c[0]]);
for i:=c[0]-1 downto 1 do
begin
tm:=1000;
while tm0 do
begin
write(c[i] div tm);
c[i]:=c[i] mod tm;
tm:=tm div 10;
end;
end;
writeln;
end. -
02008-10-14 08:21:30@
Begin
ReadLn(Str);
L := Length(Str);
k := L;
L := L Div 5 + 1;
Val(Copy(Str, 1, k Mod 5), A[L], s);
k := k Mod 5 + 1;
For i:= L-1 DownTo 1 Do Begin
Val(Copy(Str, k, 5), A[i], s);
Inc(k, 5);
End;
A[0] := L;ReadLn(Str);
L := Length(Str);
k := L;
L := L Div 5 + 1;
Val(Copy(Str, 1, k Mod 5), B[L], s);
k := k Mod 5 + 1;
For i:= L-1 DownTo 1 Do Begin
Val(Copy(Str, k, 5), B[i], s);
Inc(k, 5);
End;
B[0] := L;For i:= 1 To A[0] Do
For j:= 1 To B[0] Do Begin
Ans[i + j - 1] := Ans[i + j - 1] + A[i] * B[j];
Ans[i + j] := Ans[i + j] + Ans[i + j - 1] Div Jw;
Ans[i + j - 1] := Ans[i + j - 1] Mod Jw
End;L := A[0] + B[0];
While (Ans[L] = 0) And (L > 1) Do Dec(L);
While Ans[L] > Jw Do Begin
Inc(L);
Ans[L] := Ans[L - 1] Div Jw;
Ans[L - 1] := Ans[L - 1] Mod Jw;
End;If L > 1 Then Begin
Write(Ans[L]);
For i:= L-1 DownTo 1 Do Begin
If Ans[i] >= Pd Then Write(Ans[i]);
If (Ans[i] >= 1000) And (Ans[i] < Pd) Then Write('0', Ans[i]);
If (Ans[i] >= 100) And (Ans[i] < 1000) Then Write('00', Ans[i]);
If (Ans[i] >= 10) And (Ans[i] < 100) Then Write('000', Ans[i]);
If Ans[i] < 10 Then Write('0000', Ans[i]);
End;
End Else Write(Ans[1]);WriteLn;
End.
-
02008-10-11 10:46:29@
题解 Solution
我的题解 - My Solution
你可以在这里写上你的解题思路或者解题方法等
但规定要求不能贴出任何有关于此题的程序代码---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|--
noso编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 41ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:41ms
4位压缩75 答案错误
8位100
不知道为什么
( 2008-10-10 15:15:44 )lyrics
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 728ms压位50分,不知错误。。不压居然过了..
( 2008-10-4 0:46:49 )pjx_31
测试数据最后一个比10000位大
题目又说小于10000位
wa了一次...
数组开大就可以过了
( 2008-10-3 17:54:12 )megatron
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
39行搞定,4位压缩
Int64王道阿
( 2008-10-2 16:14:58 )ltlxksz
program P1040;
const
HP_Length=5001;
HP_Var_Length=4;
HP_Max=10000;
type
HP_String_Type=ansistring;
HP_Length_Var_Type=smallint;
HP_Var_Type=longint;
HP_Total_Length_Type=smallint;
HP_Type=record
Num:array[1..HP_Length]of HP_Var_Type;
Length:HP_Length_Var_Type;
Sign:boolean;
end;
var
a,b:HP_Type;
procedure HP_readln(var HP:HP_Type);
var
s:HP_String_Type;
Code:smallint;
i,Point,k,s_Length:HP_Total_Length_Type;
begin
fillchar(HP,sizeof(HP),0);
readln(s);
Point:=length(s);
i:=HP_Length;
while Point>0 do
begin
k:=Point-HP_Var_Length;
if k -
02008-10-10 15:15:44@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 41ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:41ms
4位压缩75 答案错误
8位100
不知道为什么 -
02008-10-04 00:46:49@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 728ms压位50分,不知错误。。不压居然过了..
-
02008-10-03 17:54:12@
测试数据最后一个比10000位大
题目又说小于10000位
wa了一次...
数组开大就可以过了
-
02008-10-02 16:14:58@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
39行搞定,4位压缩
Int64王道阿 -
02008-10-01 12:26:35@
program P1040;
const
HP_Length=5001;
HP_Var_Length=4;
HP_Max=10000;
type
HP_String_Type=ansistring;
HP_Length_Var_Type=smallint;
HP_Var_Type=longint;
HP_Total_Length_Type=smallint;
HP_Type=record
Num:array[1..HP_Length]of HP_Var_Type;
Length:HP_Length_Var_Type;
Sign:boolean;
end;
var
a,b:HP_Type;
procedure HP_readln(var HP:HP_Type);
var
s:HP_String_Type;
Code:smallint;
i,Point,k,s_Length:HP_Total_Length_Type;
begin
fillchar(HP,sizeof(HP),0);
readln(s);
Point:=length(s);
i:=HP_Length;
while Point>0 do
begin
k:=Point-HP_Var_Length;
if k -
02008-09-23 23:31:00@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 9ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:9ms
建议采用2^32进制来运算,这样比较快,效率较高。注意进制得转换。 -
02008-09-22 21:14:07@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 541ms
这是非puppy 的测试
楼下是puppy 的测试,
显然有差距 -
02008-09-22 13:46:32@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 478ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:478ms可爱的puppy
-
02008-09-20 11:14:07@
4位的
program gjc4;
var a,b,c2:array[1..10000] of integer;
c1:array[0..40000] of char;
s:array[1..10000]of string[4];
i,j,j1,k1,k2,k:integer;
t:longint;
c:char;
begin
i:=1;
repeat
read(c);
c1[i]:=c;
inc(i);
until c=chr(13);
k:=1;k1:=1;
for j:=i-2 downto 1 do
begin
inc(j1);
a[k1]:=(ord(c1[j])-48)*k+a[k1];k:=k*10;
if j1=4 then begin inc(k1);k:=1;j1:=0;end;
end;
if j1=0 then dec(k1);
i:=0;
repeat
read(c);
c1[i]:=c;
inc(i);
until c=chr(13);
k:=1;k2:=1;j1:=0;
for j:=i-2 downto 1 do
begin
inc(j1);
b[k2]:=(ord(c1[j])-48)*k+b[k2];k:=k*10;
if j1=4 then begin inc(k2);k:=1;j1:=0;end;
end;
if j1=0 then dec(k2);
if (a[k1]=0) or (b[k2]=0) then begin writeln(0);halt;end;
for i:=1 to k1 do
for j:=1 to k2 do
begin
t:=c2+a[i]*b[j];
c2:=c2+(t div 10000);
c2:=t mod 10000;
end;
if c2[k1+k2]=0 then t:=k1+k2-1
else t:=k1+k2;
for i:=1 to t do str(c2[i],s[i]);
for i:=1 to t-1 do
begin
j1:=length(s[i]);
if j1 -
02008-09-18 21:41:16@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:运行超时...
---|---|---|---|---|---|---|---|-
Unaccepted 有效得分:75 有效耗时:0ms----Lora Temper----垃圾测评
8位一进都超时.
很好 很强大
很黄 很暴力 -
02008-09-17 19:22:52@
很简单的高精度
-
02008-09-14 15:25:04@
为什么没过?
var a,b,c:array[1..1000]of 0..9;
n1,n2:string;
la,lb,lc,i,j,x:longint;
begin
readln(n1);
readln(n2);
la:=length(n1);
lb:=length(n2);
for i:=1 to la do a[la-i+1]:=ord(n1[i])-ord('0');
for i:=1 to lb do b[lb-i+1]:=ord(n2[i])-ord('0');
for i:=1 to la do begin
x:=0;
for j:=1 to lb do
begin
x:=a[i]*b[j]+x div 10+c;
c:=x mod 10;
end;
c:=x div 10;
end;
lc:=i+j;
while (c[lc]=0)and(lc>1)do dec(lc);
for i:=lc downto 1 do write(c[i]);
writeln;
end. -
02008-09-11 20:31:28@
普通一位高精度也可以过只要 评测机是puppy!!!!听说是几乎比tiger 快了10倍
-
02008-09-10 13:38:22@
var
a,b,c:array[1..100000]of longint;
s:ansistring;
i,j,x,la,lb,lc:longint;
begin
readln(s);
la:=length(s);
for i:=1 to la do a[la-i+1]:=ord(s[i])-ord('0');
readln(s);
lb:=length(s);
for i:=1 to lb do b[lb-i+1]:=ord(s[i])-ord('0');
fillchar(c,sizeof(c),0);
for i:=1 to la do
begin
x:=0;
for j:=1 to lb do
begin
x:=a[i]*b[j]+x div 10 + c;
c:=x mod 10;
end;
c:=x div 10;
end;
lc:=i+j;
while (c[lc]=0)and(lc>1) do dec(lc);
for i:=lc downto 1 do write(c[i]);writeln;
end. -
02008-09-09 20:28:08@
puppy!!!!
我的马甲号
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 9ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:9ms但是
一样的程序
我的正式号
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:运行超时...
├ 测试数据 04:运行超时...
---|---|---|---|---|---|---|---|-
Unaccepted 有效得分:50 有效耗时:0ms是不是喝高了?
我压四位的!!!!n 个小时后>.>.>.>>> 换了DOLPHIN
于是
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 25ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:25ms结论:这真是太不好了!