【bzoj2728】[HNOI2012]与非
#include<algorithm>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<cmath>
using namespace std; typedef long long LL; LL k,n,l,r; LL a[1010<<2];
int s[110],xd[110];
int res; bool flag(true); bool check(int i,int j)
{
for (int m=1;m<=n;m++)
if (((a[m]>>i) ^ (a[m]>>j)) & 1)
return false;
return true;
} LL query(LL x)
{
LL ans=0;
if (x>=(1LL<<k))
return 1LL<<res;
int u,v=res;
for (int i=0;i<=64;i++)
s[i]=2;
for (int i=k-1;i>=0;i--)
{
u=xd[i];
if ((x>>i) & 1)
{
if (s[u]==2)
s[u]=1,v--,ans+=(1LL<<v);
else if (s[u]==0)
{
ans+=(1LL<<v);
break;
}
}
else
if (s[u]==2)
s[u]=0,v--;
else if (s[u]==1)
break;
}
return ans;
} int main()
{
scanf("%lld%lld%lld%lld",&n,&k,&l,&r);
for (int i=1;i<=n;i++)
scanf("%lld",&a[i]);
for (int i=0;i<=k-1;i++)
{
int j;
for (j=0;j<=i-1;j++)
if (check(i,j))
{
xd[i]=j;
break;
}
if (i==j)
xd[i]=i,res++;
}
LL s1=query(r+1);
LL s2=query(l);
printf("%lld",s1-s2);
return 0;
}
【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]与非
线性基乱搞,非正解= = #include<cstdio> int n,m; typedef long long ll; ll l[60],j,s,t; void up(ll& i ...
- 【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][ ...
- [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$运算组成的表 ...
随机推荐
- Getting start with dbus in systemd (02) - How to create a private dbus-daemon
Getting start with dbus in systemd (02) 创建一个私有的dbus-daemon (session) 环境 这里我们会有两个app: app1(client),ap ...
- vue 封装自定义组件
组件结构 sjld >index.js >sjid.vue 最好单独放一个文件夹,有依赖的话装依赖 Sjld.vue 内容 <template id="sjld" ...
- libuv httpparser写的简单http server
libuv文档地址:http://docs.libuv.org/en/v1.x/代码地址:https://github.com/libuv/libuvhttp-parser https://githu ...
- PHP条件运算符的“坑”
今天遇到一个关于PHP 嵌套使用条件运算符(ternary expressions)的问题 现象 先来看一段C语言代码(test.c): #include<stdio.h> int mai ...
- python flask获取微信用户信息流程
需要了解的几个url 用户第一次访问时的url,包含以下几个参数 https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID& ...
- Spider-scrapy 中的 xpath 语法与调试
把setting中的机器人过滤设为False ROBOTSTXT_OBEY = False 1 语法 artcile 选取所有子节点 /article 选取根元素 artile article/a 选 ...
- Linux基础命令回顾
前言 说到linux基础命令,网上一搜一箩筐,想学也有很多教程,如果你不幸看到此篇文章,想看就认真看完,毕竟你点进来了不是嘛? 我每次写的文章都是为了分享自己的学习成果或重要知识点,希望能帮助更多的人 ...
- AutoMapper 使用总结1
初识AutoMapper 在开始本篇文章之前,先来思考一个问题:一个项目分多层架构,如显示层.业务逻辑层.服务层.数据访问层.层与层访问需要数据载体,也就是类.如果多层通用一个类,一则会暴露出每层的字 ...
- typeof instanceof操作符的相关知识
数据类型 ECMAScript中有5中基本数据类型:Undefined Null Boolean Number String. Typeof运算符 对一个值使用typeof操作符可能返回下列某个字符串 ...
- 贝尔数--Codeforces908E. New Year and Entity Enumeration
给n<=50个长度m<=1000的二进制数,记他们为集合T,求满足下面条件的集合S数:令$M=2^m-1$,1.$a \epsilon S \Rightarrow a \ \ xor \ ...