BZOJ2728: [HNOI2012]与非
容易推出能用nand和括号做出所有逻辑运算。那么可以尝试乱搞,利用线性基做任意次异或,再加上几次别的运算,就很有可能能得到所有本来能得到的数了。
#include<cstdio>
int n,m;
typedef long long ll;
ll l[60],j,s,t;
void up(ll&i,ll j){
j^=i,i<j?0:i=j;
}
void ins(ll j){
for(int i=m-1;~i;--i){
up(j,l[i]);
if(j>>i&1){
for(int k=i-1;~k;--k)
up(j,l[k]);
for(int k=m-1;k>i;--k)
up(l[k],j);
l[i]=j;
break;
}
}
}
ll val(ll j){
ll s=0,t=0;
for(int i=m-1;~i;--i)
if(l[i]){
s=s<<1|(t^l[i])<j;
if(s&1)
t^=l[i];
}
return s+!!j;
}
int main(){
scanf("%d%d%lld%lld",&n,&m,&s,&t);
while(n--){
scanf("%lld",&j);
for(int i=m-1;~i;--i)
ins(j|l[i]);
}
printf("%lld\n",val(t+1)-val(s));
}
BZOJ2728: [HNOI2012]与非的更多相关文章
- BZOJ2728 HNOI2012与非(并查集+数位dp)
容易发现x nand x=not x.并且使用这个性质有x and y=not(x nand y)=(x nand y)nand(x nand y).也就是说nand运算可以作为not和and运算使用 ...
- 【BZOJ2728】[HNOI2012]与非 并查集+数位DP
[BZOJ2728][HNOI2012]与非 Description Input 输入文件第一行是用空格隔开的四个正整数N,K,L和R,接下来的一行是N个非负整数A1,A2……AN,其含义如上所述. ...
- 【BZOJ 2728】 2728: [HNOI2012]与非 (线性基?)
2728: [HNOI2012]与非 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 813 Solved: 389 Description Inpu ...
- BZOJ 2728: [HNOI2012]与非
2728: [HNOI2012]与非 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 786 Solved: 371[Submit][Status][ ...
- 【bzoj2728】[HNOI2012]与非
先打出nand表 0 nand 0=1 1 nand 1=0 0 nand 1=1 1 nand 0=1 容易发现(!a)=a nand a 然后(a&b)=!(a nand b) 然后( ...
- [HNOI2012]与非
题目描述 NAND(与非)是一种二元逻辑运算,其运算结果为真当且仅当两个输入的布尔值不全为真.NAND运算的真值表如下(1表示真,0表示假): 两个非负整数的NAND是指将它们表示成二进制数,再在对应 ...
- BZOJ 2728: [HNOI2012]与非(位运算)
题意 定义 NAND(与非)运算,其运算结果为真当且仅当两个输入的布尔值不全为真,也就是 A NAND B = NOT(A AND B) ,运算位数不会超过 \(k\) 位, 给你 \(n\) 个整数 ...
- BZOJ 2728 HNOI2012 与非 高斯消元
题目大意:给定k位二进制下的n个数,求[l,r]区间内有多少个数能通过这几个数与非得到 首先观察真值表 我们有A nand A = not A 然后就有not ( A nand B ) = A and ...
- Luogu3220 HNOI2012 与非 数位DP
传送门 题意:给出$N$个范围在$[0,2^k-1]$的整数,定义位运算$NAND$为位运算$AND$的逆运算,求$[L,R]$中有多少数能成为若干个前面给出的整数.若干括号和$NAND$运算组成的表 ...
随机推荐
- asp.net signalR 专题—— 第二篇 对PersistentConnection持久连接的快速讲解
上一篇我们快速的搭建了一个小案例,但是并没有对其中的方法进行介绍,这一篇我来逐一解析下. 一:从override的那些方法说起 不管怎么样,我们先上代码,如下: public class MyConn ...
- 使用管道符在PowerShell中进行各种数据操作
最近在培训PowerShell,在讲到Pipeline的时候,对于我这种长期和数据(数据库)打交道的人来说,觉得很实用,所以写此博文,记录一下. 无论是在Linux中写Bash脚本还是在Window上 ...
- 两种交换机配置模式,以配置基于端口划分的VLAN为例
关于交换机的配置模式,大体上可以分为两类:其一以CISCO交换机为代表的配置模式,其二以Huawei.H3C交换机为代表的配置模式.其实这两种配置模式并没有本质的不同,只是配置的命令名称和配置方式存在 ...
- mvn常用命令
1. mvn compile 编译源代码 2. mvn test-compile 编译测试代码 3. mvn test 运行测试 4. mvn package 打包,根据pom.xml打成war或ja ...
- Eclipse debug断点调试代码时出现source not found问题
偶尔调试代码的时候会出现这种事情,之前并没有特别注意,今天稍微搜集一下相关资料: 1.跳转到的代码的确没有源码,下载源码后选择源码位置后便会正常显示源码. 2.源码和class文件不一致.即便勾选了a ...
- 在Azure上实现Linux Server故障转移
要充分利用公有云的弹性扩展和高可用, 首先要在应用系统层面支持横向扩展(scale out),这个说起来很容易,或者说对新开发的应用系统而言已经成为标配.但是对已有的.老旧的应用系统来说,这就比较困难 ...
- Windows7台式电脑怎么调节屏幕亮度
- python利用unrar实现rar文件解压缩
python第三方包unrar可以实现rar文件的解压缩,它以动态库UnRAR为基础,封装而成 1. 下载UnRAR动态库 https://pypi.python.org/pypi/unrar/0.2 ...
- bean 接收的参数为Class类型
这两个是等价的
- Struts2 Ajax校验
Ajax(Asynchronous javascript and xml):异步刷新技术 技术组成: CSS + xml +JavaScript +DOM Ajax核心对象: XMLHttpRequ ...