• 3175: [Tjoi2013]攻击装置


    所有的白格向能攻击到的黑格连单向边,然后最大独立集就行了。细节看代码吧。

    RunID User Problem Result Memory Time Language Code_Length Submit_Time
    411274 lbz007 3175 Accepted 20068 kb 2212 ms Pascal/Edit 1637 B 2013-05-13 17:19:41
     1 const
     2   x:array[1..8]of longint=(-1,-2,1,2,-1,-2,1,2);
     3   y:array[1..8]of longint=(-2,-1,-2,-1,2,1,2,1);
     4 var
     5   n,i,j,k,numa,ans,ee:longint;
     6   b,link,e,head,next:Array[1..1000000]of longint;
     7   d,a:Array[1..200,1..200]of longint;
     8   c:char;
     9 procedure add(u,v:longint);
    10   begin
    11   inc(ee);next[ee]:=head[u];head[u]:=ee;e[ee]:=v;
    12   //inc(ee);next[ee]:=head[v];head[v]:=ee;e[ee]:=u ;
    13   end;
    14 function find(x:longint):boolean;
    15   var j:longint;
    16   begin
    17   j:=head[x];
    18   while j<>0 do
    19     begin
    20     if b[e[j]]<>i then
    21       begin
    22       b[e[j]]:=i;
    23       if (link[e[j]]=0) or (find(link[e[j]])) then
    24         begin
    25         link[e[j]]:=x;
    26         exit(true);
    27         end;
    28       end;
    29     j:=next[j];
    30     end;
    31   exit(false);
    32 end;
    33 begin
    34   readln(n);
    35   for i:=1 to n do
    36     begin
    37     for j:=1 to n do
    38       begin
    39       read(c);if c='0' then inc(numa);
    40       a[i,j]:=ord(c)-ord('0');
    41       end;
    42     readln;
    43     end;
    44   for i:=1 to n do
    45     for j:=1 to n do
    46       begin inc(k);d[i,j]:=k;end;
    47   for i:=1 to n do
    48     for j:=1 to n do
    49       if (a[i,j]=0)and((i+j) mod 2=0) then
    50         for k:=1 to 8 do
    51           if (i+x[k]>0)and(i+x[k]<=n)and(j+y[k]>0)and(j+y[k]<=n)then
    52             if a[i+x[k],j+y[k]]=0 then
    53               add(d[i,j],d[i+x[k],j+y[k]]);
    54  
    55   for k:=1 to n do
    56     for j:=1 to n do
    57       if (k+j) mod 2=0 then
    58         if a[k,j]=0 then
    59           begin
    60           i:=d[k,j];
    61           if find(i) then inc(ans);
    62           end;
    63   writeln(numa-ans);
    64 end.
    View Code
  • 相关阅读:
    备份与还原SQL Server 数据库
    ASP网站发布到IIS上注意问题
    MySQL相关积累
    C#中 让日历控件dateTimePicker1显示你想要的日期
    C#,右击鼠标,窗体出现在鼠标右边
    c#中combobox绑定数据库成功(方法二)
    java web 编写资料
    windows下使用gethostbyname函数报错无法解析的外部符号
    C语言中的作用域,链接属性和存储类型
    二级指针的用法
  • 原文地址:https://www.cnblogs.com/lbz007oi/p/3078122.html
Copyright © 2020-2023  润新知