题解

128 条题解

  • 0
    @ 2009-10-30 11:17:19

    编译通过...

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

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

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

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

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

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

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

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

    .....到此一游。。。

  • 0
    @ 2009-10-29 20:08:06

    编译通过...

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

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

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

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

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

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

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

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

    居然两次才过...... 没考虑同个单词也可以连.....汗!!!

  • 0
    @ 2009-10-24 12:53:36

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

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

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

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

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

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

    舒服!!!!!

  • 0
    @ 2009-10-18 15:02:49

    xuxun我错就错在你说的呢

    脑残了我,交了3次

    第二次我改完后没试样例,悲剧了

  • 0
    @ 2009-10-18 00:10:26

    应为要求最长的单词,

    所以当两个单词只保留最小的重复个数。



    2

    hexe

    exet

    最长的为hexexet

  • 0
    @ 2009-10-15 20:37:11

    编译通过...

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

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

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

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

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

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

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

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

    提交三次才过,我真是越来越脑残了……

    var

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

    c:char;

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

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

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

    procedure search(i:longint);

    var i1,x:longint;

    begin

    for i1:=1 to n do

    if (a[i1]>0)and(b>0) then

    begin

    dec(a[i1]);x:=sum;

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

    search(i1);

    inc(a[i1]);

    if sum>ans then ans:=sum;

    sum:=x;

    end;

    end;

    begin

    readln(n);

    for i:=1 to n do

    begin

    readln(s[i]);

    for j:=1 to i do

    begin

    max:=length(s[j]);if max>length(s[i])then max:=length(s[i]); dec(max);

    for k:=max downto 1 do

    begin

    if (pos(copy(s[i],length(s[i])-k+1,k),s[j])=1)then b:=k;

    if (pos(copy(s[j],length(s[j])-k+1,k),s[i])=1)then b[j,i]:=k;

    end;

    end;

    end;

    readln(c); ans:=0;

    for i:=1 to n do if s=c then

    begin

    filldword(a,sizeof(a)shr 2,2); sum:=length(s[i]);if sum>ans then ans:=sum;

    dec(a[i]);search(i);

    end;

    writeln(ans);

    end.

    注意这个数据:

    8

    NO

    NEW

    NAME

    NEVER

    NATIONAL

    NECESSARY

    EVER

    ME

    N

    如果符合条件的单个单词长度长于组合长度时,输出单个单词的长度(NECESSARY)

  • 0
    @ 2009-10-15 20:31:57

    测试数据既然那样可以自接自

    那前面为什么不加个aa再加龙呢?

    不解的问问?

  • 0
    @ 2009-10-08 20:48:13

    var i,n,max:longint;

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

      tj:Array[0..20]of longint;

    procedure try(str:string);

    var o1,len,ll,xx,o2:longint;

      temp,str1,str2:string;

    begin

    len:=length(str);

    if len>max then max:=len;

    for o1:=1 to n do

      begin

       xx:=length(s[o1]);

       if tj[o1]

  • 0
    @ 2009-10-02 17:21:12

    编译通过...

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

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

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

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

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

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

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

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

    var n,i,max:longint; st:array[0..21]of string;

    used:array[0..21]of longint; ch:char;

    procedure zhao(leng:longint; st2:string);

    var i,j,min:longint;

    begin

    if leng>max then max:=leng;

    for i:=1 to n do

    if used[i]

  • 0
    @ 2009-10-01 00:19:00

    编译通过...

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

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

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

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

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

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

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

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

    #include

    #include

    using namespace std;

    int **f;

    char fir;

    int c=0,ma=0;

    string *d;

    int MaxLink(string a,string b){

    int i=1;

    string c1,c2;

    do{

    c1=a.substr(a.size()-i,i);

    c2=b.substr(0,i);

    if(!c2.compare(c1) && c1.compare(a) && c1.compare(b)) return c2.size();

    i++;

    }while(i>fir;

    }

    void DiGui(int lastp,int score,int *used){

    int *u=new int[c]; bool f1=false;

    for(int i=0;i

  • 0
    @ 2009-09-28 10:44:25

    编译通过...

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

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

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

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

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

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

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

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

    #include

    #include

    using namespace std;

    int N,len[22],ans;

    string src[22];

    struct node{

    string s;

    int a[22];

    };

    node list[80010];

    string Ts(string s1,string s2,int p)

    {

    string tem="";

    for (int i=0;isrc[i];

    len[i]=src[i].size();

    }

    cin>>list[1].s;

    int head,tail;head=tail=1;

    memset(list[1].a,0,sizeof(list[1].a));

    ans=1;

    while (head

  • 0
    @ 2009-09-23 15:56:41

    编译通过...

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

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

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

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

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

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

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

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

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

    秒杀 哈。

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

    var i,n,max:longint;

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

    tj:Array[0..20]of longint;

    procedure try(str:string);

    var o1,len,ll,xx,o2:longint;

    temp,str1,str2:string;

    begin

    len:=length(str);

    if len>max then max:=len;

    for o1:=1 to n do

    begin

    xx:=length(s[o1]);

    if tj[o1]

  • 0
    @ 2009-09-20 16:49:08

    可惜了题目没看清。。必须以规定字母开头。。

    wa了两次。。。

    编译通过...

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

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

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

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

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

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

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

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

  • 0
    @ 2009-09-19 09:17:27

    郁闷死了...#3

    那个关于包含的一句......

    不知道是我语文不好还是描述不清...

  • 0
    @ 2009-09-12 15:20:43

    program P1311;

    var c,b:array[1..20]of byte;

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

    g,be:string;

    max,x,y:integer;

    i,n:byte;

    procedure search(be:string;x:integer);

    var j,k:integer;

    m,s:string;

    begin

    for k:=1 to n do

    if b[k]

  • 0
    @ 2009-08-25 06:52:11

    题目意思好难啊~~~

    var

    h:char;

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

    add:array[0..20,0..20] of integer;

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

    i,n,best:longint;

    procedure baby;

    var i,j,min,k:longint;

    ok:boolean;

    begin

    for i:=1 to n do

    for j:=1 to n do

    begin

    ok:=false;

    if length(s[i])>length(s[j]) then min:=length(s[j])

    else min:=length(s[i]);

    for k:=1 to min-1 do

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

    then begin

    ok:=true;

    break;

    end;

    if ok then add:=length(s[j])-k

    else add:=0;

    end;

    end;

    procedure try(l,len:longint);

    var i:integer;

    begin

    if len>best then best:=len;

    for i:=1 to n do

    if(add[l,i]>0)and(u[i]

  • 0
    @ 2009-08-24 20:50:22

    “相邻的两部分不能存在包含关系,例如at 和 atide 间不能相连。”

    这个什么意思啊?

    考虑了反而错了,没考虑反而AC -.-

  • 0
    @ 2009-08-21 15:24:13

    搜索。本题数据较小,回溯就可以了。

    为了方便和直观,本人采用递归实现回溯搜索,下面是程序:

    var

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

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

    best,n,i:longint;

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

    ch:char;

    function min(x,y:longint):longint;

    begin

    if xbest then best:=len;

    for i:=1 to n do

    if (map[now,i]-1) and (used[i]

  • 0
    @ 2009-08-19 10:26:19

    Orz Orz 哈哈 我的更像

  • 0
    @ 2009-08-19 10:09:37

    orz orz

信息

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