• 2024-09-23Oracle中数据类型number(m,n)
    Oracle中数据类型number(m,n)中m表示的是所有有效数字的位数,n表示的是小数位的位数。m的范围是1-38,即最大38位。   1>.NUMBER类型细讲:Oracle  number  datatype  语法:NUMBER[(precision  [,scale])]简称:precision  -->  p          scale  
  • 2024-09-15「KDOI-06-S」题解
    T2树上异或题面分析树形DP题考虑一颗子树内部的某种割边方式,假设其被分为\(n\)个连通块,每个连通块的权值分别为\(a_1,a_2,\dots,a_n\),那么该子树在这种割边方式下对答案的贡献就为\(\prod_{i=1}^{n}a_i\)。因此就可以从叶子向根不断合并,求出每种割边状态的值,时
  • 2024-09-10位图
    概述位图(BitMap)使用二进制的比特位来表示一个数是否存在,比如一个字节占8个比特位,这样就能用该字节表示1-8,对应比特位为1表示对应数字存在,为0则不存在,大大节约存储空间位图的Java实现在java.util包中有官方的位图实现BitSet,我们也可以自己实现位图Java使用byte[
  • 2024-09-06abc365_E
    abc365E-XorSigmaProblem思路本题首先可以想到用前缀异或和维护,我们记作\(b_i=a_1\oplusa_2\oplus···\oplusa_i\),所求的式子就变成了\(\sum^{n-2}_{i=0}\sum^n_{j=i+2}b_i\oplusb_j\),直接求是\(O(n^2)\)的,考虑如何快速求出\(\sum^{x-1}_{i=0}b_i\oplusb_x\)因为这
  • 2024-08-21原码、补码和反码
    引言1、计算机中所有的数据之间的运算都是采用补码进行的,要想知道一个数据的补码,就必须得先知道其反码,要想知道反码,就必须先知道其原码2、上面所提到的原码,反码,补码其实都是二进制的形式3、我们看到的结果都是原码转10进制之后的结果原码:最高位为符号位,其余位为数值位正整数:
  • 2024-08-13洛谷P7767 DNA 题解
    ProblemSolution考虑DP。设\(dp_{i,0}\)表示前\(i\)个字符全为A的最小操作次数,\(dp_{i,1}\)表示前\(i\)个数全为B的最小操作次数。考虑转移。若当前位为A则\(dp_{i,0}=\min(dp_{i-1,0},dp_{i-1,1}+1)\),\(dp_{i,1}=\min(dp_{i-1,0}+1,dp_{i-1,1}+1)\);若当前位
  • 2024-08-13arc182c 题解
    arc182c思路有\(6\)个小于\(14\)的质数,设这\(6\)个质数的指数分别为\(x_1,\dotsb,x_6\)。\(ans=\sum(\prod_{i=1}^d(x_i+1))\)。状压这\(6\)个数,维护\(val_s=\prod_{i=1}^6(x_i\times[s二进制第i位为1]+[s二进制第i位为0])\)。当加入一个数时,某些\(x_i\)会加
  • 2024-07-31二进制|原码、反码、补码
    1.原码原码是计算机中表示整数的一种方法,其中最高位为符号位,其余位为数值位。正数符号位为0,负数符号位为1。例如,+5的原码为00000101,-5的原码为10000101。2.反码反码是将原码中的数值位按位取反而得到的。正数的反码与原码相同,负数的反码是符号位保持不变,数值位按位取反。例如
  • 2024-06-30QOJ 1086 Bank Security Unification
    令题目给定的序列为\(a_{1\simn}\)。考虑到一个比较基础的DP是设\(f_i\)为以\(a_i\)结尾的序列的最大值。然后转移就是\(f_i=\max\{f_j+(a_i\&a_j)\}\)。考虑排除掉一些不优的状态。令\(a_j\)的最高位为\(x\),且\(k\)满足\(a_k\)最高位也为\(x\)且\(k
  • 2024-06-05JCC
    跳地址JMP修改eip的值,让程序下一步执行JMP修改EIP的地址格式:JMP寄存器/立即数==MOVEIP,寄存器/立即数注:只影响EIPCALLPUSH地址BMOVEIP,地址A/寄存器 ==CALL地址A/寄存器复制下一个地址,在修改EIP的值eg:运行执行命令后,call下一个指令的地址入栈,ESP减四,EIP被修改
  • 2024-05-18或、与、非、异或用途
    一、关键词**|(或)、&(与)、~(非)和^(异或)**符号描述运算规则&与两个位都为1时,结果才为1或或两个位都为0时,结果才为0^非两个位相同为0,相异为1~左移0变1,1变0<<左移各二进位全部左移若干位,高位丢弃,低位补0>>右移各二进位全部右移若干位,对无符号数
  • 2024-04-09第 9 场 小白入门赛 字典树考试
    题目:4.字典树考试【算法赛】-蓝桥云课(lanqiao.cn)思路:我们可以先抛开题目,想一下一个二进制数是111111111 --->9个1,题目说(Ai&Aj)所以两个1一个组合,我们用最笨的方式取枚举----->是8+7+6+5+.......+1是36两两一组,想想X个1如何算呢?是不是应
  • 2024-04-07观察下面的代码,假设a的值为01000,则b的结果为()。
    inputsigned[4:0]a;outputsigned[4:0]b;assignb=a>>>1;选项:A、00100B、01100C、00010D、01010答案:A解析:对于有符号数来说:若符号位为1,使用>>>,高位补1;若符号位为0,使用>>>,高位补0;对于无符号数来说,无论最高位是什么,使用>>>,高位都补0。易错点:有符号(signed)、无符
  • 2024-04-01快速幂
    核心思想711二进制表示为71011=71000*710*71也就是71*72*78所以我们不断计算自身为底的平方数,当末尾位为1时乘上结果。代码publiclongfastPow(longx,longn,longmod){longres=1;for(;n!=0;n>>=1){//1011->101->10->
  • 2024-03-26C语言 ---- 位操作处理
    在C语言中,位操作是一种对整数的二进制位进行直接操作的技术。它们通常用于对位表示的数据进行快速、高效的操作。以下是C语言中常用的位操作:按位与(BitwiseAND):用&运算符执行,将两个操作数的对应位进行逻辑与操作,结果为1时,结果位为1,否则为0。result=num1&num2;按位或(B
  • 2024-03-17整数与浮点数在内存中的存储
    前言:整数和浮点数在内存中都是用二进制补码存储,但存储的方式不同,本文讲讲二者的存储方式。目录1.整形的存储方式 2.浮点型的存储方式 1.整形的存储方式 最高位为字符位判断该整形数是正还是负,若符号位为1则是正数,若为0则为负数。其余位存放数值的大小。数
  • 2023-12-24Day05位运算符
    位运算符//位运算符:&,|,^,<<,>>//位运算,与二进制有关A=00111100B=00001101A&B=00001100//按位与(&),对于两个操作数的每一个对应位,如果两个位都是1,则结果位为1,否则为0A|B=00111101//按位或(|),对于两个操作数的每一个对
  • 2023-10-28IEEE 754标准中浮点数表示
    根据IEEE754标准,浮点数的表示公式为:\[f=(-1)^s*2^e*1.f\]s、e、f分别是浮点数的符号位、指数位和尾数位。它们可以通过以下方法获得:符号位s,符号位是浮点数的最高位,1表示正数,0表示负数。指数位e,指数位从第9位开始,共8位。指数位表示小数点的位置。尾数位f,尾数
  • 2023-10-16今日学习:位运算&中国剩余定理
    -2^31的补码是-0.也就是10000000000000000000000000000000补码是原码取反加1x&(-x)是最低位为1的位为1,其余位为0. 中国剩余定理: m1,m2,.....,mn相互互质。x=a1(modm1)x=a2(modm2)...x=an(modmn)那么解为:记M=m1*m2*...*mn;  Mi=m1*m2....*mn/mi  
  • 2023-09-19基数排序(这里假设数据的最高位为3)
    基本思想:在需要排序的一串数据中,取最长位数为参考,不足最长位数的数据要在前面补零,然后形成一串相同位数的数据,最后通过比较这串数据的个位数,十位数,百位数….最后就会得到一个有序的序列。用Java实现如下所示:importjava.util.Arrays;publicclassTest1{publicstaticvo
  • 2023-09-12周报素材
    H.HardcoreHangman题意:有一个隐藏字符串,只允许提问6次,每次提问可问多个字母,若隐藏字符串中出现了所提问的字母,则返回所在下标,编写程序输出隐藏字符串分析把26个字母映射成0-25,则可用二进制唯一表示出来,因为2的5次方>26,所以5位二进制数即可表示一个字母。则隐藏字符串每
  • 2023-09-11CF1864E Guess Game
    原题翻译非常好的一道题,不过前半部分的逻辑推理比较难理解,这很博弈由于或运算是有\(1\)就为\(1\),因此我们对于一对数\((a,b)\),我们不需要看\(a|b\)中为\(0\)的那些位,因此我们只需要考虑\(a|b\)全\(1\)的情况即可我们考虑一下如果\(Alice\)说"我不知道"说明什么?说明在\(a\)和\(
  • 2023-08-15CF1188D Make Equal
    题目大意给出\(n\)个数字\(a_1,a_2,\dots,a_n\),每次操作可以给其中一个数加上\(2\)的非负整数次幂。求最少的操作次数,使得这\(n\)个数相等。思路记\(b_i=\max\limits_{1\leqk\leqn}{a_k}-a_i\),这道题的目的是求一个值\(x\)使得\[\sum_{i=1}^n\operatorname
  • 2023-08-11IEC104规约(一)协议结构阐述
    一、IEC104协议结构APDU:应用规约数据单元APCI:应用规约控制单元ASDU:应用服务数据单元 二、APCI2.1启动字符默认固定为68H,意思就是只要是IEC104协议就是以68H开头2.2APDU的长度问题起始一个apdu的总长度不会超过255个字节;在协议中的第二个字节会记录本ap
  • 2023-08-082023.8.8
    P4310绝世好题首先可以想到的90pts做法是最长上升子序列dp,然后就考虑一下优化。这个做法要进行的转移过多,我们考虑怎么减少转移次数。由&运算我们可以发现,能转移到当前数的\(a[j]\),必然和当前数\(a[i]\)至少有一个二进制数位上同时为1。因此我们就可以定义\(bit[i]\)