都是简单的异或高斯消元

由于bzoj2466要求解得最小和,所以我们最后还要穷举自由元取最优解

 type node=record
       po,next:longint;
     end; var f:array[..] of longint;
    a:array[..,..] of longint;
    i,x,y,ans,n:longint; procedure swap(var a,b:longint);
  var c:longint;
  begin
    c:=a;
    a:=b;
    b:=c;
  end; procedure dfs(k,sum:longint);
  var j,p:longint;
  begin
    if sum>=ans then exit;
    if k= then
    begin
      if ans>sum then ans:=sum;
      exit;
    end;
    if a[k,k]= then
    begin
      p:=a[k,n+];
      for j:=k+ to n do
        if a[k,j]= then p:=p xor f[j];   //回代
      f[k]:=p;
      dfs(k-,sum+f[k]);
    end
    else begin
      f[k]:=;
      dfs(k-,sum);
      f[k]:=;
      dfs(k-,sum+);
      f[k]:=;
    end;
  end; procedure work;
  var i,j,k,p:longint;
  begin
    for i:= to n do
    begin
      p:=i;
      for j:=i to n do
        if a[j,i]<> then
        begin
          p:=j;
          break;
        end;      if p<>i then
       for j:= to n+ do
         swap(a[i,j],a[p,j]);
     if a[i,i]= then continue;
     for k:=i+ to n do
       if a[k,i]<> then
       begin
         for j:=i to n+ do
           a[k,j]:=a[k,j] xor a[i,j];
       end;
    end;
    ans:=;
    dfs(n,);
  end; begin
  readln(n);
  while n<> do
  begin
    fillchar(a,sizeof(a),);
    fillchar(f,sizeof(f),);
    for i:= to n- do
    begin
      readln(x,y);
      a[x,y]:=;
      a[y,x]:=;
    end;
    for i:= to n do
    begin
      a[i,i]:=;
      a[i,n+]:=;
    end;
    work;
    writeln(ans);
    readln(n);
  end;
end.

bzoj2466

bzoj2466,poj1222的更多相关文章

  1. 二进制枚举例题|poj1222,poj3279,poj1753

    poj1222,poj3279,poj1753 听说还有 POJ1681-画家问题 POJ1166-拨钟问题 POJ1054-讨厌的青蛙

  2. 【BZOJ2466】[中山市选2009]树 树形DP

    [BZOJ2466][中山市选2009]树 Description 图论中的树为一个无环的无向图.给定一棵树,每个节点有一盏指示灯和一个按钮.如果节点的按扭被按了,那么该节点的灯会从熄灭变为点亮(当按 ...

  3. [bzoj2466][中山市选2009]树_树形dp

    树  bzoj-2466 中山市选-2009 题目大意:给定一棵树,每一个点有一个按钮和一个灯泡.如果按下一个点的按钮那么和这个点直接相连的点包括这个点的灯泡的状态会改变.如果是点亮就会变成熄灭,如果 ...

  4. POJ1222、POJ3279、POJ1753--Flip

    POJ1222-EXTENDED LIGHTS OUT POJ3279-Fliptile POJ1753-Flip Game 为什么将着三个题放一起讲呢?因为只要搞明白了其中一点,就可以一次3ac了- ...

  5. poj1222(高斯消元法解异或方程组+开关问题)

    题目链接:https://vjudge.net/problem/POJ-1222 题意:给定一个5×6的01矩阵,改变一个点的状态时它上下左右包括它自己的状态都会翻转,因为翻转2次等价与没有翻转,那么 ...

  6. 高斯消元几道入门题总结POJ1222&&POJ1681&&POJ1830&&POJ2065&&POJ3185

    最近在搞高斯消元,反正这些题要么是我击败了它们,要么就是这些题把我给击败了.现在高斯消元专题部分还有很多题,先把几道很简单的入门题总结一下吧. 专题:http://acm.hust.edu.cn/vj ...

  7. BZOJ2466——[中山市选]树

    1.题目大意:给你一棵树,树的每个节点都有一个权值,是0或1,最开始都是0,你可以做一种修改操作,就是把一个节点和它相邻的 节点的权值取反,问最少几次修改能把所有节点的权值变得都是1,最多100个节点 ...

  8. poj1222 EXTENDED LIGHTS OUT 高斯消元||枚举

    Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 8481   Accepted: 5479 Description In an ...

  9. poj1222 EXTENDED LIGHTS OUT

    设输入矩阵为A,输出矩阵为B,目标矩阵为C(零矩阵). 方便起见,矩阵行列下标均从1开始. 考虑A矩阵元素a(i,j),B矩阵中与其相邻的元素 b(i,j),b(i - 1, j),b(i + 1,j ...

随机推荐

  1. sqlmap

    http://192.168.136.131/sqlmap/mysql/get_int.php?id=1 当给sqlmap这么一个url的时候,它会: 1.判断可注入的参数 2.判断可以用那种SQL注 ...

  2. Gym 100187M-Heaviside Function

    题意:给定函数: f(x) = θ(s1x - a1) + θ(s2x - a2) + ... + θ(snx - an), where si =  ± 1. Calculate its values ...

  3. css3新增加的选择器

    css3新增加的选择器 一.属性选择器: E[attr] 只要有属性名E[attr=value] 属性名=属性值E[attr~=blue] 包含这个blue整个单词就可以E[attr^=c] 以这个字 ...

  4. js获取UserControl (<uc1>)控件ID

    ASPX: <table> <tr> <td> <uc1:uccalendar id="ucXudaxia" runat="se ...

  5. html 中设置span的width完美解决方法

    在默认情况下,由于span是行标签,设置width是无效的.只有改变display的属性,才可以实现设置宽度. 1.初步想法 span{ background-color:#ccc; display: ...

  6. Constructor and destructor -- Initialization & Cleanup in C++

    Why need initialization and cleanup? A large segment of C bugs occur when the programmer forgets to ...

  7. 算法专题训练 搜索a-T3 Ni骑士(ni)

    搞了半天八数码弄不出来就只好来打题解  这道题是在搜索a碰到的(链接: http://pan.baidu.com/s/1jG9rQsQ ) 感觉题目最大亮点就是这英文简写"ni", ...

  8. Mysql JDBC Url参数说明useUnicode=true&characterEncoding=UTF-8

    MySQL的 JDBC URL 格式 for  Connector/J 如下例: jdbc:mysql://[host][,failoverhost...][:port]/[database] » [ ...

  9. shell 常用

    /etc/password      用户的 home路径设置 chwon  groupname:username    path_or_file  -R    # 修改文件左右者 chomd

  10. C#获取硬盘空间信息

    /// <summary> /// 获取指定驱动器的空间总大小(单位为B) /// </summary> /// <param name="str_HardDi ...