题解

128 条题解

  • 0
    @ 2009-08-19 09:16:34

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    type qgll=array[1..20]of integer;

    var n,m,i,j,x,y,max,t:longint;

    s:array[1..20]of string;

    f:qgll;

    c:char;

    procedure boss(cc:string;f:qgll);

    [red]var i,j:longint;注意啊!!不能少[/red]

    begin

    for i:=1 to n do

    begin

    if (f[i]=0) then

    for j:=1 to length(s[i]) do

    if (pos(copy(cc,length(cc)-j+1,j),s[i])=1)and(jlength(s[i])) then

    begin

    inc(f[i]);

    max:=max+length(s[i])-j;

    if max>t then t:=max;

    boss(s[i],f);

    max:=max-length(s[i])+j;

    dec(f[i]);

    break;

    end;

    end;

    end;

    begin

    readln(n);

    for i:=1 to n do readln(s[i]);

    readln(c);

    max:=1;

    boss(c,f);

    writeln(t);

    end.

  • 0
    @ 2009-08-12 14:35:11

    瀑布汗~自己可以接自己

  • 0
    @ 2009-08-06 18:18:46

    宽搜无敌,就是爽

    program dcjl;

    var

    duii:array[1..10000,1..30] of integer;

    dui:array[1..10000] of ansistring;

    str:array[1..30] of ansistring;

    head,tail:integer;

    n,i,j,k:integer;

    max:longint;

    ss:ansistring;

    begin

    readln(n);

    for i:=1 to n do begin

    readln(str[i]);

    end;

    fillchar(duii,sizeof(duii),0);

    head:=1;

    readln(dui[1]);

    tail:=head;

    for i:=1 to n do if pos(dui[1],str[i])=1 then begin

    inc(tail); dui[tail]:=str[i];inc(duii[tail,i]) end;

    max:=0;

    repeat

    inc(head);

    for i:=1 to n do

    if duii[head,i]

  • 0
    @ 2009-08-04 23:43:57

    疯掉了,本菜鸟采用了字符串处理的方法,想的都快疯了,结果一运行PASCAL就没了,NND,我的一上午啊!!!!

  • 0
    @ 2009-07-22 21:48:55

    搜索

    program P1311;

    var s:array[0..100] of string;

    b:array[0..1000] of integer;

    i,j,n,m,ans:longint;

    ch:char;

    procedure search(t,l:longint);

    var stemp:string;

    i,j:longint;

    begin

    if l>ans then ans:=l;

    for i:=length(s[t]) downto 2 do

    begin

    stemp:=copy(s[t],i,length(s[t])-i+1);

    for j:=1 to n do

    if b[j]0 then

    if (pos(stemp,s[j])=1) and (length(s[j])>length(s[t])-i+1) then

    begin

    dec(b[j]);

    search(j,l+length(s[j])-length(stemp));

    inc(b[j]);

    end;

    end;

    end;

    Begin

    readln(n);

    for i:=1 to n do readln(s[i]);

    readln(ch);

    for i:=1 to n do b[i]:=2;

    for i:=1 to n do

    if s[i][1]=ch then

    begin

    dec(b[i]);

    search(i,length(s[i]));

    inc(b[i]);

    end;

    writeln(ans);

    end.

  • 0
    @ 2009-07-11 20:36:15

    var

    n,max:integer;

    s:array[1..20]of string;

    vis:array[1..20]of integer;

    head:string;

    procedure init;

    var

    i:integer;

    begin

    readln(n);

    for i:=1 to n do readln(s[i]);

    readln(head);

    end;

    procedure search(ss:string);

    var

    i,j,k:integer;

    begin

    if length(ss)>max then max:=length(ss);

    for i:=1 to n do

    if vis[i]

  • 0
    @ 2009-07-09 13:23:44

    DFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFS

  • 0
    @ 2009-05-31 13:07:45

    var a:array[1..1000] of string;

    b:array[1..1000,1..1000] of longint;

    c:array[1..1000] of longint;

    i,j,k,l,m,n,v,x,z,q,w,e,r,p:longint;

    s:char;

    procedure f(p:longint);

    var i,j:longint;

    begin

    if z>q then q:=z;

    for i:=1 to n do

    if b[p,i]0 then

    begin

    z:=z+b[p,i];

    c[i]:=c[i]+1;

    if c[i]

  • 0
    @ 2009-04-24 14:46:31

    可以自己接自己,重叠部分需要取最小, 如abababab和ababc,重叠部分是2而不是4.

    先生成链接矩阵, DFS搜索, 哈希计数确认是否使用到2次.

  • 0
    @ 2009-03-17 17:59:42

    第一次用DFS AC~

    我给标记使用次数的数组赋值用了fillchar(t,sizeof(t),2)..

    结果自己试的时候惨死~

    后来才知道用这个赋值 2 = 33686018 。。。。。。。

  • 0
    @ 2009-03-11 14:25:14

    太淫荡了......

  • 0
    @ 2009-02-21 12:59:54

    尽情地DFS吧

  • 0
    @ 2009-02-15 14:32:27

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    一次ac 全0ms

    深搜+邻接矩阵(图)

    注意:一个单词包含另一个时不能连接

    另外就是细心了!·····~~~~~

  • 0
    @ 2009-02-09 20:38:02

    多谢楼下 破晓Daybreak 的指导……我也是那样错的…… 原来如此……

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    var

    a:array[1..20]of string;

    b:array[1..20,1..20]of longint;

    used:array[1..20]of integer;

    st:char;

    i,j,k,n,max:longint;

    function min(a,b:longint):longint;

    begin

    if a>b then exit(b);

    exit(a);

    end;

    procedure dfs(i,sum:longint);

    var i1:longint;

    begin

    dec(used[i]);

    for i1:=1 to n do

    if (b0)and(used[i1]>0)then

    begin

    sum:=sum+length(a[i1])-b;

    dfs(i1,sum);

    if sum>max then max:=sum;

    sum:=sum+b-length(a[i1]);

    end;

    inc(used[i]);

    end;

    begin

    readln(n);max:=0;

    for i:=1 to n do

    begin

    readln(a[i]);

    if length(a[i])>max then max:=length(a[i]);

    end;

    readln(st);

    for i:=1 to n do

    for j:=1 to n do

    for k:=1 to min(length(a[i]),length(a[j]))-1 do

    if copy(a[i],length(a[i])-k+1,k)=copy(a[j],1,k)

    then begin

    b:=k;

    break;

    end;

    fillword(used,sizeof(used)div 2,2);

    for i:=1 to n do

    if a=st then dfs(i,length(a[i]));

    writeln(max);

    end.

  • 0
    @ 2009-02-06 12:20:56

    Var

    q1,q2:array[0..30,0..30] of longint;

    ma:array[0..30] of integer;

    ans,maxans:array[0..100] of integer;

    sum,pos1,len1,len2,k,n,i,j,max,kk:integer;

    head:char;

    str,str2:string;

    s:array[1..30] of string;

    Procedure dfs(k,q,st:longint);

    var

    i:integer;

    begin

    for i:=1 to n do

    if (q1[k,i]=1) and (ma[i]max then

    begin

    maxans:=ans;

    max:=st;

    sum:=q-1;

    end;

    end;

    BEgin

    readln(n);

    for i:=1 to n do

    readln(s[i]);

    readln(head);

    for i:=1 to n do

    for j:=1 to n do

    begin

    if length(s[i])

  • 0
    @ 2009-01-31 22:50:27

    这题太淫荡了。

    我的主程序

    fillchar(hash,sizeof(hash),0);ans:=0;

    readln(n);

    for i:=1 to n do

    readln(s[i]);

    for i:=1 to n do

    s:=s[i];

    n:=2*n;

    readln(s[0]);

    这上面是读入不看,下面:

    for i:=1 to n do

    if s[i][1]=s[0][1] then

    begin

    hash[i]:=true;

    inc(ans,length(s[i]));

    ( if ans>en then en:=ans; )

    find(i);

    dec(ans,length(s[i]));

    hash[i]:=false;

    end;

    writeln(en);

    那句一开始丢掉了……结果第四点WA。 貌似楼下也有个wa的 也许是这种问题 就是如果加入的单词都不能连,那么取最大长度的单词。

    这组数据是这样的: (太淫荡了,公布出来。 vj告诉我的错误答案是7…… 结果死也找不到为什么会比标准缺少2…… )

    8

    NO

    NEW

    NAME

    NEVER

    NATIONAL

    NECESSARY

    EVER

    ME

    N

  • 0
    @ 2009-01-19 20:25:56

    const

    maxn=20;

    var

    s:array[1..maxn] of string;

    head:char;

    best,i,n:integer;

    add:array[1..maxn,1..maxn] of integer;

    used:array[1..maxn] of integer;

    procedure calcadd;

    var

    i,j,k,t,min:integer;

    ok:boolean;

    begin

    for i:=1 to n do

    for j:=1 to n do

    begin

    if length(s[i])best then

    best:=len;

    for i:=1 to n do

    if (add[last,i]>0)and(used[i]

  • 0
    @ 2009-01-17 14:36:11

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

  • 0
    @ 2008-12-23 21:34:11

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    暴搜一次AC..

  • 0
    @ 2008-11-13 08:33:09

    弱弱的····

    暴力搜都行?!!!

信息

ID
1311
难度
5
分类
搜索 点击显示
标签
递交数
3155
已通过
1011
通过率
32%
被复制
15
上传者