[TJOI2008]彩灯 线性基
题面
题解
题意:给定n个01串,求互相异或能凑出多少不同的01串。
线性基的基础应用。
对于线性基中的01串,如果我们取其中一些凑成一个新的01串,有一个重要的性质:任意2个不同方案凑出的01串也不相同。
因此我们只需要求出给定01串的线性基大小,然后求出有多少搭配方案即可,方案数即为\(2^{tot} - 1\)
#include<bits/stdc++.h>
using namespace std;
#define R register int
#define AC 55
#define LL long long
#define p 2008
int n, m, ans;
LL f[AC], maxn;
char s[AC];
inline int qpow(int x, int have)
{
int rnt = 1;
while(have)
{
if(have & 1) rnt = rnt * x % p;
x = x * x % p, have >>= 1;
}
return rnt;
}
void work()
{
scanf("%d%d", &n, &m), maxn = 1LL << 50;
for(R i = 1; i <= m; i ++)
{
scanf("%s", s + 1);
LL x = 0;
for(R j = 1; j <= n; j ++) x = (x << 1) + (s[j] == 'O' ? 1 : 0);
maxn = 1LL << 50;
for(R j = 50; ~j; j --, maxn >>= 1)
{
if(!(x & maxn)) continue;
if(!f[j]) {f[j] = x, ++ ans; break;}
else x ^= f[j];
}
}
printf("%d\n", qpow(2, ans));
}
int main()
{
// freopen("in.in", "r", stdin);
work();
// fclose(stdin);
return 0;
}
[TJOI2008]彩灯 线性基的更多相关文章
- 洛谷P3857 [TJOI2008]彩灯 [线性基]
题目传送门 彩灯 题目描述 Peter女朋友的生日快到了,他亲自设计了一组彩灯,想给女朋友一个惊喜.已知一组彩灯是由一排N个独立的灯泡构成的,并且有M个开关控制它们.从数学的角度看,这一排彩灯的任何一 ...
- luogu 3857 [TJOI2008]彩灯 线性基
可以将每一个开关控制的灯的序列看作是0/1组成的二进制. 由于灯的开和关是满足异或的性质的,所以直接求一下线性基大小即可. 答案为 $2^{size}.$ #include <cstdio> ...
- 【题解】 luogu 3857 [TJOI2008]彩灯 (线性基)
luogu3857,懒得复制 Solution: 裸的线性基,往里面添加数,记录添加个数\(sum\),快速幂输出\(2^{sum}\)即可 Code: //It is coded by Ning_M ...
- 洛谷P3857 [TJOI2008]彩灯(线性基)
传送门 线性基裸题 直接把所有的状态都带进去建一个线性基 然后答案就是$2^{cnt}$($cnt$代表线性基里数的个数) //minamoto #include<cstdio> #inc ...
- 洛谷3857 [TJOI2008]彩灯
题目描述 已知一组彩灯是由一排N个独立的灯泡构成的,并且有M个开关控制它们.从数学的角度看,这一排彩灯的任何一个彩灯只有亮与不亮两个状态,所以共有2N个样式.由于技术上的问题,Peter设计的每个开关 ...
- BZOJ 2844 albus就是要第一个出场 ——高斯消元 线性基
[题目分析] 高斯消元求线性基. 题目本身不难,但是两种维护线性基的方法引起了我的思考. void gauss(){ k=n; F(i,1,n){ F(j,i+1,n) if (a[j]>a[i ...
- BZOJ 2115 [Wc2011] Xor ——线性基
[题目分析] 显然,一个路径走过两边是不需要计算的,所以我么找到一条1-n的路径,然后向该异或值不断异或简单环即可. 但是找出所有简单环是相当复杂的,我们只需要dfs一遍,找出所有的环路即可,因为所有 ...
- BZOJ 3105 [CQOI2013]新Nim游戏 ——线性基
[题目分析] 神奇的题目,两人都可以第一次取走足够多堆的石子. nim游戏的规则是,如果异或和为0,那么就先手必输,否则先手有必胜策略. 所以只需要剩下一群异或和为0就可以了. 先排序,线性基扫一遍即 ...
- BZOJ 2460 [BeiJing2011]元素 ——线性基
[题目分析] 线性基,由于最多有63个,只需要排序之后,动态的去维护线性基即可. [代码] #include <cstdio> #include <cstring> #incl ...
随机推荐
- L016-linux系统文件权限体系实战深入讲解小节
L016-linux系统文件权限体系实战深入讲解小节 不知道今天能不能写完哈,能写完发出来就是这周发两次小结了,有进步哦,不过L015和L016两节课内容也确实不多,进入正题 上一课学到了chmod. ...
- SOAPUI参数中xml中CDATA包含问题
<![CDATA[ <Request> <CardNo>000002629518</CardNo> <SecrityNo/> <BankTr ...
- [css 揭秘] :CSS揭秘 技巧(五):条纹背景
条纹背景 https://github.com/FannieGirl/ifannie/问题:条纹背景 在设觉设计中无处不在,我们真的可以用css 创建图案吗? 这一章相对还是比较复杂的哦!一起get. ...
- JS基础,课堂作业,健康体重评估
健康体重评估 <script> var sex = prompt("请输入性别:"); var height = parseInt(prompt("请输入身高 ...
- Python接口测试实战3(下)- unittest测试框架
如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...
- 算法工程师进化-NLP之主题模型
1 引言 主题模型是文本挖掘的重要工具,近年来在学术界和工业届都获得了非常多的关注.学术界的工作主要集中在建模层面,即提出各种各样的主题模型来适应不同的场景,因此缺乏指导主题模型在工业场景落地的资源和 ...
- 408. Add Binary【LintCode java】
Description Given two binary strings, return their sum (also a binary string). Example a = 11 b = 1 ...
- 网络流小结(HNOI2019之前)
\(\text{一:Dinic最大流}\) 最坏复杂度 \({\mathcal O(n^2m)}\) 一般可以处理 \(10^4\) ~ \(10^5\) 的网络. struct Edge { int ...
- DeepLearning - Regularization
I have finished the first course in the DeepLearnin.ai series. The assignment is relatively easy, bu ...
- 微软职位内部推荐-Principal Development Lead - SharePoint
微软近期Open的职位: SharePoint is a multi-billion dollar enterprise business that has grown from an on-prem ...