题意:有n个灯笼,m个开关

每个开关可以控制k个灯笼, 然后分别列出控制的灯笼的编号(灯笼编号为1到n)

下面有Q个询问,每个询问会有一个最终状态(n个灯笼为一个状态)0代表关 1代表开

问到达这种状态,按开关的方法总数

解释一下案例:

3 2     (有3个灯笼, 2个开关)

2 1 2  (第一个开关控制2个灯笼,这两个灯笼的编号是1、2)

2 1 3  (第一个开关控制2个灯笼,这两个灯笼的编号是1、3)

2        (2个询问)

0 1 1  (这3个灯笼变为关、开、开 有几种按开关的方法)

1 1 1  (这3个灯笼变为开、开、开 有几种按开关的方法)

很明显的高斯消元,与POJ 1830 开关问题几乎完全一样

本题是n个灯 m个开关(即 n个方程m个未知数)

P.s. 要记得每个Q都要对状态初始化!

 ][];
 ];

 int n;
 int Gauss(int n, int m)
 {
     , k, num=;
     ;k<n && col<m;k++, col++)
     {
         int max_r=k;
         ;i<n;i++)
             if(abs(a[i][col])>abs(a[max_r][col]))
                 max_r=i;
         if(max_r!=k)
             ;j++)
                 swap(a[k][j], a[max_r][j]);
         if(!a[k][col])
         {
             k--;
             free_x[num++]=col;
             continue;
         }
         ;i<n;i++)
             if(a[i][col])
                 ;j++)
                     a[i][j]^=a[k][j];
     }
     for(int i=k;i<n;i++)
         if(a[i][col])
             ;
     return m-k;
 }

 ][];
 int main()
 {
     ;
     scanf("%d", &t);
     while(t--)
     {
         memset(a, , sizeof(a));
         memset(b, , sizeof(b));
         int n, m;
         scanf("%d%d", &n, &m);
         ;i<m;i++)
         {
             int k;
             scanf("%d", &k);
             while(k--)
             {
                 int X;
                 scanf("%d", &X);
                 a[X-][i]=;
                 b[X-][i]=;
             }
         }
         int Q;
         scanf("%d", &Q);
         printf("Case %d:\n", ca++);
         while(Q--)
         {
             ;i<n;i++)
                 ;j<m;j++)
                     a[i][j]=b[i][j];
             ;i<n;i++)
                 scanf("%d", &a[i][m]);
             int t=Gauss(n, m);
             )
             {
                 puts(");
                 continue;
             }
             LL ans=1LL<<t;
             cout<<ans<<endl;
         }
     }
     ;
 }

HDOJ 3364

[Gauss]HDOJ3364 Lanterns的更多相关文章

  1. OPEN CASCADE Gauss Least Square

    OPEN CASCADE Gauss Least Square eryar@163.com Abstract. The least square can be used to solve a set ...

  2. OpenCASCADE Gauss Integration

    OpenCASCADE Gauss Integration eryar@163.com Abstract. Numerical integration is the approximate compu ...

  3. HDU 3364 Lanterns 高斯消元

    Lanterns Problem Description   Alice has received a beautiful present from Bob. The present contains ...

  4. Lanterns

    Lanterns 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=86640#problem/B 题目: Description ...

  5. C# 列主元素(Gauss)消去法 计算一元多次方程组

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  6. C# 顺序高斯(Gauss)消去法计算一元多次方程组

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  7. HDU 3364 Lanterns (高斯消元)

    题意:有n个灯和m个开关,每个开关控制数个灯的状态改变,给出k条询问,问使灯的状态变为询问中的状态有多少种发法. 析:同余高斯消元法,模板题,将每个开关控制每个灯列成行列式,最终状态是结果列,同余高斯 ...

  8. 整数矩阵CMO 2102回馈(gauss整数解)

    PS:今天上午,非常郁闷,有很多简单基础的问题搞得我有些迷茫,哎,代码几天不写就忘.目前又不当COO,还是得用心记代码哦! 本题是CMO(数学 Olympics) 2012 第二题 所以还是很坑的…… ...

  9. [Gauss]HDOJ3976 Electric resistance

    题意: 一看图就明白了 要求的是1与n端点间的等效电阻 重点在于转化成考虑电流 根据KCL定理:在任一瞬间流出(流入)该节点的所有电流的代数和恒为零 U = IR 可以令1点的电势为零 那么n点的电势 ...

随机推荐

  1. 【知识分享】UIButton setTitle 设置为空 失效

    今天开发练习超级猜图,但是碰到了一个奇怪的问题 困扰我一个晚上,低效的夜晚 可恨~ 示例说明1 [button setTitle:@"" forState:UIControlSta ...

  2. BootStrap中Affix控件的使用方法及如何保持布局的美观

    Affix是BootStrap中的一个很有用的控件,他能够监视浏览器的滚动条的位置并让你的导航始终都在页面的可视区域.一开始的时候,导航在页面中是普通的流式布局,占有文档中固定的位置,当页面滚动的时候 ...

  3. 【转】JS函数的定义与调用方法

    JS函数调用的四种方法:方法调用模式,函数调用模式,构造器调用模式,apply,call调用模式 1.方法调用模式:先定义一个对象,然后在对象的属性中定义方法,通过myobject.property来 ...

  4. 【Qt】数据库连接池

    请查看公孙二狗的文章 数据库连接池

  5. android SDK Manager更新不了,出现错误提示:"Failed to fetch URL..."!

    可以用以下办法解决: 使用SDK Manager更新时出现问题 Failed to fetch URL https://dl-ssl.google.com/android/repository/rep ...

  6. PHP发起get post put delete请求

    <?php class commonFunction{ function callInterfaceCommon($URL,$type,$params,$headers){ $ch = curl ...

  7. ACE_linux:UDP通信

    1.涉及类 ACE_INET_Addr//ACE网络地址ACE_SOCK_Dgram//ACE报文 2.简介 UDP通信时无需像TCP那样建立连接和关闭连接,TCP编程时需要通过accept和conn ...

  8. CSS控制 table 的 cellpadding,cellspacing

    CSS 常规解决办法: 表格的 cellpadding 和 cellspacing 我们经常会用如下的方式来清除默认样式: <table cellspacing="0" ce ...

  9. PHP的$_SERVER['HTTP_HOST']获取服务器地址功能详解

    uchome的index文件中的二级域名功能判断,使用了php的$_SERVER['HTTP_HOST'],开始对这个不是很了解,所以百度了一下,发现一篇帖子有点意思,转发过来做个记录. 在php中, ...

  10. centos6.5 最小化安装无法上网

    在VMware里装了个centos 6.5.  最小化安装后无法上网.在 google里找到答案 第一步:执行命令启动网卡 (最小化安装不是自动启动的) [root@localhost]# ifcon ...