Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

千万不要用三进制。。。慢到离谱。。。。

Posted by wukewen at 2013-12-24 23:39:02 on Problem 1185
var
  a:array[0..1,0..177147] of longint;
  n,i,j,m,k,l,s,now,pre,sum:longint;
  b:array[0..103,0..10] of char;
  c:array[0..65,0..15] of longint;
function max(a,b:longint):longint;
  begin
  if a>b then exit(a)
     else exit(b);
  end;
function check(dep,num:longint):longint;
  var
    tot,i,t:longint;
  begin
    tot:=0;
    for i:=m downto 1 do
      begin
      t:=num mod 3;
      if c[dep,i]=0 then if t=2 then tot:=tot*3+1
                         else tot:=tot*3
         else if t=0 then tot:=tot*3+2
              else exit(-1);
      num:=num div 3;
      end;
    exit(tot);
  end;
procedure work(dep,add:longint);
  begin
  if dep>m then
     begin
     c[sum]:=c[0];
     c[sum,0]:=add;
     inc(sum);
     exit;
     end;
  c[0,dep]:=1;
  c[0,dep+1]:=0;
  c[0,dep+2]:=0;
  work(dep+3,add+1);
  c[0,dep]:=0;
  work(dep+1,add);
  end;
begin
  readln(n,m);
  for i:=1 to n do
    begin
    for j:=1 to m do
      read(b[i,j]);
    readln;
    end;
  s:=1;
  for i:=1 to m+1 do
    s:=s*3;
  dec(s);
  sum:=1;
  work(1,0);
  dec(sum);
  for i:=1 to n do
    begin
    now:=i and 1;
    pre:=(i+1) and 1;
    for j:=1 to sum do
      begin
      k:=0;
      for l:=1 to m do
        if (b[i,l]='H')and(c[j,l]=1) then
           begin k:=-1; break; end;
      if k=-1 then continue;
      for l:=0 to s do
          begin
          k:=check(j,l);
          if k<>-1 then a[now,k]:=max(a[pre,l]+c[j,0],a[now,k]);
          end;
      end;
    for j:=0 to s do
      a[pre,j]:=0;
    end;
  j:=n and 1;
  k:=a[j,0];
  for i:=1 to s do
    k:=max(k,a[j,i]);
  writeln(k);
end.

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator