[HNOI2012]与非

题解:

由于之前没有对位运算之间的关系仔细研究过,今天仔细推了一波

首先 我们可以利用not和and推出所有位运算

A or B =not (notA and notB)

A xor B= ~((notA and notB)or (A&B))

而本题中定义的nand

我们会发现 x nand x=~x

而~x nand ~y=x and y

所以 换而言之,nand所向披靡的推出了所有位运算符

那么考虑接下来的这件事情

给定一些数,可以用not,or,and,xor 能组成多少数

考虑这么一件事情,如果x的第i位和第j位不一样

那么答案中第i位和第j位就互不相关了

举个例子,不妨设x的第i位为1,第j位位0

匹配到一个y 第i位为1,第j位为0

那么xor一下 0 0

         or一下1 0

       xor再取反一下 1 1

       都取反再or一下 0 1

同理可以发现所有都能匹配出所有情况

然后这么yy一下能发现

对于二元组(i,j)

除非所有串中xi,xj都一样 否则最终xi xj无关

这我感觉并不好证明

然后就变成了基础的数位dp

F[i][0/1]表示匹配到第i位,与原串的大小关系

差分得出答案

 

posted @   尹吴潇  阅读(138)  评论(0编辑  收藏  举报
编辑推荐:
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 数据库服务器 SQL Server 版本升级公告
· 程序员常用高效实用工具推荐,办公效率提升利器!
· C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)
点击右上角即可分享
微信分享提示