• 2024-06-18bitset详解以及用法
    butset详解以及用法bitset是C++标准库中的一个类,它提供了一种方便的方式来操作位序列,常用于位运算和状态压缩。下面我将为您详细介绍bitset的基本概念、基本用法以及一些常用的成员函数。基本概念1、bitset可以看作是一个多位二进制数,其每一位都是0或1。2、它是
  • 2024-06-16西门子学习笔记15 - 位逻辑操作的学习
    1、点动操作(按下按钮就启动松开就停止)2、自锁电路(可以自己保持的状态除非常闭停止按下)3、取反操作(顾名思义就是反过来1就变成0,0就变成1)4、置为复位(置位之后如果不复位的话就会一直为1)5、区域置位和复位(从起始的位开始的5个位被全部置为1或者全部复位为0)6、单个条件的
  • 2024-06-11代码随想录算法训练营第第35天 | 977.有序数组的平方1005.K次取反后最大化的数组和 、134. 加油站、135. 分发糖果
    1005.K次取反后最大化的数组和本题简单一些,估计大家不用想着贪心,用自己直觉也会有思路。https://programmercarl.com/1005.K次取反后最大化的数组和.html自己写的时间复杂度太高,看答案优化/***@param{number[]}nums*@param{number}k*@return{number}*/varl
  • 2024-06-10代码随想录算法训练营第三十五天 | 1005.K次取反后最大化的数组和 134.加油站 135.分发糖果
    1005.K次取反后最大化的数组和题目链接文章讲解视频讲解思路:  按绝对值从大到小排序  遍历数组,遇到负数,如果次数未用完就取反  最后如果剩余次数未用完且为奇数就将数组最后一个元素取反classSolution{staticboolmyCompare(constint&lhs,constint&r
  • 2024-06-07Signed 2's Complement和Signed 1's Complement
    verdi中选项有Signed2'sComplement和Signed1'sComplementSigned2'sComplement和Signed1'sComplement是用于在计算机中表示有符号整数(即可以是正数或负数的整数)的两种不同方法。以下是它们之间的主要区别和特性:Signed1'sComplement(符号位取反)表示方法:在Signed1'sCo
  • 2024-05-27NOI模拟 排序幻觉
    涉及知识点:二进制,贪心题意给一个数组\(a[1],a[2],\ldots,a[n]\),选择一个数\(b\),如果\(b\)满足:\[(a[1]\oplusb)\leq(a[2]\oplusb)\leq\ldots\leq(a[n]\oplusb)\]则称\(b\)是数组\(a\)的幻数。有\(q\)次询问,每次永久修改一个数。对于原数组与每次询问后
  • 2024-05-17CSAPP第二章
    gcc指定不同的C语言版本 注意寻址和字节顺序讲的, 对象的地址都是从小地址开始算起, 而所谓大端法就是高位字节在前; 小端法则是低位字节在前注意: 等号上的小圆点的组合表示"被定义为"的意思 反码有+0和-0,-0就是全为1的位模式,负数的反码就是对应正数所有位取反
  • 2024-05-14位运算符
    &:按位与1&1=11&0=00&0=00&1=05&7=521&7=55&1=15&10=0-5&10=10 |:按位或1|0=10|1=11|1=10|0=03|5=7 ~:按位取反~1100=0011^:按位异或相同为0不同为11^0=10^1=11^1=00^0=0 <<:按位左移i<<n左移n位相当于乘以2的n次方,右边补0
  • 2024-05-13补码
    计算机基础(补码)原码也叫符号-绝对值码最高位0表示正数1表示负数,其余二进制位是该数字的绝对值 原码简单易懂加减运算复杂存在加减乘除四种运算,增加了CPU的复杂度零的表示不唯一反码反码运算不便,也没有在计算机中应用移码表示数值平移n位,n称为移码量移码主要用于浮
  • 2024-05-11AGC057C 做题记录
    题面看着很吓人!但是经过了一步步的思考,切完后再来看,其实也不过如此。纪念一下独立切的铜牌构造题。由于有\(+1\)操作,考虑反着建立01-trie,即以最低位作为第一个分支。这样\(+1\)操作相当于对最右边的一条链上每个点执行左右儿子交换。考虑trie树上每个叶子挂着对应数值在
  • 2024-05-05CF1630A And Matching 题解
    题目描述有\(n\)个数\(0,1,2,\cdots,n-1\)。你需要把他们两两分组,使得每组两个数按位与的结果之和\(=k\)。如果可能,请构造出一组可能的\(\fracn2\)个数对,否则输出-1。保证\(n\)是\(2\)的幂,\(k\len-1\)思路首先我们发现,\(n\)是二的幂,所以按照二进制的角度看,这
  • 2024-04-28力扣-231. 2 的幂
    1.题目题目地址(231.2的幂-力扣(LeetCode))https://leetcode.cn/problems/power-of-two/?envType=study-plan-v2&envId=primers-list题目描述给你一个整数n,请你判断该整数是否是2的幂次方。如果是,返回true;否则,返回false。如果存在一个整数x使得 n==2x,则认为
  • 2024-04-18CF-938(C-E)
    CF-938C没啥好分析的,就记录一下我因为没有清空s[n+1]、上取整写成了下取整卡了一个多小时(╬▔皿▔)╯constintN=2e5+5;inta[N],p[N],s[N];voidsolve(){ intn,k;cin>>n>>k; intsum=0; rep(i,1,n){ cin>>a[i]; p[i]=p[i-1]+a[i]; } if(p[n]<=k){ cout<<n<<
  • 2024-04-14计算机基础
    计算机基础一、原码补码反码1、正数的原码、补码、反码都一样35的原码:00100011(最左边的一位表示正负,0为正,1为负)​ 反码:00100011​补码:001000112、负数的反码:符号位不变,其余位取反​负数的补码:符号位不变,其余位取反,最后+1-35的原码:10100011​
  • 2024-04-09ARC080F Prime Flip 题解
    传送门题意:给定初始\(a\)数组,每次可以选一个长度为奇质数的区间取反。问全变成\(0\)要多少次操作。和Password、XorReplace的套路相同,做一个差分。令\(b_i=a_i\xora_{i-1}\),目的就是让\(b\)数组变为全\(0\)。对\(a_i\sima_{i+p-1}\)取反相当于对\(b_i,b_{i+p
  • 2024-04-07贪心算法|1005.K次取反后最大化的数组和
    力扣题目链接classSolution{staticboolcmp(inta,intb){returnabs(a)>abs(b);}public:intlargestSumAfterKNegations(vector<int>&A,intK){sort(A.begin(),A.end(),cmp);//第一步for(inti=0;i<A.size
  • 2024-04-06二进制和位运算
    1.无符号:int32位可以表示0~2^32-1位数。2.有符号:负数占1/2,正数和0占1/2首位为0表示非负。首位为1表示负数,后面是数值位。-1表示:先看正数:0001为1,减1——>0000表示0,每一位取反——>1111。-2表示:先看正数:0010,减1(向高位借位)——>0001表示1,取反——>1110。-8:1110,减1
  • 2024-04-03代码随想录 Day34 贪心算法 1005.K次取反后最大化的数组和 134. 加油站 135. 分发糖果
    1005.K次取反后最大化的数组和 classSolution{public:intlargestSumAfterKNegations(vector<int>&nums,intk){sort(nums.begin(),nums.end());intsum=0;inti=0;while(k>0){nums[i]=0-nums[i]
  • 2024-03-31代码随想录算法训练营第34天| 1005. K 次取反后最大化的数组和、134. 加油站、135. 分发糖果
    1005.K次取反后最大化的数组和题目链接:K次取反后最大化的数组和题目描述:给你一个整数数组nums和一个整数k,按以下方法修改该数组:选择某个下标i并将nums[i]替换为nums[i]。重复这个过程恰好k次。可以多次选择同一个下标i。以这种方式修改数组后,返回数
  • 2024-03-26代码随想录算法训练营day34 | leetcode 1005. K 次取反后最大化的数组和、134. 加油站、135. 分发糖果
    目录题目链接:1005.K次取反后最大化的数组和-简单题目链接:134.加油站-中等题目链接:135.分发糖果-困难题目链接:1005.K次取反后最大化的数组和-简单题目描述:给你一个整数数组nums和一个整数k,按以下方法修改该数组:选择某个下标i并将nums[i]替换为-nums[i]。重
  • 2024-03-22Datalab
    布尔运算的本质就是集合明白这一点便可以很快做出第一题intbitXor(intx,inty){return(~(x&y))&(~(~x&~y));}根据补码定义inttmin(void){return(1<<31);}当一个数为最小整数时加一等于其反码intisTmax(intx){return!((~x^(x+1))|!(x+1));
  • 2024-03-19java数据结构与算法刷题-----LeetCode1005. K 次取反后最大化的数组和(这就不是简单题)
    java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846卷来卷去,把简单题都卷成中等题了文章目录1.排序后从小到大取负2.hash表从小到大排序,省掉排序(这就是为什
  • 2024-03-19单片机各种位运算总结
    单片机各种位运算总结当在单片机中需要进行寄存器操作或者读取/发送数据时,可能用到位操作,因此在此做一个总结,将可能用到的位操作进行一个总结并解析。位运算具体的计算方式:【STM32】位操作、按位与、按位或、按位异或、取反、左移、右移等基础C语言知识补充_按位与操作是什么
  • 2024-03-14abc155F题解
    abc155F题意:给定\(n\)个灯泡的位置\(a_i\)和状态\(b_i(0/1)\)。给定\(m\)个开关控制区间\([l_i,r_i]\)中所有的灯泡,即使用这个开关会使\([l_i,r_i]\)中所有的灯泡的状态都取反。问能否使这\(n\)个灯泡的状态都变成\(0\),如果可以,输出一种方案,否则,输出\(-1\)。思路:神仙转化题。
  • 2024-03-12取反(分块+二分)
    第2题   取反 查看测评数据信息给一个长度是n的数组,a[1],a[2],a[3],...a[n-1],a[n],初始时a数组中所有的元素都为0,下面有两种操作:1.指定一个区间[x,y],把a[x],a[x+1],...a[y]的值取反,即如果a[i]的值为1则把a[i]的值变为0,如果a[i]的值为0则把a[i]的值变为12.指定一个区