博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj1830:开关问题
阅读量:4582 次
发布时间:2019-06-09

本文共 1039 字,大约阅读时间需要 3 分钟。

链接:http://poj.org/problem?id=1830

 

某天“佐理慧学姐”突然来问了我这道题。

诶,窝只会线性基,但是好像搞不了方案数啊……

啃题解吧。

woc!线性代数哦,就是那种我不会的东西么。

矩阵的秩是啥啊……自由元又是啥啊……

没办法,开始补一波线性代数。

 

看到一半跑出来A掉了这题。

矩阵的秩啊……可以理解为给你一些线性方程组,然后你会发现x+y=1其实跟2x+2y=2是一样的,那这俩玩意其实就是一个方程,矩阵的秩就是最后真正有用的方程数量。

自由元啊……就是解到最后发现有些变量可以随便取咯……

然后本题答案就是$2^{自由元个数}$

 

如果我完全不会线性代数怎么理解这题嘞?

我先找到可以让第一个位置灯状态变化的操作,然后强行钦定内定就由你来点亮这盏灯,把后面可以点亮这盏灯的都异或上它,相当于如果用了那盏灯就再把现在这盏撤销掉,然后异或过的灯就变成两盏灯的组合,然后一直做下去,每个操作就都变成很多操作的组合惹……

最后看下有哪些组合是可有可无的就吼了。

由于行秩和列秩素一样的,所以你在码的时候……把行和列倒过来了也没关系……

 

#include
#include
#include
#define MN 200001using namespace std;int read_p,read_ca,read_f;inline int read(){ read_p=0;read_ca=getchar();read_f=1; while(read_ca<'0'||read_ca>'9') read_f=read_ca=='-'?-1:read_f,read_ca=getchar(); while(read_ca>='0'&&read_ca<='9') read_p=read_p*10+read_ca-48,read_ca=getchar(); return read_p*read_f;}int T,n,m,A,B,MMH;bool o[40],e[40],a[40][40];int work(){ int i,j,k,l; for (i=j=0;j
View Code

 

转载于:https://www.cnblogs.com/Enceladus/p/6119564.html

你可能感兴趣的文章
阿里云oss python SDK 上传下载文件出错的解决方法
查看>>
29输出图形:习题三角形输出
查看>>
18递归:39级台阶
查看>>
【Luogu】P1948电话线(二分SPFA)
查看>>
线程的创建方式比较
查看>>
Spring IoC的实现原理
查看>>
第一次实训作业
查看>>
微信小程序跳转(当我们不知道是普通页面还是tabbar)
查看>>
mac系统下安装和启动nginx
查看>>
linux c 获取文件大小
查看>>
将博客搬至CSDN
查看>>
21. 让指针数组结尾带NULL,使遍历时不依靠计算整个数组大小就可以在结尾遍历结束...
查看>>
阅读作业2李嘉良篇
查看>>
崔博:离开盛大的日子 创业两年回顾
查看>>
sqli-labs(41) and 两php函数的讲解
查看>>
建立动态二维数组
查看>>
selenium之chrome驱动版本
查看>>
sed命令详解
查看>>
Java基于socket的进程间通信 聊天小程序
查看>>
spark集群构建
查看>>