• 2024-07-030137_Single-Number-II【M】
    JY:找出列表中只出现1次的数值(其它数值均出现3次)参考:https://www.yuque.com/it-coach/leetcode/xkogct1、利用数值二进制位的特性(执行效率并不高)题目中明确了数字的范围是32位整型(-2^31<=nums[i]<=2^31-1),所以从低位遍历到高位,将所有数字的二进制对应位相加,由
  • 2024-06-13CSP历年复赛题-P7071 [CSP-J2020] 优秀的拆分
    原题链接:https://www.luogu.com.cn/problem/P7071题意解读:提取n的二进制位所有的1表示的整数,如果最低位是1则输出-1。解题思路:如果n的二进制最低为是1(n是奇数),则肯定不是优秀拆分,输出-1否则,从低位到高位遍历n的每一个二进制位,看第i位是1,倒序输出2^i。100分代码:#include<bits
  • 2024-06-10【C语言】写一个宏,可以将一个整数的二进制位的奇数位和偶数位交换
    思路:10的二进制是00000000000000000000000000001010,然后交换奇数位和偶数位那么就是第一位和第二位交换,第三位和第四位交换,以此类推解题步骤:(1)将00000000000000000000000000001010的奇数位保留,偶数位变为0则变成00000000000000000000000000000000(2)将00000000000000000000
  • 2024-06-05Java 位运算(了解)
    计算机中的数在内存中都是以二进制形式进行存储的,而位运算就是直接对整数在内存中的二进制位进行操作运算符描述运算结果&与两者都为一时,结果才为一|或两者都为零时,结果才为零^易或两者相同为零,相异为一~取反零变一,一变零<<左移各二进位全部
  • 2024-05-16交互题
    NOI2019I君的探险Sub1:\(n=3\)。按照样例模拟即可。Sub2:查询次数很多。暴力修改每一个\(<n-1\)的点,查看每个点相较于之前的状态是否有改变。Sub3:每个点度数为\(1\)。二进制分组。记\(i\)和\(p_i\)互相连边。如果\(i\)的二进制\(j\)位为\(1\),则我们修改\(i\)
  • 2024-05-09洛谷题单指南-动态规划2-P4310 绝世好题
    原题链接:https://www.luogu.com.cn/problem/P4310题意解读:求最长的子序列长度,使得每相邻两个元素&操作不为0。解题思路:直观来看,可以通过类似最长上升子序列的算法,进行状态转移,但是复杂度为O(n^2),会超时状态表示:dp[i]表示前i个数能产生满足条件的子序列的最长长度状态转移:dp
  • 2024-05-07比赛小技巧(1)
    二进制操作C++中存在一些关于二进制位的操作返回a和b的最大公约数inta=6,b=9;__gcd(a,b);输出结果为print("3");返回二进制位中1的个数inta=6;__builtin_popcount(a);输出结果为print("6")输出从右往左第一个有效位的位置(最低有效位)inta=6;__builtin_ffs(a);
  • 2024-04-08LeetCode 2220.转换数字的最少位翻转次数
    一、题目二、知识点符号描述运算规则&与两位都为1结果为1|或两位都为0结果为0^异或两位相同为0不同为1~取反(非)0变1,1变0<<左移二进制位全部左移,高位丢弃,低位补0>>右移二进制位全部右移,低位丢弃,高位补符号位>>>无符号右移二进
  • 2024-04-02C++bitset类型
    bitset类型我们介绍了将整型运算对象当作二进制位集合处理的一些内置运算符。标准库还定义了bitset类,使得位运算的使用更为容易,并且能够处理超过最长整型类型大小的位集合。bitset类定义在头文件bitset中。定义和初始化bitsetbitset类是一个类模板,它类似array类,具有固定的
  • 2024-03-31InnoDB 行格式
    参考资料https://relph1119.github.io/mysql-learning-notes/#/mysql/疑问常常有如下疑问:往MySQL中新增的一行数据是怎么存储的?行溢出是什么?为什么说varchar字段最大可存储空间为65535字节?正确吗?行格式InnoDB中提供了四种行格式,Compact、Redundant、Dynamic和Comp
  • 2024-03-19数据库中利用二进制实现多个布尔属性的增删改查
    需求背景业务场景中经常需要一些布尔型的属性来标记数据状态,如果每个属性值都新增一个数据库字段来保存会造成空间上的浪费,在工作中进行建模设计时难免会想到用二进制来节省空间,以整形32位为例,去除最高位的符号位总共可以用来保存31个布尔属性值。实现细节为方便讲解,这里
  • 2024-03-18华为OD机试真题-找数字-2024年OD统一考试(C卷)
    题目描述:小扇和小船今天又玩起来了数字游戏,小船给小扇一个正整数n(1<=n<=1e9),小扇需要找到一个比n大的数字m,使得m和n对应的二进制中1的个数要相同(如4对应二进制100,8对应二进制1000,1的个数都为1),现在求m的最小值。输入描述:输入:第一行输入一个正整数n(1<=n<=1e9)。输出
  • 2024-03-17旅行者
    新方法get法一:我们考虑最终的答案,一定是从某一个关键点\(A\)走到另一个关键点\(B\),那我们要找一种最短路径,保证中途经过两个关键点,而且能够覆盖所有的关键点对。所以我们考虑把其中一部分关键点作为起始点的下一个点,剩下的关键点作为终点的上一个点,于是我们建立两个虚点\(s\)
  • 2024-03-11存储器的性能指标
    MAR位数反映存储单元的个数(最多支持多少个)MDR位数=存储字长=每个存储单元的大小     总容量=存储单元个数✖存储字长 bit      =存储单元个数✖存储字长➗8 byte(1byte=8bit) 例:MAR为32位,MDR为8位    总容量=2^32*
  • 2024-03-04七段码
    一、问题描述P8714[蓝桥杯2020省B2]试题E:七段码二、问题简析我们可以把该数码管看成一张图:将二极管作为顶点,并编号(1~7);若二极管相邻,则对应的顶点有无向边连接。这样,我们就得到了一张7个顶点的无向图。题目要我们求,该图的连通子图的数量。连通子图:在无向图\(G\)中,若任意
  • 2024-02-28花神的数论题(数位dp)
    花神的数论题题目描述设\(\text{sum}(i)\)表示\(i\)的二进制表示中\(1\)的个数。给出一个正整数\(N\),花神要问你\(\prod_{i=1}^{N}\text{sum}(i)\),也就是\(\text{sum}(1)\sim\text{sum}(N)\)的乘积。数据范围\(1\leN\le10^{15}\)。解法首先我们要
  • 2024-02-28《程序是怎么跑起来的》第6章
    本章节中,主要讲自己动手压缩数据并且压缩数据的原理。通过莫尔斯编码来看哈夫曼算法的基础哈夫曼算法的思想与摩尔斯码的思想类似,不是所有的内容都存入等长的二进制位中,而是把数据中经常出现的字符用尽可能短的二进制位数表示,较少出现的字符用较长的二进制位数表示。在计算机
  • 2024-02-25加密算法/常见编码
    MD51.MD5算法是单向散列算法的一种。单向散列算法也称为HASH算法,是一种将任意长度的信息压缩至某一固定长度(称之为消息摘要)的函数(该压缩过程不可逆)。在MD5算法中,这个摘要是指将任意数据映射成一个128位长的摘要信息(32位的数字字母混合码)。MD5值是32位或者16位由数字"0-9"和字
  • 2024-02-10P7824 「RdOI R3」毒水
    题意简述有\(n\)杯水,其中有一杯有毒。你可以拿不超过\(maxk\)只小白鼠进行实验,你可以喂给小白鼠若干瓶水,若其中有毒水,则小白鼠死亡。但是其中有且仅有一只变异鼠,变异鼠的死亡状态恰好与普通鼠相反(即若其中有毒水则生存,否则死亡)。你需要求出毒水的编号。\(n=1000,maxk=15\)。
  • 2024-02-05CF1851
    A氵B把奇数和偶数拿出来分别排序,然后按下标归并,看看得出的结果是不是排好序的。C如果头尾同色,就找有没有\(k\)个位置和头尾同色;否则从头找\(k\)个和头同色的,然后再在这之后找\(k\)个和尾同色的。D把每个前缀和相邻的相减,得出的结果:有大于\(n\)的,拆成两个没出现
  • 2024-02-01《程序是怎样跑起来的》第二章读后感
    在我们日常生活中,我们主要以十进制为主。但是,在计算机的运用过程中,二进制才是我们使用更多且更方便的。二进制是一种逢二进位的计数法,仅使用0和1这两个数字来表示数值。在计算机科学中,二进制是一种最基本的数据表示方法,因为计算机使用的是电子开关,只能识别两种状态,因此二进制非常
  • 2024-01-19笔记重修计划三:线性基(施工中)
    正在备战THUWC,暂时停更。目前准备将这一系列内容迁移到cnblogs。本文属于笔记重修计划中的第三部,主要介绍广义的线性基与高斯消元的关联吗,以及在OI中应用较广的异或线性基。建议先阅读重修计划二高斯消元(目前很需要施工故未公开)的内容。其实我觉得这两章的内容如果分开来看
  • 2024-01-17位运算合集
    位运算合集(&、|、^、~、>>、<<)​ 在学习和研究源码过程中,经常遇到使用位运算的逻辑,代码看着简洁,执行效率也高;特此总结和记录位运算的使用方法。1.位运算概述从现代计算机中所有的数据二进制的形式存储在设备中。即0、1两种状态,计算机对二进制数据进行的运算(+、-、*、/)都是叫
  • 2024-01-14abc098d<双指针,异或>
    题目D-XorSum2给出n个元素的数组a,求满足条件的子区间个数:数组a子区间元素和与异或和相等。思路和与异或和相同,即没有任何进位,也就是区间中对于范围内每个二进制位,最多出现一次;使用双指针,统计每个二进制位最多出现一次的区间个数即可;总结异或:不进位加法;代码点击
  • 2023-12-30力扣461-汉明距离
    难度:【简单】“汉明距离”是指两个整数的二进制表示中二进制位不同的对数(或组数)。汉明距离应用广泛,可以用于检测编码错误、量化字符串差异(信息论)等。根据定义,求两个整数的汉明距离,就是求两个整数二进制位不同的组数。根据异或运算,相同为假相异为真,两数异或之后统计二进制位为1