luogu 3857 [TJOI2008]彩灯 线性基
2024-09-05 11:01:00
可以将每一个开关控制的灯的序列看作是0/1组成的二进制.
由于灯的开和关是满足异或的性质的,所以直接求一下线性基大小即可.
答案为 $2^{size}.$
#include <cstdio>
#include <cstring>
#include <algorithm>
#define N 62
#define M 62
#define ll long long
#define setIO(s) freopen(s".in","r",stdin)
using namespace std;
int n,m;
ll d[N<<1];
char str[N];
void insert(ll x)
{
int i;
for(i=M;i>=0;--i)
{
if(x&(1ll<<i))
{
if(d[i]) x^=d[i];
else
{
d[i]=x;
break;
}
}
}
}
int main()
{
int i,j;
// setIO("input");
scanf("%d%d",&m,&n);
for(i=1;i<=n;++i)
{
scanf("%s",str);
ll num=0;
int length=strlen(str);
for(j=0;j<length;++j)
{
if(str[j]=='O')
{
num+=(1ll<<(length-j-1));
}
}
insert(num);
}
int ans=0;
for(i=M;i>=0;--i) if(d[i]) ++ans;
printf("%d\n",(1ll<<ans)%2008);
return 0;
}
最新文章
- CSS3 Animation 帧动画 steps()
- 如何去掉Eclipse里面自动追加的一些注释!!!内详
- JAVA_HOME path classpath 以及cmd编译运行java代码
- MSSQL 2008错误提示:更改对于登录sa失败
- target不起作用了
- RxCache 的代码分析,含缓存时间duration的在代码中改变的自己实现的机制
- 谈使用Eclipse与DDMS调试Android程序的方法
- Shell脚本编程的常识
- Thymeleaf引擎支持Multi Prefix
- Jenkins通过Publish over SSH插件实现远程部署
- 微信小程序报错,不在以下 request 合法域名列表中(引起的探索)
- 数据结构——Java实现顺序栈
- Golang学习:sublime text3配置golang环境
- @RequestBody注解的参数仅仅读取一次的问题解决。
- kafka可视化客户端工具(Kafka Tool)的基本使用
- 2018上IEC计算机高级语言(C)作业 第3次作业
- blinn-phong高光反向穿透问题
- Spring注解之@validated的使用
- How To Scan QRCode For UWP (2)
- Highcharts X轴纵向显示