• 2024-09-182.2hash
    算法理解将一个字符串,转化成数字,这样可以省去一个一个字母比较的复杂度。数位哈希将一个字符串中的一个元素看成一位数,把整个字符串,看成是一个p进制数,由于可能这个字符串对应的数太大了,所以我们需要取模运算,但是有可能就会有两个不一样的字符串数值相等,就是哈希冲突取模有两种
  • 2024-09-14分析负数取模与取余的规则
    目录负数"取模"基本概念修正定义取整规则决定商的值取模和取余不一样.负数"取模"基本概念如果a和d是两个自然数,d非零,可以证明存在两个唯一的整数q和r,满足a=q*d+r,且0<=r<d。其中,q被称为商,r被称为余数。//对应代码intmain(){inta=10;intd=3;printf
  • 2024-09-09CSP模拟 取模
    最近开始写CSP模拟的题,实际上考的题一点也不CSP题意有一个长度为\(n\)的序列\(A\),\(0\leqA_i<k\),你可以每次选取一个区间,将区间内所有元素\(+1\),然后将区间内所有元素对\(k\)取模。问最少几次操作可以把序列中所有元素都变为\(0\)。思路假设现在有一个数列\([2,3,
  • 2024-08-21模幂运算-要求算法返回幂运算a^b的计算结果与1337取模后的结果
    题目:模幂运算-要求算法返回幂运算a^b的计算结果与1337取模后的结果其中b是一个非常大的数,所以b使用数组形式表示。即无法直接a^b%1337计算此类问题的关键需要分治,拆分成更小规模的计算1)对于a^b,如果b=1234,则a^1234=a^4*(a^123)^10即a^b可以拆分后递归运算2)对于取模运算,(a*b
  • 2024-08-15C++快速幂
    快速幂算法是一种用于快速计算幂运算(即 ab)的算法,其中 a 是底数,b 是指数。它的主要思想是减少乘法运算的次数,通过将指数 b 分解为二进制形式并利用幂的运算法则来加速计算过程。以下是一个使用C++实现的快速幂算法的例子,它既可以处理正整数幂的情况,也可以稍微修改以处理
  • 2024-08-07Luogu P5563 [Celeste-B] No More Running
    Celeste,启动!稍作思考就会发现这题其实很简单,树上路径一眼考虑点分治对于分治中心,很容易预先求出所有未处理的点到它的距离(模意义下),可以用这些信息来更新中心的答案考虑剩下的某个未处理的点\(x\),它的答案可能由\(x\)到分治中心的距离\(dis_x\),拼上分治中心到另一个点\(y\)
  • 2024-08-01顺序消费rocketMQ(FIFO先进先出)和小技巧 取模运算的周期性特征来将数据分组。
    20240801一、顺序消费MQ(FIFO先进先出)介绍二、一个小技巧,对于取模运算,用来在几以前进行随机选取,取模运算的周期性特征来将数据分组,使用场景对于取模会重复问题一、顺序消费MQ(FIFO先进先出)介绍发送顺序和消费顺序保持一致默认情况消费方式是并发模式,会导致消息乱序
  • 2024-08-01Atcoder ABC298 D-F
    AtcoderABC298D-FD-WritingaNumeral链接:D-WritingaNumeral(atcoder.jp)简要题意:问题陈述我们有一个字符串\(S\)。初始值为\(S=\)1.按以下格式依次处理\(Q\)查询。1x:在\(S\)的末尾添加一个数字\(x\)。2:删除\(S\)开头的数字。3:以十进制形
  • 2024-07-2751单片机完全学习——LED点阵
    一、原理图分析通过看下面的原理图我们发现,LED点阵的每个引脚并没有直接接在单片机的IO口上面,而是和74HC595芯片接在了一起,我们通过查看资料发现,74HC595芯片是一个串行输入转并行输出的一个芯片。那它是如何进行串行转并行的呢?首先这个芯片需要一定的时序才能正常工作,我们主要
  • 2024-07-24大数相乘取模
    https://www.cnblogs.com/shuaihui520/p/9619322.html记一下a∗bmodp=a∗b−⌊a∗bp⌋∗pa∗bmodp=a∗b−⌊a∗bp⌋∗p用longdouble来计算⌊a∗bp⌋⌊a∗bp⌋,误差很小,因为longdouble的特性是存不下就舍弃低位,再把它转成longlong。直接用longlong来计算。longlong爆掉了
  • 2024-07-24【shell】变量运算
    变量与数字的运算算术运算符指的是可以在程序中实现加、减、乘、除等数学运算的运算符。Shell中常用的数学运算符如下所示。—+:对两个变量做加法。—-:对两个变量做减法。—*:对两个变量做乘法。—/:对两个变量做除法。—**:对两个变量做幂运算。—%:取模运算,第一个变
  • 2024-07-24取模+组合数
    jiangly的板子//------取模机------//usingi64=longlong;template<classT>constexprTpower(Ta,i64b){Tres{1};for(;b;b/=2,a*=a){if(b%2){res*=a;}}returnres;}//快速幂constexpri64
  • 2024-07-18旋转链表-灵活运用取模
    题目描述:个人题解:        记给定链表的长度为n,注意到当向右移动的次数k≥n时,我们仅需要向右移动k%n次即可。因为每n次移动都会让链表变为原状。这样我们可以知道,新链表的最后一个节点为原链表的第(n−1)−(k%n)个节点(从0开始计数)。这样,我们可以先将给定
  • 2024-07-13测试(快速幂+数学)
    洛谷P1630求和 第1题   测试 查看测评数据信息给一个式子,求它的值,(1^b+2^b+...+a^b)%1e4输入格式 第一行一个数t,表示有t组测试数据对于每组测试数据,一行有两个整数a,b部分数据:1<=t<=10,a,b<=1e3对于100%的数据,1<=t<=100,1<=a,b<=1e9 输出格式 
  • 2024-07-08数论知识(取模运算)
    若amodk=xa
  • 2024-06-15洛谷P8807 [蓝桥杯 2022 国 C] 取模
    题目:解读(思路与分析):题目总结:对于给定的整数n和范围m,要找到两个不同的x和y,它们除以n后的余数相等。思路:对于每组给出的n,m询问,可以通过遍历范围从1到m的所有可能的j,并计算n对j取模的余数。使用一个集合来存储已经出现过的余数,如果当前余数已经存在于集
  • 2024-06-05分库分表方案
    文章目录分库分表设计思路hash取模和范围方案最终方案采用hash取模和rang范围两者相结合分库分表设计思路首先分库分表有两种方式,一种是垂直拆分,一种是水平拆分。垂直拆分垂直拆分比较简单,也就是本来一个数据库,数据量大之后,从业务角度进行拆分多个库,就是一微服务
  • 2024-06-02牛客周赛 Round 3
    D游游的矩阵权值题目描述游游定义一个矩阵权值为:每一对相邻元素之和的总和。例如,对于矩阵:1234它的权值是(1+2)+(1+3)+(2+4)+(3+4)=3+4+6+7=20。游游希望你构造一个\(n*n\)的矩阵,矩阵中的元素为1到\(n^2\)且每个数恰好出现一次。她希望最终矩阵的权值尽可能大。你能帮帮
  • 2024-06-02牛客周赛 Round 1
    D游游的9的倍数题目描述游游拿到了一个数字串,她想取一个该数字串的子序列(子序列在原串中可以不连续),使得该子序列是9的倍数。子序列可以包含前导零。游游想知道,一共能取多少个合法的子序列?答案请对\(10^9+7\)取模。我们定义,若两个子序列在原串中的位置不同,则认为它们不同。
  • 2024-05-30洛谷 P8614 [蓝桥杯 2014 省 A] 波动数列 的题解
    题目大意求满足和为sss且ti=
  • 2024-05-26.哈希表.
    哈希哈希表:将大而复杂的数据映射到紧凑的区间内。分为:①存储结构 (离散化是特殊的哈希,之前讲的离散化是严格保序的映射到区间上是连续递增的)哈希不保序,这里讲的是一般的哈希弊端:若数据的数值较大可以对其取模后再映射,但是取模后可能造成:之前不相同的数值取模后映射到同
  • 2024-05-14ABC 353 A - E
    ABC353A-EABuildings这是一道很难的题,我们需要用复杂的枚举方法,我们从$2$号开始枚举(注意理解为什么是从$2$号开始),然后一直找到最后,找比它大的,建议没有超过高四的同学们不要轻易尝试BAtCoderAmusementPark这也是一道不简单的题,我们考虑直接加,然后如果超过$k
  • 2024-05-10Hash
    对于一个主串和一个子串,我们想知道它们是否匹配,暴力肯定不可取,如果我们用一个数来表示它们中的每一个字符以及子串呢?字符串hash就出现了\(f(s)=s[1]*base^{len-1}+s[2]*base^{len-2}+…+s[len]*base^{0}\)很显然,字符串的hash值的计算是类比于十进制数的个十百位叠加,而不是单纯的
  • 2024-04-27ABC 288 D - Range Add Query
    题目链接:设\(a[i]\)表示下标对\(k\)取模为\(i\)的所有数的和。那每次操作就是将数组\(a\)的所有数都加\(c\)。最终为\(0\)的充分必要条件就是\(a\)的所有数都是一样的。因此,对于每组询问,统计\([l,r]\)中数字下标对\(k\)取模的所有数的和,看看是否为同一个数即可
  • 2024-04-26Sharding-JDBC测试ChatGPT
    问题:Sharding-JDBC对订单表进行分库分表,16个库,每个库16张表。分片键订单id、用户id。分库规则,对分片键按1000取模再对16取模。分表规则,对分片键按1000取模再对256取模。配置文件如何写,以及ComplexKeysShardingAlgorithm实现代码? 回答:针对订单表进行分库分表,每个库16张表,分片