自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 练习-日期统计

小蓝现在有一个长度为 100 的数组,数组中的每个元素的值都在 0 到 9 的范围之内。的 2023年的日期。对于相同的日期你只需要统计一次即可。代码的目标是从这个序列中匹配出符合特定格式的日期字符串。代码遍历2023年的每一天,构造日期字符串,格式为。数组包含100个数字,表示一个数字序列。数组存储了每个月的天数(非闰年)。数组中找到(按顺序),则匹配成功。对于每个日期,构造一个字符串。如果匹配成功,则增加计数器。表示2023年1月1日。,表示符合条件的日期数量。

2025-03-23 23:56:22 561

原创 练习-班级活动(map存储键值对)

班上一共有 n 名 (n 为偶数) 同学,老师想把所有的同学进行分组,每两名同学一组。为了公平,老师给每名同学随机分配了一个 n 以内的正整数作为 id,第 i 名同学的 id 为 ai​。老师希望通过更改若干名同学的 id 使得对于任意一名同学 i,有且仅有另一名同学 j 的 id 与其相同 (ai=aj)。两两配对,每对需要更改 1 次,因此总更改次数为。需要减少出现次数,使其变为 2。需要减少出现次数,使其变为 2。数量大于等于出现次数为 1 的。数量,则需要更改的总数为。的出现次数满足上述条件。

2025-03-22 00:02:18 916

原创 上取整,下取整,四舍五入

操作方法示例代码上取整std::ceil→ 4下取整std::floor→ 3四舍五入std::round→ 3自定义小数位四舍五入乘 10n10n 后std::round→ 3.14强制类型转换下取整→ 3自定义上取整判断小数部分并加 1→ 4。

2025-03-20 00:16:04 803

原创 数学之握手问题

小蓝组织了一场算法交流会议,总共有 50人参加了本次会议。在会议上,大家进行了握手交流。按照惯例他们每个人都要与除自己以外的其他所有人进行一次握手 (且仅有一次)。但有 7 个人,这 7 人彼此之间没有进行握手 (但这 7 人与除这 7 人以外的所有人进行了握手)。请问这些人之间一共进行了多少次握手?注意 A和 B 握手的同时也意味着 B 和 A 握手了,所以算作是一次握手。

2025-03-20 00:07:11 653

原创 欧拉降幂-乘积幂次

输入共一行,包含两个整数 n,m。输出共一行,表示答案。

2025-03-17 00:10:47 493

原创 练习-平方拆分问题(线性筛法-筛质数)

题目是这样的:给定两个数 a 和 b,在 a 到 b(包括 a,b)之间所有数的平方当中,试问有几个数能够表示为 x×y 的形式,其中 x 和 y 是质数。如果一个数的平方可以表示为两个质数的乘积,即 n2=p×q,其中 p 和 q 是质数。如果 n2=p×q,其中 p 和 q 是质数,那么 n 必须是两个质数的乘积的平方根。由于 n2=p×q,且 p 和 q 是质数,那么 n 必须是两个质数的乘积的平方根。我们需要找到区间 [a,b] 内的数 n,使得 n2 可以表示为两个质数的乘积。

2025-03-16 17:41:02 685

原创 练习-依依的询问最小值(前缀和差分)

为了最小化总和,我们应该将较大的元素分配给被较少查询区间覆盖的索引,将较小的元素分配给被较多查询区间覆盖的索引。将较大的元素分配给被较少查询区间覆盖的索引,将较小的元素分配给被较多查询区间覆盖的索引。:每个查询区间 [li,ri] 的元素和是 a[li]+a[li+1]+⋯+a[ri]。将较大的元素分配给被较少查询区间覆盖的索引,将较小的元素分配给被较多查询区间覆盖的索引。将较大的元素分配给被较少查询区间覆盖的索引,将较小的元素分配给被较多查询区间覆盖的索引。

2025-03-16 16:49:55 903

原创 字符串-回文字符串(Manacher算法)

小蓝最近迷上了回文字符串,他有一个只包含小写字母的字符串 S,小蓝可以往字符串 S 的开头处加入任意数目个指定字符: l、q、b(ASCII码分别为: 108、113、98)。输出 T 行,每行包含一个字符串,依次表示每组数据的答案。这意味着我们需要找到一个最长的前缀回文串,然后检查剩余部分是否可以通过添加指定字符使其对称。Manacher 算法可以在 O(n)的时间复杂度内找到字符串中的所有回文子串。:一个字符串如果正读和反读相同,则称为回文字符串。不是回文字符串,我们需要通过添加字符使其对称。

2025-03-16 15:57:12 999

原创 字符串-你也喜欢幸运字符串吗?(KMP)

小蓝非常喜欢幸运字符串,幸运字符串指的是字符串的一个前缀,现在给定你一个长度为 n 的字符串 S,要求你数出这个字符串中对于每个幸运字符串总共出现了多少次?对于前缀 a,ab,abc,abca,abca,abcabc字符串中分别出现 2,2,2,1,1,1所以答案为 2+2+2+1+1+1=9。第二行输入一个由小写字母组成的字符串表示字符串 S。的出现次数累加到它的最长公共前后缀。出现了,那么它的最长公共前后缀。每次输出一个正整数,表示答案。的最长公共前后缀的长度。这样可以避免重复统计。

2025-03-16 14:30:31 531

原创 字符串-契合匹配(KMP处理环上问题)

小蓝有很多齿轮,每个齿轮的凸起和凹陷分别用一个字符表示,一个字符串表示一个齿轮。如果两个齿轮的对应位分别是同一个字母的大小写,我们称这两个齿轮是契合的。例如: 和 就是契合的,但是 和 不是契合的。这天,小蓝的弟弟小桥从抽屉里拿来了两个齿轮,小蓝想知道,这俩个齿轮是不是契合的。特别需要注意的是,齿轮是环形的,所以是可以旋转的(顺时针和逆时针均可),如果是契合的,小蓝还想让你告诉他,最少将第一个齿轮旋转多少位,两个齿轮可以完全契合在一起。例如: 与 ,在将第一个齿轮逆时针旋转两位后,变成 ,两个齿轮

2025-03-16 12:07:15 981

原创 练习-串串变变变(字符串变换)

对于样例,我们可以先将 s1​ 变为 b ,然后将 s2​ 变为 c ,此时字符串 s=bc ,然后我们将 s1​ 变为 a ,然后将 s2​ 变为 d ,此时字符串s=ad ,所以字符串 s 可以通过操作变为的最小字典序字符串为 ad。从左到右遍历字符串,对于每个字符 sisi​,尽可能将其值减少到最小(即 'a'),同时将减少的值传递给右边的字符。,这是一种常见的技巧,用于在字符串前面添加一个空格,使得字符串的索引从 1 开始。每次操作可以将一个字符的值减少 1,同时将相邻字符的值增加 1。

2025-03-16 10:24:13 833

原创 练习-早餐的蛋糕(组合数)

一共有 3 种蛋糕,假设命名分别为 A,B,C则可行的方案分别为 (A,B),(B,C),(A,C),(A,B,C)共 4 种方案。会吃 n 种不同的蛋糕,而他去的蛋糕店每天供应 m 种不同的蛋糕。从 m 种蛋糕中选择 k 种蛋糕的组合数为 C(m,k)。组合数 C(m,k)的值随着 m 和k 的增大而快速增长。组合数 C(m,k) 的值可能非常大,必须使用。是多个组合数的累加和,也可能非常大,必须使用。请问每天早上小蓝有多少种不同的吃蛋糕的方案。吃蛋糕的方案不同即吃的蛋糕种类不完全相同。

2025-03-13 12:34:26 727

原创 练习-纪律问题(幂运算)

一年级一班有 n 个小朋友坐成一排,统计了这些小朋友的爱好后,老师得知了他们一共有 m 种爱好,每个小朋友会拥有这些爱好中的一种。如果相邻的小朋友爱好相同,那么他们上课时就会忍不住悄悄说话,违反课堂纪律。输出一个整数,代表模 100003 的意义下共有多少种可能的答案。发生违法记录的状态数 = 总排列数 - 不发生违法记录的排列数。在模运算中,负数的结果需要调整为正数,因此代码中通过。,可以确保结果不会溢出,同时保持结果的正确性。外部的取模是为了防止乘法操作后的结果溢出。的范围内,符合题目的要求。

2025-03-13 00:13:52 1261

原创 数学之费马小定理求逆元-乘法逆元

费马小定理是数论中的一个重要定理,描述了在模质数下的幂运算性质。具体内容如下:如果 p 是一个质数,且 a 不是 p 的倍数(即 a 和 p 互质),则:其中,≡表示“同余”。

2025-03-11 00:37:40 758

原创 数学之快速幂-数的幂次

如果当前二进制位为 1,将当前的 a 乘到结果 res 中,并对 p 取模。在计算过程中,每一步都对结果取模 p,避免数值过大,同时保证结果的正确性。例如,b=13的二进制表示为 1101。,将幂运算的时间复杂度从 O(b) 降低到O(logb)。将 b 右移一位(相当于 b=b/2),继续处理下一位。其中,8,4,1是二进制位为 1 的位置对应的幂。将 a 平方,并对 p 取模,为下一次循环做准备。每次平方操作将幂的次数翻倍,从而大大减少计算量。输出共 T 行,每行包含一个整数,表示答案。

2025-03-10 23:58:29 335

原创 数学之约数个数定理-阶乘约数

如果我们将每个质因数的选择数相加,得到的是所有可能的指数的总和,而不是约数的个数。相乘是因为每个质因数的选择是独立的,我们需要考虑所有可能的组合。

2025-03-08 20:37:51 1246

原创 数学之扩展欧几里得算法-线性同余方程

对于我们的方程 a×x+m×y=b,如果 gcd⁡(a,m) 整除 b,我们可以将扩展欧几里得算法求得的解 x 和 y 进行调整,得到方程的特解。同时,方程的解需要乘以 b/d,因为扩展欧几里得算法求解的是 gcd⁡(∣a∣,∣m∣),而我们需要的是 b。我们需要将解 x 和 y 乘以 b/gcd⁡(a,m),得到方程 a×x+m×y=b 的特解。扩展欧几里得算法求解的是 ∣a∣×x+∣m∣×y=gcd⁡(∣a∣,∣m∣) 的解。扩展欧几里得算法求解的是 a×x+m×y=gcd⁡(a,m)。

2025-03-08 16:42:17 913

原创 字符串字典树-依依的瓶中信

这个夏天,依依在海滩上捡到了 N 个瓶中信,每个瓶中信里都有一条由小写英文字符组成的信息,这些信息分别来自她的 N 个朋友。依依是一个住在海边小镇的女孩,她的朋友们分散在世界的各个角落。现在,依依希望你能帮助她找出对于每条信息 Si,哪条信息与其最相似,即从开头开始,最长能连续匹配的字符的数量是多少。接下来的 NN 行,每行包含一个由小写字符构成的字符串 SiSi​,表示小蓝的一个朋友在信封里刻写的信息。输出共 N行,对于每条信息Si​,输出一个整数,表示与 Si​ 最接近的信息的最长公共前缀的长度。

2025-03-06 18:06:43 1020

原创 字符串kmp-boarder

循环节是指字符串中。

2025-03-06 14:52:47 703

原创 字符串kmp-幸运字符串

输入处理读取字符串长度 nn。定义字符数组p,长度为 n+1n+1,并从下标 1 开始读取字符串 SS。KMP 算法的 next 数组构建通过遍历字符串,计算每个位置 ii 的最长前缀后缀匹配长度,并存储在nex[i]中。求解最大幸运字符串遍历nex数组,找到最大值,即为最长的既是前缀又在字符串中至少出现过 2 次的子串的长度。输出结果输出最大值ans。在 KMP 算法中,i从 2 开始,j从 0 开始的原因与算法的核心思想密切相关。2.i从 2 开始的原因i表示当前正在处理的字符位置。

2025-03-05 23:53:13 1037

原创 字符串01Trie-卓儿的最大异或和

插入。

2025-03-04 23:52:38 1236

原创 字符串字典树-前缀判定

给定 N 个字符串 S1,S2,...,SN 和 M 个询问,每个询问包含一个字符串 Ti​,问 Ti​ 是否在 S1​ 或 S2​ ... 或 SN​ 的前缀出现过。例如,对于小写字母组成的字符串,每个节点可以包含 26 个子节点指针(对应。输入第一行包含两个整数 N,M,分别表示给定字符串的数量和询问的个数。输出共 M 行,每行包含一个整数,表示对应询问的回答。:当前可用的节点编号,初始值为2(1为根节点)。在字符串的最后一个字符对应的节点上,增加计数。如果遍历完字符串,说明字符串是前缀,返回。

2025-03-04 16:59:24 1065

原创 字符串哈希算法-斤斤计较的小Z

现在给出两个串 S1,S2(只有大写字母),求 S1 在 S2 中出现了多少次。将字符串看作一个多项式,每个字符的 ASCII 值作为系数,基数 b 作为变量。由于哈希值的范围有限,不同的字符串可能会映射到相同的哈希值(哈希冲突)。通过预处理前缀哈希值,可以在 O(1) 时间内计算任意子串的哈希值。为了快速计算任意子串的哈希值,字符串哈希算法通常需要预处理字符串的。通过选择合适的基数 b 和模数 M,可以尽量减少哈希冲突的概率。:尽可能减少哈希冲突,即不同的字符串映射到不同的哈希值。

2025-03-04 15:20:20 718

原创 字符串KMP算法-斤斤计较的小Z

现在给出两个串 S1,S2(只有大写字母),求 S1 在 S2 中出现了多少次。,表示模式串的第一个字符还没有匹配成功,此时不需要回退,直接尝试匹配。,表示模式串的前两个字符已经匹配成功,接下来需要匹配第三个字符。,相当于每次失败都从头开始匹配,失去了KMP算法的优势。,相当于从头开始匹配,失去了KMP算法的优势。时,表示模式串的第一个字符还没有匹配成功。,表示需要从模式串的第一个字符重新开始匹配。,表示模式串的第一个字符已经匹配成功。),表示模式串的下一个字符需要匹配。,表示需要从头开始匹配。

2025-03-03 23:35:03 748

原创 字符串Manacher算法-最长回文子串

x为奇数。

2025-03-02 20:43:06 579

原创 位运算1-加和异或

现在问你,根据已知的 (x,y)(x,y),是否存在一对非负整数解 (p,q)(p,q),使得 x=p+qx=p+q,y=p⊕qy=p⊕q 成立。输出 tt 行,若存在一对非负整数解 (p,q)(p,q),使得 x=p+qx=p+q,y=p⊕qy=p⊕q 成立,则输出。⊕⊕ 是位运算中的按位异或运算,其有 1⊕1=0,0⊕0=0,1⊕0=11⊕1=0,0⊕0=0,1⊕0=1 的性质。给定两个正整数 x,yx,y,已知 x=p+qx=p+q,y=p⊕qy=p⊕q。所以只需要保证其三个性质的x和y即可。

2025-03-01 00:34:00 323

原创 动态规划之二维dp-摆花

我们定义。

2025-02-28 23:02:17 778

原创 动态规划之线性DP-安全序列

小蓝是工厂里的安全工程师,他负责安放工厂里的危险品。工厂是一条直线,直线上有 n 个空位,小蓝需要将若干个油桶放置在 n 个空位上,每 2 个油桶中间至少需要 k 个空位隔开,现在小蓝想知道有多少种放置油桶的方案,你可以编写一个程序帮助他吗?由于这个结果很大,你的输出结果需要对 取模。第一行包含两个正整数n,k,分别表示 n 个空位与 k 个隔开的空位。输出共 1行,包含 1 个整数,表示放置的方案数对 取模。用 0代表不放,1 代表放,6 种情况分别为:,,,,,。对于所有评测数据,当放一

2025-02-28 01:28:24 581

原创 搜索(记忆化)2-混境之地5

第 1 行输入三个正整数 n,m 和 k ,n,m 表示混境之地的大小, k 表示使用一次喷气背包可以升高的高度。第 2 行输入四个正整数 A,B,C,D表示小蓝当前所在位置的坐标,以及混境之地出口的坐标。第 3 行至第 n+2 行,每行 m 个整数,表示混境之地不同位置的高度。,表示将左边的变量与右边的值进行按位或运算,并将结果赋值给左边的变量。通过记忆化,可以记录每个状态的结果,避免重复计算。的目的是记录某个状态是否已经被计算过,以及计算的结果是什么。可以记录每个状态的结果,避免重复计算,提高效率。

2025-02-27 16:15:17 592

原创 搜索1-数字接龙

对于路径经过的棋盘格子,按照经过的格子顺序,上面的数字组成的序列要满足:0,1,2,…,K−1,0,1,2,…,K−1,0,1,2,…例如之前有从 (0,0)(0,0) 移动到 (1,1)(1,1) ,那么再从 (1,0)(1,0) 移动到 (0,1)(0,1) 线路就会交叉。如果 K=4,则数字序列为:0,1,2,3,0,1,2,3,0,1,…0,1,2,3,0,1,2,3,0,1,…如果 K=3,则数字序列为:0,1,2,0,1,2,0,1,2,…0,1,2,0,1,2,0,1,2,…

2025-02-27 00:28:30 1020

原创 枚举1-统计方形个数

即 −9,223,372,036,854,775,808 到 9,223,372,036,854,775,807。题目要求计算一个 n×m 的棋盘中包含的正方形和长方形(不包含正方形)的数量。有一个 n×m 方格的棋盘,求其方格包含多少正方形、长方形(不包含正方形)。一行,两个正整数,分别表示方格包含多少正方形、长方形(不包含正方形)。即 −2,147,483,648 到 2,147,483,647。固定右下角 (i,j),正方形个数为min(i,j)。:棋盘内所有可能的长方形的总数,但不包括正方形。

2025-02-25 22:26:11 611 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除