PersonalCorpus 版 (精华区)

寄信人: sino (蚱蜢舟)
标  题: 1042
发信站: 哈工大紫丁香 (2002年03月23日12:05:33 星期六)
来  源: mtlab4.hit.edu.cn 

171169 04:08:02 23 Mar 2002
Bozhang,HIT,P.R.China 1042 Pascal Accepted 0.03 sec 114K

var
    p:array[1..250] of string[250];
    best_s,now_s:array[1..250] of boolean;
    state,full:string[250];
    i,j,n,best,dep:integer;

procedure tryit(b:integer);
var i,j:integer;
begin
    if state=full then begin
        if dep<best then begin
            for i:=1 to n do best_s[i]:=now_s[i];
            best:=dep;
        end;
        exit;
    end;
    if b>n then exit;
    if dep>=best then exit;
    for i:=b to n do begin
        for j:=1 to n do state[j]:=char(byte(state[j]) xor byte(p[i,j]));
        now_s[i]:=true;
        inc(dep);
        tryit(i+1);
        inc(dep);
        now_s[i]:=false;
        for j:=1 to n do state[j]:=char(byte(state[j]) xor byte(p[i,j]));
    end;
end;
begin
    readln(n); fillchar(p,sizeof(p),0);
    fillchar(state,sizeof(state),0);
    for i:=1 to n do begin
        p[i,0]:=chr(n);
        read(j);
        while j>0 do begin p[i,j]:='1';state[j]:='1'; read(j);  end;
        readln;
    end;
    state[0]:=chr(n); full[0]:=chr(n);
    for i:=1 to n do full[i]:='1';
    if state<>full then begin
        writeln('No solution');
        halt;
    end;
    fillchar(now_s,sizeof(now_s),0);
    fillchar(state,sizeof(state),0); state[0]:=chr(n);
    best:=60000;
    dep:=0;
    tryit(1);
    if best=60000 then begin
        writeln('No solution');
        halt;
    end;
    for i:=1 to n do if best_s[i] then write(i,' '); writeln;
end.
--
    ... 这一阵歌声传入湖边一个道姑耳中。她在一排柳树下悄立已久,

  晚风拂动她杏黄色道袍的下摆,拂动她颈中所插拂尘的万缕柔丝,心

  头思潮起伏,当真亦是「芳心只共丝争乱」 ...

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: mtlab4.hit.edu.cn]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:1.901毫秒