167 条题解
-
0czl0544 LV 7 @ 2009-09-25 00:34:17
其实还好,没让你用扩大进制数
-
02009-09-21 21:24:00@
交了4遍没过 发现是高精度。。。
-
02009-09-17 19:06:48@
var
a,b,r,m,n,min,t:integer;begin
readln(a,b);
if a -
02009-09-16 20:40:44@
var a,b,c,i:integer;
begin
readln(a,b);
if a -
02009-09-10 20:22:07@
凌晨之雨,int64型的数据可以"FOR"?不得不说,你真的A的离奇...
-
02009-09-10 20:00:29@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:运行超时...
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Unaccepted 有效得分:90 有效耗时:0ms第九个点是怎么回事啊?
我交了几遍都是这样
-
02009-09-04 23:30:52@
题目很水数据很牛- -鉴定完毕~ ~
-
02009-09-01 16:14:14@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msvar a,b,c,i:int64;
begin
readln(a,b);
if a -
02009-08-18 16:05:41@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
高精大团圆,耐心+细心=秒杀
先求高精gcd
再求lcm:=a/gcd(a,b)*b -
02009-08-11 09:52:34@
type
arr=array[-1..400]of integer;
var
ans,a,b:arr;procedure init;
var
i:integer;
s1,s2:string;
begin
readln(s2);
s1:=copy(s2,1,pos(' ',s2)-1);
a[0]:=length(s1);
for i:=1 to a[0] do a[a[0]+1-i]:=ord(s1[i])-48;
delete(s2,1,pos(' ',s2));
b[0]:=length(s2);
for i:=1 to b[0] do b[b[0]+1-i]:=ord(s2[i])-48;
end;function jia(a,b:arr):arr;
var
i:integer;
c:arr;
begin
fillchar(c,sizeof(c),0);
if a[0]0 then inc(c[0]);
jia:=c;
end;function jian(a,b:arr):arr;
var
i:integer;
c:arr;
begin
fillchar(c,sizeof(c),0);
for i:=1 to a[0] do
begin
if a[i]1) do dec(c[0]);
jian:=c;
end;function cheng(a,b:arr):arr;
var
i,j:integer;
c:arr;
begin
fillchar(c,sizeof(c),0);
for i:=1 to a[0] do
for j:=1 to b[0] do
c:=c+a[i]*b[j];
c[0]:=a[0]+b[0]-1;
for i:=1 to c[0] do
begin
c:=c+c[i] div 10;
c[i]:=c[i] mod 10;
end;
while c[c[0]+1]0 do
begin
inc(c[0]);
c[c[0]+1]:=c[c[0]] div 10;
c[c[0]]:=c[c[0]] mod 10;
end;
cheng:=c;
end;function compare(a,b:arr):boolean;
var i:integer;
begin
if a[0]>b[0] then exit(true);
if b[0]>a[0] then exit(false);
for i:=a[0] downto 1 do
if a[i]b[i] then
if a[i]>b[i] then exit(true)
else exit(false);
exit(false);
end;procedure move1(var a,b:arr);
var i:integer;
begin
while compare(a,b) do
begin
inc(b[0]);
for i:=b[0] downto 2 do
b[i]:=b;
inc(b[-1]);
b[1]:=0;
end;
if compare(b,a) then
begin
for i:=1 to b[0]-1 do
b[i]:=b;
b[b[0]]:=0;
dec(b[0]);
dec(b[-1]);
end;
end;procedure move2(var a,b:arr);
var i:integer;
begin
while (compare(b,a)) and (b[-1]>0) do
begin
for i:=1 to b[0]-1 do
b[i]:=b;
b[b[0]]:=0;
dec(b[-1]);
dec(b[0]);
end;
end;function chu(a,b:arr):arr;
var
c:arr;
begin
fillchar(c,sizeof(c),0);
move1(a,b);
while not compare(b,a) do
begin
a:=jian(a,b);
inc(c[b[-1]+1]);
if b[-1]+1>c[0] then c[0]:=b[-1]+1;
if b[-1]>0 then move2(a,b);
end;
chu:=c;
end;function yu(a,b:arr):arr;
begin
move1(a,b);
while not compare(b,a) do
begin
a:=jian(a,b);
move2(a,b);
end;
yu:=a;
end;function gcd(a,b:arr):arr;
var t:arr;
begin
while compare(a,b) or compare(b,a) do
begin
if compare(b,a) then
begin
t:=a;
a:=b;
b:=t;
end;
if (b[0]=1) and (b[1]=0) then exit(a);
if (b[0]=1) and (b[1]=1) then exit(b);
a:=yu(a,b);
end;
gcd:=a;
end;function lcm(a,b:arr):arr;
var
ji,g:arr;
begin
ji:=cheng(a,b);
g:=gcd(a,b);
lcm:=chu(ji,g);
end;procedure outit;
var i:integer;
begin
for i:=ans[0] downto 1do
write(ans[i]);
end;begin
init;
ans:=lcm(a,b);
outit;
end. -
02009-08-03 14:47:20@
type
arr=array[-1..400]of integer;
var
ans,a,b:arr;procedure init;
var
i:integer;
s1,s2:string;
begin
readln(s2);
s1:=copy(s2,1,pos(' ',s2)-1);
a[0]:=length(s1);
for i:=1 to a[0] do a[a[0]+1-i]:=ord(s1[i])-48;
delete(s2,1,pos(' ',s2));
b[0]:=length(s2);
for i:=1 to b[0] do b[b[0]+1-i]:=ord(s2[i])-48;
end;function jia(a,b:arr):arr;
var
i:integer;
c:arr;
begin
fillchar(c,sizeof(c),0);
if a[0]0 then inc(c[0]);
jia:=c;
end;function jian(a,b:arr):arr;
var
i:integer;
c:arr;
begin
fillchar(c,sizeof(c),0);
for i:=1 to a[0] do
begin
if a[i]1) do dec(c[0]);
jian:=c;
end;function cheng(a,b:arr):arr;
var
i,j:integer;
c:arr;
begin
fillchar(c,sizeof(c),0);
for i:=1 to a[0] do
for j:=1 to b[0] do
c:=c+a[i]*b[j];
c[0]:=a[0]+b[0]-1;
for i:=1 to c[0] do
begin
c:=c+c[i] div 10;
c[i]:=c[i] mod 10;
end;
while c[c[0]+1]0 do
begin
inc(c[0]);
c[c[0]+1]:=c[c[0]] div 10;
c[c[0]]:=c[c[0]] mod 10;
end;
cheng:=c;
end;function compare(a,b:arr):boolean;
var i:integer;
begin
if a[0]>b[0] then exit(true);
if b[0]>a[0] then exit(false);
for i:=a[0] downto 1 do
if a[i]b[i] then
if a[i]>b[i] then exit(true)
else exit(false);
exit(false);
end;procedure move1(var a,b:arr);
var i:integer;
begin
while compare(a,b) do
begin
inc(b[0]);
for i:=b[0] downto 2 do
b[i]:=b;
inc(b[-1]);
b[1]:=0;
end;
if compare(b,a) then
begin
for i:=1 to b[0]-1 do
b[i]:=b;
b[b[0]]:=0;
dec(b[0]);
dec(b[-1]);
end;
end;procedure move2(var a,b:arr);
var i:integer;
begin
while (compare(b,a)) and (b[-1]>0) do
begin
for i:=1 to b[0]-1 do
b[i]:=b;
b[b[0]]:=0;
dec(b[-1]);
dec(b[0]);
end;
end;function chu(a,b:arr):arr;
var
c:arr;
begin
fillchar(c,sizeof(c),0);
move1(a,b);
while not compare(b,a) do
begin
a:=jian(a,b);
inc(c[b[-1]+1]);
if b[-1]+1>c[0] then c[0]:=b[-1]+1;
if b[-1]>0 then move2(a,b);
end;
chu:=c;
end;function yu(a,b:arr):arr;
begin
move1(a,b);
while not compare(b,a) do
begin
a:=jian(a,b);
move2(a,b);
end;
yu:=a;
end;function gcd(a,b:arr):arr;
var t:arr;
begin
while compare(a,b) or compare(b,a) do
begin
if compare(b,a) then
begin
t:=a;
a:=b;
b:=t;
end;
if (b[0]=1) and (b[1]=0) then exit(a);
if (b[0]=1) and (b[1]=1) then exit(b);
a:=yu(a,b);
end;
gcd:=a;
end;function lcm(a,b:arr):arr;
var
ji,g:arr;
begin
ji:=cheng(a,b);
g:=gcd(a,b);
lcm:=chu(ji,g);
end;procedure outit;
var i:integer;
begin
for i:=ans[0] downto 1do
write(ans[i]);
end;begin
init;
ans:=lcm(a,b);
outit;
end. -
02009-07-26 10:15:42@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0mstype
arr=array[-1..400]of integer;
var
ans,a,b:arr;procedure init;
var
i:integer;
s1,s2:string;
begin
readln(s2);
s1:=copy(s2,1,pos(' ',s2)-1);
a[0]:=length(s1);
for i:=1 to a[0] do a[a[0]+1-i]:=ord(s1[i])-48;
delete(s2,1,pos(' ',s2));
b[0]:=length(s2);
for i:=1 to b[0] do b[b[0]+1-i]:=ord(s2[i])-48;
end;function jia(a,b:arr):arr;
var
i:integer;
c:arr;
begin
fillchar(c,sizeof(c),0);
if a[0]0 then inc(c[0]);
jia:=c;
end;function jian(a,b:arr):arr;
var
i:integer;
c:arr;
begin
fillchar(c,sizeof(c),0);
for i:=1 to a[0] do
begin
if a[i]1) do dec(c[0]);
jian:=c;
end;function cheng(a,b:arr):arr;
var
i,j:integer;
c:arr;
begin
fillchar(c,sizeof(c),0);
for i:=1 to a[0] do
for j:=1 to b[0] do
c:=c+a[i]*b[j];
c[0]:=a[0]+b[0]-1;
for i:=1 to c[0] do
begin
c:=c+c[i] div 10;
c[i]:=c[i] mod 10;
end;
while c[c[0]+1]0 do
begin
inc(c[0]);
c[c[0]+1]:=c[c[0]] div 10;
c[c[0]]:=c[c[0]] mod 10;
end;
cheng:=c;
end;function compare(a,b:arr):boolean;
var i:integer;
begin
if a[0]>b[0] then exit(true);
if b[0]>a[0] then exit(false);
for i:=a[0] downto 1 do
if a[i]b[i] then
if a[i]>b[i] then exit(true)
else exit(false);
exit(false);
end;procedure move1(var a,b:arr);
var i:integer;
begin
while compare(a,b) do
begin
inc(b[0]);
for i:=b[0] downto 2 do
b[i]:=b;
inc(b[-1]);
b[1]:=0;
end;
if compare(b,a) then
begin
for i:=1 to b[0]-1 do
b[i]:=b;
b[b[0]]:=0;
dec(b[0]);
dec(b[-1]);
end;
end;procedure move2(var a,b:arr);
var i:integer;
begin
while (compare(b,a)) and (b[-1]>0) do
begin
for i:=1 to b[0]-1 do
b[i]:=b;
b[b[0]]:=0;
dec(b[-1]);
dec(b[0]);
end;
end;function chu(a,b:arr):arr;
var
c:arr;
begin
fillchar(c,sizeof(c),0);
move1(a,b);
while not compare(b,a) do
begin
a:=jian(a,b);
inc(c[b[-1]+1]);
if b[-1]+1>c[0] then c[0]:=b[-1]+1;
if b[-1]>0 then move2(a,b);
end;
chu:=c;
end;function yu(a,b:arr):arr;
begin
move1(a,b);
while not compare(b,a) do
begin
a:=jian(a,b);
move2(a,b);
end;
yu:=a;
end;function gcd(a,b:arr):arr;
var t:arr;
begin
while compare(a,b) or compare(b,a) do
begin
if compare(b,a) then
begin
t:=a;
a:=b;
b:=t;
end;
if (b[0]=1) and (b[1]=0) then exit(a);
if (b[0]=1) and (b[1]=1) then exit(b);
a:=yu(a,b);
end;
gcd:=a;
end;function lcm(a,b:arr):arr;
var
ji,g:arr;
begin
ji:=cheng(a,b);
g:=gcd(a,b);
lcm:=chu(ji,g);
end;procedure outit;
var i:integer;
begin
for i:=ans[0] downto 1do
write(ans[i]);
end;begin
init;
ans:=lcm(a,b);
outit;
end.
//终于AC了……好高兴! -
02009-07-08 10:01:02@
program ex1;
var
a,b,c,d,e,f:longint;
begin
read(a,b);
if a -
02009-07-02 14:03:11@
无聊的题目!!!
-
02009-05-30 19:56:28@
高精度gcd,千万不能递归!!!
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:运行时错误...| 错误号: 202 | 堆栈溢出错
├ 测试数据 06:运行时错误...| 错误号: 106 | 无效数字格式
├ 测试数据 07:运行时错误...| 错误号: 106 | 无效数字格式
├ 测试数据 08:运行时错误...| 错误号: 106 | 无效数字格式
├ 测试数据 09:运行时错误...| 错误号: 106 | 无效数字格式
├ 测试数据 10:运行时错误...| 错误号: 106 | 无效数字格式
---|---|---|---|---|---|---|---|-
Unaccepted 有效得分:40 有效耗时:0ms
用递归就这结果!!!!!!!!!!!!!!!!!!!!!!!!!!!! -
02009-05-29 08:29:25@
出现灵异事件了!
第一次提交,首先显示为80分,打开结果后,发现2个点202一个点超时,分数变成了70!
第二次用数组模拟栈,显示AC了。打开结果后,发现超时两个点,分数变为80!
然而Flag显示为AC!好奇怪!这道题用到了高精度乘法、高精度除法、高精度模运算、高精度最大公约数、高精度数比较大小,可谓是高精度题的经典中的经典哦!
-
02009-05-13 18:10:42@
试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms -
02009-05-02 15:15:07@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
本人第一次高精度除法,取模。都在这儿了。幸好一次AC。。。 -
02009-04-30 13:54:39@
var a,b,c,i:int64;
begin
readln(a,b);
if a -
02009-04-13 10:54:44@
第一次写运算符重载。。
除法直接二分结果(我比较猥琐)