题意:有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. Cocos2d-x中SQLite数据库管理工具

    数据库创建完成后,我们可能需要看看数据库中数据是否成功插入,很多人喜欢使用图形界面工具来管理SQLite数据库.SQLite图形界面管理工具有很多,我推荐使用SQLiteStudio工具,下载地址ht ...

  2. Swift内存管理-示例讲解

    具体而言,Swift中的ARC内存管理是对引用类型的管理,即对类所创建的对象采用ARC管理.而对于值类型,如整型.浮点型.布尔型.字符串.元组.集合.枚举和结构体等,是由处理器自动管理的,程序员不需要 ...

  3. 学习 .net 的一些主要网站

    学习 .net 的一些主要网站 来自 http://www.cnblogs.com/trymybest121/articles/500176.html   http://msdn.microsoft. ...

  4. java新手笔记34 连接数据库

    1.JdbcUtil package com.yfs.javase.jdbc; import java.sql.Connection; import java.sql.DriverManager; i ...

  5. DB2 connection

    1.DB2 connection-----DB2连接方式 2.开放应用层----type way 4 ==共享 3.本地本地之间访问----type way 2 JDBC SD---sysplex d ...

  6. pthread 实现生产者消费者问题

    经典的生产者消费者问题,在这里用信号量和互斥量来实现生产和消费者模型   #include<cstdlib> #include<cstdio> #include<unis ...

  7. 全部省市县数据库(MySQL脚本) (转)

    /*MySQL - 5.5.47 *************//*!40101 SET NAMES utf8 */; create table `base_area` (    `codeid` me ...

  8. jquery获取iframe中的dom对象

    父窗口中操作iframe:$(window.frames["iframeChild"].document)    //假如iframe的id为iframeChild 在子窗口中操作 ...

  9. html5 的<audio> 音频 audio的“坑”

    <audio>标签是html5的一个非常有意义的特性.告别的flash的时代.它的属性有: autoplay:音频就绪后马上播放 controls:出现该属性,向用户显示播放的控件. lo ...

  10. QQ聊天机器人for PHP版 (登录,收、发消息)

    <?php include "http_no_cookie.class.php"; class qq { public $sid; public $http; public ...