- 博客(24)
- 收藏
- 关注
原创 STL(string)
6.s.find_first_not_of(str, pos): 在当前字符串的指定索引位置开始查找第一个不在子串中的字符,返回找到的位置索引,-1 表示查找不到字符。8.s.find_last_not_of(str, pos): 在当前字符串的指定索引位置开始查找最后一个不在子串中的字符,返回找到的位置索引,-1 表示查找不到子串。7.s.find_last_of(str, pos): 在当前字符串的指定索引位置开始查找子串中的最后一个字符,返回找到的位置索引,-1 表示查找不到字符。
2024-05-27 00:18:07
435
原创 最长连续不重复子序列
的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。共一行,包含一个整数,表示最长的不包含重复的数的连续区间的长度。范围内),表示整数序列。
2024-05-19 23:36:58
910
原创 2024河南第六届CCPC
例如,当n=12345 时,任意排列得到的n′ 均是合数,因此可以任意取n′。思路:末尾是0,2,4,5,6,8肯定是合数,如果末尾不是,那么五个数字里起码有一个是,和末尾交换就行。对于n=12345678,d=9,可以取 k=404,有 n·k=4987653912 为幸运数。对于n=1,d=6,可以取k=1234567896,有 n·k=1234567896 为幸运数。对于n=233,d=2,可以取k=9217006,有 n·k=2147562398 为幸运数。• 获得1枚扫雷币,目前有2枚扫雷币。
2024-05-19 22:34:04
687
1
原创 【无标题】
给出两个字符串s1和s2,若s1的区间lr子串与s2完全相同,则称s2在s1中出现了,其出现位置为l。现在请你求出s2在s1中所有出现的位置。定义一个字符串s的 border 为s的一个s的子串t,满足t既是s的前缀,又是s的后缀。对于s2,你还需要求出对于其每个前缀s′的最长 bordert′的长度。
2024-05-12 23:18:15
884
1
原创 20240509J - Similarity (Easy Version)
【代码】20240509J - Similarity (Easy Version)
2024-05-12 22:59:00
391
1
原创 训练赛0505(2023年中国大学生程序设计竞赛女生专场)
阿杰平时最喜欢玩赛尔号,赛尔号里面有很多小游戏,这次活动更新的小游戏描述是这样的:给出一个有 9 个格子水平排列的棋盘,从左到右标号为 1 到 9 ,游戏的开始时标号为 2 的格子上有一个紫色棋子,标号为 3 的格子上有一个绿色棋子,标号为 4 的格子上有一个黄色棋子。这个游戏的终极目标是在最后的展示大会上获得最高的评分,最后的展示大会上有一些评委,每个评委都有各自的评判标准,当你达成了这个评委的评判标准,你就能获得这个评委的评分,评委的评判标准格式如下,可以由一个整数七元组 表示。
2024-05-05 23:03:01
878
原创 Hello XTCPC
您需要找到尽可能多的序列“xtCpc”。但是字母在同一个位置只能使用一次。第一行是一个整数 n显示字符串的长度。( 1≤n≤2×10 5)第二行是长度为 n 的字符串,由小写字母和大写字母组成。输入文件包含一个整数,显示找到的不同子序列的最大数量。题目中没说但是是个多实例测试。
2024-04-27 21:51:23
148
原创 P1059 明明的随机数
1000 之间的随机整数 (N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了 N 个 1到。输出也是两行,第 1 行为 1 个正整数 M,表示不相同的随机数的个数。第 2 行为M 个用空格隔开的正整数,为从小到大排好序的不相同的随机数。输入有两行,第 1 行为 1 个正整数,表示所生成的随机数的个数 N。第 2 行有 N 个用空格隔开的正整数,为所产生的随机数。
2024-04-27 19:33:53
181
原创 时间复杂度
i是从0到n,j是从0到m,所以每个n都有m种可能即时间复杂度O(m*n)i从一到n,内层循环执行2,4 ,6等差数列n(2+2。这个时候时间复杂度就是O(sqrt(n))#核心主要分为不同的循环循环次数。1.列出外层循环(i的变化)时间复杂度O(log2n)(n+1)即O(N*N).2.列出内层循环执行次数。1.可以理解为求三维体积。2.也可以理解为列式求和。
2024-04-26 22:54:53
114
1
原创 滑动窗口 /【模板】单调队列(洛谷)
有一个长为 𝑛n 的序列 𝑎a,以及一个大小为 𝑘k 的窗口。现在这个从左边开始向右滑动,每次滑动一个单位,求出每次滑动后窗口中的最大值和最小值。输入一共有两行,第一行有两个正整数 n,k。第二行 n 个整数,表示序列 a。对于 100% 的数据,1≤k≤n≤10 6,ai∈[−231,231)。对于 50% 的数据,1≤𝑛≤10 5 ,1≤n≤10 5;输出共两行,第一行为每次窗口滑动的最小值。可以用数组或者双端队列或优先队列做。第二行为每次窗口滑动的最大值。窗口位置最小值最大值。
2024-04-26 14:29:43
283
1
原创 P1115 最大子段和(洛谷)
对于 100% 的数据,保证 1≤𝑛≤2×10 5,1≤n≤2×10 5,−10 4≤ai≤10 4。第二行有 n 个整数,第 𝑖i 个整数表示序列的第 i 个数字 baiai。给出一个长度为 n 的序列 a,选出其中连续且非空的一段使得这段和最大。选取 [3,5] 子段 {3,−1,2},其和为 4。对于 40% 的数据,保证 n≤2×10 3。训练时的代码(只能过两个测试点,时间超限)第一行是一个整数,表示序列的长度 n。输出一行一个整数表示答案。事实上有一种很巧妙的方法。
2024-04-26 13:40:55
207
1
原创 P1303 A*B Problem(洛谷)(高精度乘法)
当最后一个数字大于9,进位更新字符串长度,但是如果0乘以1000,会输出四个0,因此等于0,长度也需要更新,但是保留一位。与乘法相似先储存字符串,但是不懂的是想成怎么储存。每个非负整数不超过 10的2000次方。给出两个非负整数,求它们的乘积。输入共两行,每行一个非负整数。输出一个非负整数表示乘积。
2024-04-23 17:43:50
178
原创 P1601 A+B Problem(高精)(洛谷)
想加之后是倒数的和,所以字符最后一位不是零,长度加一。高精度加法,相当于 a+b problem,40% 的测试数据,0≤𝑎,𝑏≤10 18。20% 的测试数据,0≤𝑎,𝑏≤10 9;输出只有一行,代表 𝑎+𝑏a+b 的值。倒序输出就是所求结果。
2024-04-23 16:45:36
146
原创 P2249 查找(洛谷)
输入 𝑛n 个不超过 109109 的单调不减的(就是后面的数字不小于前面的数字)非负整数 𝑎1,𝑎2,…对于每次询问,给出一个整数 𝑞q,要求输出这个数字在序列中第一次出现的编号,如果没有找到的话输出 −1−1。数据保证,1≤𝑛≤10 6 ,1≤n≤10 6,0≤𝑎𝑖,𝑞≤10 9 ,0≤ai,q≤10 9,1≤𝑚≤10 5,1≤m≤10 5。这道题难度不大主要是算法的问题,多了解一下算法,这次的二分写的更清晰简练 ,所以我觉得有必要写一下。输出一行,𝑚m 个整数,以空格隔开,表示答案。
2024-04-22 14:30:24
304
原创 L1-009 N个数求和(PTA)
本题的要求很简单,就是求N个数字的和。麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式。
2024-04-22 14:16:44
210
原创 L1-006 连续因子(PTA)
一个正整数 N 的因子中可能存在若干连续的数字。例如 630 可以分解为 3×5×6×7,其中 5、6、7 就是 3 个连续的数字。给定任一正整数 N,要求编写程序求出最长连续因子的个数,并输出最小的连续因子序列。
2024-04-22 14:00:47
162
原创 P1102 A-B 数对(洛谷)
在从小到大的排好序的数组中,在数组的 [begin, end) 区间中以二分查找的方式,第一个大于等于value的数,找到返回该数字的地址,没找到则返回end。对于 100%100% 的数据,1≤𝑁≤2×10 5, 1≤N≤2×10 5,0≤𝑎𝑖<2 30, 0≤ai<230,1≤𝐶<2 30, 1≤C<2 30。在从小到大的排好序的数组中,在数组的 [begin, end) 区间中以二分查找的方式,第一个大于value的数,找到返回该数字的地址,没找到则返回end。出题是一件痛苦的事情!
2024-04-21 23:30:28
113
1
原创 L1-103 整数的持续性
从任一给定的正整数 n 出发,将其每一位数字相乘,记得到的乘积为 n1。以此类推,令 ni+1 为 ni 的各位数字的乘积,直到最后得到一个个位数 nm,则 m 就称为 n 的。例如 679 的持续性就是 5,因为我们从 679 开始,得到 6×7×9=378,随后得到 3×7×8=168、1×6×8=48、4×8=32,最后得到 3×2=6,一共用了 5 步。本题就请你编写程序,找出任一给定区间内持续性最长的整数。
2024-04-21 18:12:51
347
1
原创 浙江理工大学 2024 年程序设计竞赛(同步赛)
如果是0表示输,1表示赢,要考虑的是连胜的情况,六连胜之后就一直加6,如果失败连胜中断,不用考虑正负数。通过动态规划记录每个字符的最后出现位置,并根据一定的规则更新相应的值。首先读取输入的胜负情况字符串,然后按照题目描述的规则计算得分,并输出结果。)和自身作为一个附庸,从而避免重复计算。这样可以减少时间复杂度。这段代码使用了一个优化,当城邦数量为奇数时,将附庸数量的一半(比要求的大的质数,通过检验就可以测出。按照题目要求就行,注意范围。
2024-04-06 23:38:57
502
原创 时间复杂度计算
通过了解和计算时间复杂度,C语言程序员可以编写出更高效的代码,提高程序的性能和可扩展性。计算一个算法的时间复杂度,需要分析算法中的基本操作,并确定其执行次数与输入规模的关系。然后,根据执行次数的增长趋势,确定时间复杂度的阶数。在这个例子中,线性搜索算法的时间复杂度为O(n),其中n是数组的大小。:随着输入规模增加,算法的执行时间呈指数增长。:无论输入规模的大小,算法的执行时间都保持不变。例如,访问数组中的某个元素。:随着输入规模的增加,算法的执行时间以对数方式增长。:算法的执行时间与输入规模的平方成正比。
2024-03-31 21:51:50
309
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人