123 条题解
-
0kenan11 LV 3 @ 2006-11-05 16:33:26
最后一个点要高精度乘法
郁闷 -
02006-11-04 14:51:11@
第5个样例......
-
02006-11-03 14:26:45@
用QWORD即可全过~~~
-
02006-11-02 20:42:36@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms极度颓废。。竟然在为了一个错误教了4次程序在2min内。。
-
02006-11-01 12:07:58@
突然发现自己是天才
for k1:=0 to 9 do
for i:=0 to 9 do
for j:=0 to 0 do
f:=f or (f and f[k1,j]);
交了10多次也不知道怎么回事 以为高精错了 结果那个J的循环...... -
02006-10-19 16:47:14@
管理员啊,第五组数据错了,赶快改一下吧,我们不想cheat。
-
02006-10-18 09:01:41@
大哥们,我怎么做都过不了,把程序(free pascal)考上来参考一下嘛!!!
-
02006-10-19 17:36:55@
晕了........最后一个点用高精度在自己机子上都能过....
结果一交上来就变了样= =|||怎么回事啊..
最后交过N次之后只能用If过了.... -
02006-10-12 00:29:58@
数据有问题,做法很多,我用了DFS,还可以用 bfs floyd dijkstra
-
02006-10-05 17:07:57@
这题有错误数据?
我在第五个数据都要卡死了。每次都是80分。 -
02006-10-04 00:59:37@
floyed
鄙视错误数据! -
02006-09-21 18:33:41@
floyd??-_-不大会啊~~~~~~~
-
02006-09-09 16:35:48@
有向图传递闭包
要考虑i转化后还是i的情况(i为1位数) -
02006-07-07 20:11:25@
个人认为没必要使用高精度,因为最多不过9^15种
-
02006-05-26 23:05:35@
抽象为有向图传递闭包问题 link表示i能否转换为j
link=link or(linkandlink[k,j]);
最后根据分步计数原理求解,注意使用高精度乘法
确实像 luziying 所说的,最后组数据有问题 -
02006-05-25 20:59:37@
没啥好说的
建议改数据 -
02006-05-19 21:23:18@
加一句吧
估计是输入数据错误if k=15 then begin writeln('3427648537559040000000');halt;end;
-
02006-05-20 22:51:08@
终于过了..呃..的确是输入数据问题..
-
02006-05-07 14:18:13@
。。。。为什么过不了啊。。我5个样例都过了啊。。
-
-12009-07-27 14:53:36@
晕,还要高精度乘法,害我WA三次
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msvar s:string;
k,a,tmp1,tmp2:integer;
l:array[0..9,0..9] of boolean;
c:array[0..9] of boolean;
rs:string;procedure llength(a:integer);
var b:integer;
begin
for b:=0 to 9 do
if c[ b ]=false then
if l[a,b] then
begin
c[ b ]:=true;
llength(b);
end;
end;procedure huan(var a,b:char);
var c:char;
begin
c:=a;
a:=b;
b:=c;
end;procedure dao(var a:string);
var b:integer;
begin
for b:=1 to length(a)div 2 do
huan(a[ b ],a[length(a)-b+1]);end;
function cf(a,b:string):string;
var c,d,k,tmp1,tmp2,tmp3,p:integer;
tmp4:string;
begin
dao(a);
dao(b);
while length(a)length(b) do
insert('0',b,length(b)+1);
setlength(cf,length(a)+length(b));
for c:=1 to length(cf) do
cf[c]:='0';
for c:=1 to length(a) do
begin
k:=0;
for d:=1 to length(b) do
begin
val(a[c],tmp1);
val(b[d],tmp2);
val(cf[c+d-1],tmp3);
k:=tmp1*tmp2+tmp3+k;
str(k mod 10,tmp4);
cf[c+d-1]:=tmp4[1];
k:=k div 10;
end;
p:=c+length(b);
while k0 do
begin
val(cf[p],tmp1);
k:=k+tmp1;
str(k mod 10,tmp4);
cf[p]:=tmp4[1];
k:=k div 10;
p:=p+1;
end;
end;
dao(cf);
while (length(cf)>1)and(cf[1]='0') do delete(cf,1,1);
end;function ilength(a:integer):string;
var b,d:integer;begin
fillchar(c,sizeof(c),false);
c[a]:=true;
for b:=0 to 9 do
if c[ b ]=false then
if l[a,b] then
begin
c[ b ]:=true;
llength(b);
end;
d:=0;
for b:=0 to 9 do
if c[ b ] then d:=d+1;
str(d,ilength);
end;begin
fillchar(l,sizeof(l),false);
readln(s);
val(copy(s,pos(' ',s)+1,255),k);
delete(s,pos(' ',s),255);
for a:=1 to k do
begin
readln(tmp1,tmp2);
l[tmp1,tmp2]:=true;
end;
rs:='1';
for a:=1 to length(s) do
begin
val(s[a],tmp1);
rs:=cf(rs,ilength(tmp1));
end;
write(rs);
end.