sωēeτ¨fαrm » 日志 » 单词接龙(NOIP2000)
单词接龙(NOIP2000)
deadrain 发表于 2007-08-14 22:54:55
简单题,直接DFS,无需任何剪枝,一次AC ^^
CODE:
-----------------------------------------------
program p1311;
var
s:array[1..20] of string;
c:string;
n,i:integer;
len,max:longint;
ss:array[1..40] of boolean;
CODE:
-----------------------------------------------
program p1311;
var
s:array[1..20] of string;
c:string;
n,i:integer;
len,max:longint;
ss:array[1..40] of boolean;
procedure search(c:string);
var
i,j,k:integer;
s2:string;
begin
for i:=1 to n do
if (not ss[i]) or (not ss[i+n]) then
begin
s2:=copy(s[i],1,length(c));
if s2=c then
begin
if not ss[i] then ss[i]:=true else ss[i+n]:=true;
len:=len+length(s[i])-length(c);
if len>max then max:=len;
for k:=2 to length(s[i]) do
search(copy(s[i],k,length(s[i])+1-k));
len:=len+length(c)-length(s[i]);
if ss[i+n] then ss[i+n]:=false else ss[i]:=false;
end;
end;
end;
begin
readln(n);
for i:=1 to n do
readln(s[i]);
readln(c);
fillchar(ss,sizeof(ss),0);
len:=1;max:=1;
search(c);
writeln(max);
end.
相关日志:
- » NOIP结束了
- » 镇江一游(2)
- » 镇江一游(1)
- » zoj 1002 Fire Net
- » 告别之战
收藏:
QQ书签
del.icio.us
订阅:
Google
抓虾
