[Gauss]HDOJ3364 Lanterns
题意:有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的更多相关文章
- OPEN CASCADE Gauss Least Square
OPEN CASCADE Gauss Least Square eryar@163.com Abstract. The least square can be used to solve a set ...
- OpenCASCADE Gauss Integration
OpenCASCADE Gauss Integration eryar@163.com Abstract. Numerical integration is the approximate compu ...
- HDU 3364 Lanterns 高斯消元
Lanterns Problem Description Alice has received a beautiful present from Bob. The present contains ...
- Lanterns
Lanterns 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=86640#problem/B 题目: Description ...
- C# 列主元素(Gauss)消去法 计算一元多次方程组
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- C# 顺序高斯(Gauss)消去法计算一元多次方程组
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- HDU 3364 Lanterns (高斯消元)
题意:有n个灯和m个开关,每个开关控制数个灯的状态改变,给出k条询问,问使灯的状态变为询问中的状态有多少种发法. 析:同余高斯消元法,模板题,将每个开关控制每个灯列成行列式,最终状态是结果列,同余高斯 ...
- 整数矩阵CMO 2102回馈(gauss整数解)
PS:今天上午,非常郁闷,有很多简单基础的问题搞得我有些迷茫,哎,代码几天不写就忘.目前又不当COO,还是得用心记代码哦! 本题是CMO(数学 Olympics) 2012 第二题 所以还是很坑的…… ...
- [Gauss]HDOJ3976 Electric resistance
题意: 一看图就明白了 要求的是1与n端点间的等效电阻 重点在于转化成考虑电流 根据KCL定理:在任一瞬间流出(流入)该节点的所有电流的代数和恒为零 U = IR 可以令1点的电势为零 那么n点的电势 ...
随机推荐
- 【译】 Node.js v0.12的新特性 -- Cluster模式采用Round-Robin负载均衡
原文:https://strongloop.com/strongblog/whats-new-in-node-js-v0-12-cluster-round-robin-load-balancing 本 ...
- 指针与strncpy---内存
指针的形式的赋值和strncpy的赋值 e.SetAttr("Amt", ToString(dAmt) ); e.SetAttr("Amt", sAm ...
- OCI-DML-更新数据库中不存在的字段
用gtest来测试oracle中oci方式的SQL语句操作,在测试update数据库中不存在的异常案例的时候,日志没有报错,但是结束后跳出了数据库连接 gtest也没有给出正常的结果,本身update ...
- [java学习笔记]java语言基础概述之转义字符&break&continue
1.转义字符 \t:制表符 \n:回车 \b:退格 \r:回车 \":双引号 \\:反斜线(常用于文件路径的书写中) windows系统中回车符其实是由两个符号组成的,\r\n linu ...
- Java多线程(六) 线程系列总结
多线程系列终于终结得差不多,本人对该系列所做的总结大致如下: 线程锁模块耗费了大量的时间,底层的AQS实现比较复杂.仍然没有时间总结源码部分,能够坚持写下这么几个篇幅的内容真心佩服自己....希望继续 ...
- L010-oldboy-mysql-dba-lesson10
L010-oldboy-mysql-dba-lesson10 来自为知笔记(Wiz)
- MAC机中安装RUBY环境
在安装CocoaPods之前要先配置好RUBY环境,本文就怎么安装RUBY的环境进行一总结.安装Ruby环境首先需要安装Xcode然后需要安装Homebrew,接下来需要安装RVM最后安装Ruby环境 ...
- hibernate的n+1问题
下面选自<精通Hibernate:Java对象持久化技术详解>作者:孙卫琴 在Session的缓存中存放的是相互关联的对象图.默认情况下,当Hibernate从数据库中加载Customer ...
- Matlab生成动态链接库供C#调用
1.首先在Matlab中编写一个或几个.m文件 2.然后在命令空间中输入命令:deploytool 3.修改工程名称,修改需要生成文件后缀 4.添加类,添加文件,然后点击生成.
- lua5.3调用C/C++
马上面临毕业设计,打算做点跟网游有关的,先从做周边工具开始,目前正在做一个协议序列化和反序列化的东西,广告一波先: https://github.com/Anti-Magic/rproto 目前非常简 ...