- 2024-11-09cmu15545-哈希表(Hash Table)
基本概念哈希和树一样,是数据库系统中用于访问数据的方法。空间复杂度:$O(n)$时间复杂度:$O(1)~O(n)$权衡:更大的哈希空间(碰撞减少),还是更少的哈希空间(碰撞处理)?哈希函数CRC-64(1975)MurmurHash(2008)GoogleCityHash(2011)FacebookXXHash(2012)【最常用】Goo
- 2024-11-08NOIP2024模拟赛 #17 总结
省流:T1对\(998244353\)取模,T2对\(mod\)取模,T3求排名,T4对\(10^9+7\)取模。比赛出锅不少。开T1,发现并没有前几天那么简单,对着题目盯了\(1\)h毫无思路,发现没看见所有高塔的高度两两不同这个条件,看到后略有思路,但是还不太行。后来说大样例出锅了,幸好没写。T2很
- 2024-11-07关于取模与Mint模板
一、关于取模运算1.1关于本篇内容在做题的时候总会遇到很多需要取模的结果,让答案对取\(1e9+7\)或者是\(998244353\)这样的数字取模。这两个数都是质数!我们这篇主要是要说明为什么取模的时候对于除法、减法需要考虑逆元。以及对于逆元应该如何实现。1.2关于常见的取模等
- 2024-11-05ABC378 E 题解
ABC378E题解题意给定序列\(A\),求\(\sum_{1\lel\ler\len}(\sum_{l\lei\ler}A_i\modM)\)计算所有区间和取模之后的结果再求和。注意外层是没有取模的。如果是外层也要取模的情况,那还是十分好办的,直接贡献法计算每个数字被统计了多少次就可以了。问题就在于外层没
- 2024-10-31快速幂和大数取模的简单运用(以SPOJ LASTDIG - The last digit为例)
题目描述原文Nestorwasdoingtheworkofhismathclassaboutthreedaysbutheistiredofmakeoperationsalotandheshoulddeliverhistasktomorrow.Hismath’steachergiveshimtwonumbersaandb.Theproblemconsistoffindingthelastdigito
- 2024-10-30C语言之长整型有符号数与短整型有符号数转换
最近考证的新星,问了一个问题:inta=1234565789;为什么在输出%hd时的值为-1379?其实这个很简单,只不过对于可能初入“编程坑”以及经验不是很丰富的朋友来说,感觉知道这么个道理,但就是解释不上来,无法做出实际的推论。作者想说的是,这个知识点亦涉及多方面,比较广泛,
- 2024-10-24关于模数
关于模数对于模数\(p\)\(p=998244353\)则是一个可以使用NTT的问题\(p>10^7,p\in\mathbbP\)则是一个可以使用除法的问题\(p>10^7,p\not\in\mathbbP\)则是一个不能使用除法的问题\(p=2^{64},p=2^{32}\)则是自然溢出,且可能出现取模后一定等于\(0\)的性质。
- 2024-10-16模板-自动取模整型mint
输入为int64类型,底层用int64表示,每次运算后自动取模。template<intMOD>structMInt{i64x;intnorm(i64u)const{u%=MOD;if(u<0)u+=MOD;returnu;}MInt(i64v=0):x(norm(v)){}intval()const{returnx;}MIntoperator-()const{returnMInt
- 2024-10-12[题目记录]一本通高手训练-数列
题意定义n-数列为满足以下条件的数列\({a_i}\):数列长度不小于\(3\),且每个元素为\(1\)到\(n\)的整数.对于任意\(k\ge3\),有$(a_k-a_{k-2})(a_{k-1}-a_{k-2})<0$.给出\(n\),求n-数列的个数,对\(10^9+7\)取模.\(n\le10^{500000}\)时空限制
- 2024-10-11ARC169D 做题记录
link假定\(a_{1\simn}\)不对\(n\)取模,设最终状态为\(b_{1\simn}\),令\(S=\sum\limits_{i=1}^n(b_i-a_i)\),应满足以下条件:\(b_i\bmodn\)两两不同\(m|S\)\(\max\limits_{i=1}^n(b_i-a_i)\)先对\(a\)排序,那么可以发现最优情况下\(b\)也
- 2024-10-02暑期模拟赛总结(下)
8/1rnk15,\(90+0+60+30=180\)。T1集合题意:给定一个由\(0\simn-1\)的数组成的集合\(S\),求从\(S\)中取出\(k\)个元素的期望MEX是多少。对\(998244353\)取模。解析:简单组合数学。考虑对于一种选法的MEX是\(x\),当且仅当\(0\simx-1\)的所有数都被选择且\(x\)自
- 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 输出格式