[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点的电势 ...
随机推荐
- 【转】Session与Cookie的比较
最近发现写博客也是提高学习效率的有效途径之一.好记性不如烂笔头,归纳总结时,你会发现总有一些东西你认为很熟了,它却在细微处讽刺你的错误.我学习COOKIE与SESSION时,几乎把社区所有相关的帖子都 ...
- 【转】Windows Phone 调整屏幕亮度的简单实现
之前看到以及其它应用都有调节屏幕亮度的功能,还以为MS有相关的API,就去MSDN找了下,但是怎么都找不到.今天突然想到做自定义MessageBox时,由于要突出弹出框部分,所以会改变LayoutRo ...
- L011-oldboy-mysql-dba-lesson11
L011-oldboy-mysql-dba-lesson11 [root@ab01 ~]# mysqladmin -i 1 -r status #mysqladmin监控的命令 Uptime: ...
- ▲▲▲▲▲▲▲▲▲▲▲yum源的配置(本地和ftp)▲▲▲▲▲▲▲▲▲▲▲▲▲v
★★★★★★★★★★★★★★★本机yum源★★★★★★★★★★★★★★★★ 1. 首先把DVD里的OS镜像mount处理,如果插入光驱自动mount的话,一般在/media下面,比如RHEL_6.3 ...
- rsync命令(同步/备份数据)
rsync命令rsync命令是一个远程数据同步工具,可通过 lam/wan快速同步多台主机间的文件.rsync使用所谓的 "rsync算法"来使用本地和远程两个主机之间的文件达到同 ...
- ASP.NET工具
每个开发人员现在应该下载的十种必备工具 发布日期: 7/20/2004 | 更新日期: 7/20/2004 本文自发布以来已经增加了新信息. 请参阅下面的编辑更新. 本文讨论: • 用于编写单元测试的 ...
- C++ STL中迭代器失效的问题
my_container.erase(iter); 其中my_container是STL的某种容器,iter是指向这个容器中某个元素的迭代器.如果不是在for,while循环中,这种方式删除元素没有问 ...
- Ubuntu系统启动时waiting for network
最近在使用Ubuntu时启动经常会遇到等待网络配置, 每次等待时间都很长,要几分钟,于是在网上看看其他大牛怎么解决该问题. 有些解决方法中有提到删除 网卡硬件信息文件/etc/udev/rules.d ...
- c语言指针用法
一.指针 int t 定义整型变量 int *p p为指向整型数据的指针变量 int a[n] 定义整型数组a,它有n个元素 int *p[n] 定义指针数组p,它由n个指向整形数据的指针元素组成 i ...
- 【转】perl特殊符号及默认的内部变量
perl特殊符号及默认的内部变量,有需要的朋友不妨参考下 Perl的特殊符号 @ 数组 $x{} x名字前面是美元符号($),后面是花 ...