自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 奇数码问题

奇数码游戏是它的一个扩展,在一个n×nn\times nn×n的网格中进行,其中n为奇数,1个空格和1∼n×n−11\sim n\times n-11∼n×n−1这n×n−1n\times n-1n×n−1个数恰好不重不漏地分布在n*n的网格中。局面中每个整数都是0∼n×n−10\sim n\times n-10∼n×n−1之一,其中用0代表空格,其余数值与奇数码游戏中的意义相同,保证这些整数的分布不重不漏。第1行一个整数n,n

2024-01-26 14:50:12 714

原创 Ultra-QuickSort

如果题目中的“Ultra-QuickSort”指的是某种更高效的排序算法,则此代码可能无法正确模拟。但根据题目的描述,这个算法仅通过交换相邻元素进行排序,所以以上代码应该符合题意。请注意,真正的快速排序通常不会按照这种方式(只交换相邻元素)进行操作,其交换元素的距离可能远大于相邻位置。实际的快速排序平均时间复杂度为O(n log n),而上述代码的时间复杂度是O(n^2)。由于题目中没有具体说明Ultra-QuickSort算法的具体实现细节,我们将假设它始终将较小的元素交换到前面(类似于冒泡排序)。

2024-01-26 14:46:56 812

原创 Running Median

在C++中,为了解决这个问题,我们可以使用优先队列(堆)来高效地维护一个有序序列并快速找到中间值。注意:此代码并未处理每行输出10个元素的情况,但在实际运行时,可以根据需要调整输出格式以满足题目要求。

2024-01-26 14:44:35 1394

原创 货仓选址

在一条数轴上有N家商店,它们的坐标分别为 A[1]~A[N]。现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品。为了提高效率,求把货仓建在何处,可以使得货仓到每家商店的距离之和最小。对于100%的数据:N≤100000, A[i]≤1000000。第一行一个整数N,第二行N个整数A[1]~A[N]。一个整数,表示距离之和的最小值。

2024-01-26 14:41:43 407

原创 小红的白日梦

已知小红白天做梦可以获得 2 点幸福度,晚上做梦可以获得 1 点幸福度。她可以每天将晚上的梦提前移到白天来做,请问小红总共最多可以获得多少幸福度?第二行输入一个长度为n的、仅由'Y'和'N'组成字符串,代表每天中午的做梦情况。第二行输入一个长度为n的、仅由'Y'和'N'组成字符串,代表每天晚上的做梦情况。第三天小红将晚上的梦提前到白天来做,获得了 2 幸福度。第一天小红中午做梦了,晚上没做梦,获得了 2 幸福度。第二天小红白天和晚上都做梦了,获得了 3 幸福度。'Y'代表做梦了,'N'代表没做梦。

2024-01-24 16:01:28 563

原创 牛客竞赛:小红大战小紫

来源:牛客网。

2024-01-24 15:58:21 515

原创 生成函数

来源:牛客网。

2024-01-24 15:54:32 413

原创 背包

来源:牛客网。

2024-01-18 10:24:31 364

原创 失衡天平

来源:牛客网。

2024-01-18 10:22:03 462

原创 [SCOI2005]最大子矩阵

来源:牛客网题号:NC20242时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K,其他语言524288K。

2024-01-18 10:16:43 499

原创 小A与小B

来源:牛客网题号:NC23486时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K,其他语言524288K。

2024-01-18 10:13:01 439

原创 TH79 Tree III

首先创建一个邻接表来表示树的结构,并通过广度优先搜索(BFS)遍历整个树,计算从根节点到每个节点的距离以及最远祖先节点。(根为第一个节点,并给出从第2个节点到第n个节点的父结点),请你求解它的“第二直径”的长度,即树上任意两点距离。树构成了一条1-2-3-4-5的链,不难发现“第二直径”长度为3,其中1到4、2到5均满足要求。的第二长距离为多少(也就是说,如果存在两条不同的,长度均为max的路径,则返回max)。树构成了一朵以1为中心的花,不难发现“第二直径”长度为2(当然此时的直径也为2)。

2024-01-17 09:51:56 468

原创 TH77 中奖的概率

n个元素的数组,第i个元素为ai,从n中随机挑选k个数字,然后让这k个数字中最大的数字中奖。区间内有多少种选法可以使得当前位置上的数字是最大的,并将这个概率乘以总的组合数。首先对数组进行排序,然后逐个计算每个位置上数字中奖的概率。求每个数字中奖的概率(mod 1000000007意义下)1≤k≤n≤200000,ai​在int范围内且互不相同。每个数字被选择的概率都是相等的为1/3。表示要随机挑选的数字个数,以及整数向量。函数则用于计算模意义下的逆元。该方法接收三个参数:整数。表示数组元素个数,整数。

2024-01-17 09:49:07 471

原创 TH76 一起来看流星雨

牛妹是一个非常善于思考的同学,她看到流星划过天空,就非常好奇,随着流星的移动,流星两两之间最远的距离到底在什么时候是最小的,这个最小的距离是多少,所以他去问牛牛,牛牛同学现在光顾着看流星雨了,所以不能回答这个问题,就将这个问题交给你了,你能帮助牛牛吗?现在为了简化问题,假定 n (n

2024-01-17 09:46:41 440

原创 TH75 数据分析

例如数组[1,3,5,2,4,6] [1,3,5,2,4,6] ,长度为3的子数组分别为[1,3,5],[3,5,2],[5,2,4] [1,3,5],[3,5,2],[5,2,4] 和[2,4,6] [2,4,6] ,子数组最大值分别为 [5,5,5,6] [5,5,5,6] ,最小值为5。注意,一个数组的子数组指的是这个数组的某个连续序列,如 [1,2] 和 [1,2,3] 都是 [1,2,3] 的子数组。作为输入,并返回一个整数向量,表示不同长度子数组中最大值的最小值。这段C++代码实现了一个类。

2024-01-17 09:42:42 366

原创 TH70 最小差值

给你一个数组a,请你求出数组a中任意两个元素间差的绝对值的最小值。(2≤len(a)≤10^3)进行排序,然后遍历排序后的数组,计算并更新相邻元素之间的最小差值。最后返回这个最小差值。这段代码首先对输入的整数数组。

2024-01-16 13:45:37 355

原创 TH68 牛牛算题

然而,这个解决方案的时间复杂度是O(n^2),对于较大的n值可能无法在规定时间内得到结果。由于题目没有明确指出要求在多长时间内给出答案,所以这个解决方案理论上是正确的。如果需要优化算法以适应更大的n值,请提供额外信息或考虑更高效的方法。任意一个正整数都可以表示为n=p×k+m (k 为商,m为余数) 的方式,现在死脑筋的牛牛想要计算对于小于等于n的每一个数p(p≥1), 计算所有 k×m 的和。这个问题可以通过遍历小于等于n的所有数p,然后对每个数p计算k和m,并求出k*m的和,最后对10^9+7取模。

2024-01-16 13:36:20 440

原创 TH67 01游戏

遇到1时,如果栈不为空且栈顶元素为0,则弹出栈顶的0并与当前1合并(不影响结果);若栈为空或栈顶元素为1,则将当前1直接输出。对01字符串进行一些操作,01字符串上的0和0相邻时会变成1,而1和1相邻时会在字符串上消失,而0和1相邻时什么都不会发生,问这个字符串最后会变成什么样。1≤∣str∣≤10^6,字符串上的合并消失应优先与左边进行,例如000,中间的0优先与左边的0合并变为10,消失同理。该算法会正确处理题目描述中的情况,按照从左到右的顺序合并相邻的0和1,并删除相邻的1。

2024-01-16 13:32:02 354

原创 TH66 字符反转

现在有一个长度为n的字符串,进行循环右移k位的操作,少对这个字符串进行几次区间反转操作能实现循环右移k位呢。反转操作指字符串某一区间[L,R]内的字符反转,例如“123456”,区间[3,5]进行反转字符串变为“125436”。在实际情况中,更优的做法可能是直接模拟循环右移的过程,而不是通过反转操作来实现。例如字符串为123 那么循环右移4次变为312,用区间反转操作代替的话,就是先对[1,3]反转得到321,再对[2,3]反转得到312,最少进行两次反转操作。为n/2且n为偶数时,只需反转一次即可。

2024-01-16 13:29:47 436

原创 TH65 质数

但是,我们还需要考虑到两个区间中都不能被p整除,但两数相乘可以被p整除的情况。即一个数是p的倍数,另一个数不是p的倍数。有一个质数p,和两个区间[a,b],[c,d],分别在两个区间中取一个数x,y。(3,4),(3,5),(3,6),(4,6),(5,6),(6,6),(7,6),(6,4),(6,5)一共有9个。要计算在两个区间[a, b]和[c, d]中取出数相乘是p的倍数的个数,我们需要考虑每个区间的数被p整除的情况。1≤a≤b≤10^9,1≤c≤d≤10^9,1≤p≤10^9,数据保证p为质数。

2024-01-16 13:23:24 376

原创 TH64 翻滚六边形

有一个边长为1的正六边形,只要 一推它就可以一直滚下去,正六边形左下角为A,想知道正六边形翻滚k次A点的轨迹边长是多少呢。给定正六边形翻滚次数k,求A点翻滚轨迹长度。不过,由于题目描述中并没有明确指出“正六边形翻滚一次”的具体轨迹长度是多少,以上解答假设了一种常见的翻滚方式(例如顺时针或逆时针每次翻滚一个顶点)。要解决这个问题,我们首先需要理解正六边形翻滚的规律。每次翻滚,A点都会沿正六边形的边移动,并且每翻滚6次回到起点。然后,我们需要加上整数倍的正六边形周长(即6个单位长度)。

2024-01-16 13:20:47 402

原创 TH63 数组元素交换

另外,上述代码假设n和m是从1开始计数的,如果在实际题目中n和m是从0开始计数的,则无需做任何改动;如果n和m是从1开始计数的,那么在交换时应当使用。注意:上述代码虽然能实现功能,但在原始题目要求中并没有明确指出是否需要在原地修改数组。如果不能改变原数组,那么需要先复制一份原数组再进行操作。有一个没有重复元素的数组a,想要将数组内第n大的数字和第m大的数(从大到小排序)交换位置。给定一个数组a,求交换第n大和第m大元素后的数组。同时,上述代码没有处理n和m相等的情况,若n和m相等,则不需要交换。

2024-01-16 13:17:48 417

原创 TH62 循环右移

需要注意的是,在实际编程环境中,对于非常大的二进制字符串,直接进行字符串操作可能会消耗较多资源,可以考虑优化为仅针对二进制位进行操作。但由于本题的输入范围限制(1≤∣str∣≤63),采用字符串操作的方式已经足够解决此问题。有一个二进制数的字符串,想把字符串循环右移k位,然后得到一个新的二进制数,求这个数的十进制值是多少。给定一个二进制字符串str和循环位移位数k,返回循环后的二进制数的十进制值。为了解决这个问题,我们可以先计算二进制字符串的位移操作,然后将结果转换为十进制。

2024-01-15 10:26:31 372

原创 TH61 位数求和

当增加一位数字k(0≤k≤9)时,新字符串的和等于原字符串的和加上k,即dp[i][j] += dp[i-1][j-k] * k。首先,我们需要定义一个二维数组dp[n+1][m+1],其中dp[i][j]表示长度为i、各位数字之和为j的所有数的和。初始化时,dp[0][0] = 1(表示空字符串的和是0),dp[0][j] = 0(长度为0的情况下无法有非零和),dp[i][0] = 1(长度为i但和为0的情况只有一个全零字符串)。最后,由于题目要求的是这些数的和,我们返回dp[n][m]即可。

2024-01-15 10:25:00 419

原创 TH60 凯撒密码

一段由凯撒密码加密过的密文,凯撒密码指的是将字符偏移一定的单位,例如若偏移量为2,则a替换为c,b替换为d,c替换为e,...,z替换为b。现在发现加密包括数字、大写字母、小写字母,即0-9、A-Z、a-z的排列顺序进行偏移,现在截获了对方的一段密文以及偏移量,给定一段密文str和偏移量d,求对应的明文。中的每个字符,判断其类型并执行相应的逆向偏移操作:对于数字字符(0-9),在ASCII码表上做逆向偏移;为了解密凯撒密码,我们可以遍历密文中的每个字符,并根据偏移量d进行逆向偏移。

2024-01-15 10:22:54 653

原创 TH58 牛牛排队

按照牛牛的策略,每个门口外的排队人数随着时间的变化的结果为[10,10]→[9,9]→[8,8]→[7,7]→[6,6]→[5,5]→[4,4]→[3,3]→[2,2]→[1,1]→[0,0]按照牛牛的策略,每个门口外的排队人数随着时间的变化的结果为[2,3,2,0]→[1,2,1,0]→[0,1,0,0],当牛牛走到第3个门时,刚好没有人排队,所以牛牛最后可以从第3个门进去。现在给你门的数量n,和每个门外排队的人的数量,如果按照牛牛的策略,那么牛牛最终会在哪个门进去吃饭呢?

2024-01-15 10:20:40 760 1

原创 牛客题霸:TH51 简单的变换

注意在实际编程过程中,由于数值范围较大,对于大部分测试用例来说,不会出现死循环的情况,因此无需检查是否陷入死循环。如果循环超过一定次数(例如n的绝对值大于初始值的一半)仍未变为0,则可以判断无法达到0,返回-1。.......开始进入第三步操作到第五步操作的循环,n永远无法等于0,所以返回-1。重复上述直至n=0停止,请输出进行操作的次数,如果n永远无法变成零,输出-1。对于100%的数据,1≤n≤1e18。对于30%的数据,1≤n≤1e6。1.如果n是奇数,令n=n−3。2.如果n是偶数,令n=n/2。

2024-01-12 09:51:31 437

原创 牛客题霸:TH50 牛牛算数

这段代码首先对数组进行排序以方便计算中位数,接着分别计算中位数和平均数,最后根据两者之间的大小关系返回相应的结果。给你一个含有n个元素的数组arr[i],问这个数组的中位数大还是平均数大,如果中位数更大输出1,如果平均数更大输出-1,如果中位数和平均数相等输出0。对于100%的数据: 1≤n≤1e6,1≤arr[i]≤1e9。对于30%的数据: 1≤n≤1e3,1≤arr[i]≤1e9。中位数6,平均数约等于6.17,所以输出-1。中位数3,平均数约等于2.67,所以输出1。

2024-01-12 09:46:21 489

原创 牛客题霸:TH49 牛牛爱奇数

现在牛牛获得了一种能力,他可以执行一种操作:每次选中一个偶数,然后把这些数中与该数相等的数都除以2,例如现在有一个数组为[2,2,3][2,2,3],那么牛牛可以执行一次操作,使得这个数组变为[1,1,3][1,1,3]。只需做一次操作,会将其中的偶数2都变成1,满足了所有的数都是奇数的要求。对于100%的数据,1≤n≤10^6,1≤ai​≤10^9。对于25%的数据,1≤n≤10^2,1≤ai​≤10^3。对于75%的数据,1≤n≤10^4,1≤ai​≤10^6。1≤n≤10^6,代表一个有多少数字。

2024-01-12 09:42:30 392

原创 牛客题霸:TH48 牛牛的分配

空间复杂度是O(1)。一开始有3个数字,分别为9,4,9,x为7,操作这3个数字后每个数字都不小于x。长度为n的数组,每次可以选择若干元素使元素的值变为这些元素的和的平均值。a1​,a2​,a3​...an​(1≤ai​≤109)代表数组中元素。对于100%的数据,1≤n≤10^6,1≤x,ai​≤10^9。对于25%的数据,1≤n≤10^2,1≤x,ai​≤10^3。对于75%的数据,1≤n≤10^4,1≤x,ai​≤10^6。给出数组和数字x,求经过操作数组中最多有多少数字不小于x。

2024-01-12 09:39:25 327

原创 牛客题霸:TH47 牛牛找子集

牛妹说出一个数字k,牛牛就要从这些数中找到多个由k个数字组成的子集,每个数字有且只能使用一次,并且这些子集是完全相同的,子集内部元素可以相同,完全相同的子集是指两个集合里的元素及其个数都是相同的。一共有12个数字,需要找到大小为5的子集,[1,1,1,2,2]这样的子集一共有两个,满足游戏规则且字典序最小。一共有7个数字,需要找到大小为3的子集,[1,2,3]这样的子集一共有两个,满足游戏规则且字典序最小。对于100%的数据,1≤k≤n≤10^5,1≤si​≤10^5。

2024-01-12 09:35:14 503

原创 TH43 牛牛摆放花

然后使用双指针法遍历数组,计算相邻两朵花之间的高度差,并不断更新最小高度差。对于花的数量为奇数的情况,我们还需要额外判断将中间花放在首尾哪一侧能够得到更小的高度差。第二个参数为包含a1​,a2​,a3​...an​(1≤ai​≤10^9)的数组,代表每朵花的高度。第一个参数为一个整数n(2≤n≤10^5),代表花的数量。对于100%的数据,2≤n≤105,1≤ai​≤10^9。对于60%的数据,2≤n≤103,1≤ai​≤10^6。对于20%的数据,2≤n≤10,1≤ai​≤10^2。

2024-01-11 09:32:41 439

原创 TH42 牛牛的字符串

有一个长度为N的由小写字母组成的字符串S,还有一个整数K。在每一步中,可以选择一个位置 i 并在 i 和 i + K 处交换字符(i + K < N)并且Si​

2024-01-11 09:29:34 397

原创 TH41 星球游戏

来表示星球之间的连接关系,并根据给定的隧道信息填充该矩阵。然后使用 Floyd-Warshall 算法计算出任意两个星球之间的最短距离。最后遍历牛牛占领的所有星球和牛妹占领的所有星球,找到它们之间的最小距离并返回。如果这些星球之间没有连通,则返回。这段代码首先创建一个邻接矩阵。

2024-01-11 09:27:27 353

原创 TH40 牛牛摇骰子

接着利用动态规划的方法更新数组,根据题目给出的移动规则(向左或向右移动0、3、7、11个单位)来计算从原点到每个位置的最小步数。从0到1最少需要3次(0->7->4->1)(走法不唯一,比如0->11->4->1也只需要3次)N次询问,每次给出一个坐标arr[i],求从0点走到arr[i]需要的最少次数。对于100%的数据1≤N≤1e5,1≤arr[i]≤1e9。对于50%的数据1≤N≤1e5,1≤arr[i]≤5e5。从0到25最少需要3次(0->7->18->25)这段代码首先通过遍历输入数组。

2024-01-11 09:24:57 387

原创 牛客题霸:TH33 找出重复的数

我们可以将序列a看作一个链表,其中每个元素都是一个节点,每个节点都有一个指向下一个节点的指针。我们可以使用二分查找来查找链表中的中间节点,然后将链表分成两部分。如果中间节点的值等于其前一个节点的值,那么重复的数就在左半部分。否则,重复的数就在右半部分。这个解决方案的时间复杂度为O(nlogn),因为我们需要使用二分查找来查找链表中的中间节点。在包含 n+1 个数的序列 a 中找出重复的数。序列 a 中包含从 1 到 n 的整数,且只有一个数有重复值。要求时间复杂度为 O(n),额外空间复杂度为 O(1)。

2024-01-10 09:46:19 483

原创 牛客题霸:TH32 反复横跳

在这个问题中,我们可以将所有边按照权值从小到大排序,然后使用Kruskal算法来构建最小生成树。这个解决方案的时间复杂度为O(nlogn),因为我们需要对边进行排序,并使用Kruskal算法来构建最小生成树。第二个参数为大小为 n−1 的点对 (ui​,vi​) 的集合Edge ,其中 (ui​,vi​) 表示结点ui​ 与结点 vi​ 之间有一条边,1≤ui​,vi​≤n。第三个参数为大小为n−1 的整数集合f ,其中 fi​ 表示第 i 条边的长度,1≤fi​≤100,000。

2024-01-10 09:44:05 642

原创 牛客题霸:TH31 旋转跳跃

字典序定义:对于数字1、2、3......n的排列,不同排列的先后关系是从左到右逐个比较对应的数字的先后来决定的。按照这样的规定,5个数字的所有的排列中最前面的是12345,最后面的是 54321。第四个参数为 m 对(xi​,yi​), 1≤xi​,yi​≤n,xi​≠yi​。1. 交换 (3, 4), 交换后的序列为: 5, 2, 4, 3, 1。2. 交换 (2, 4), 交换后的序列为: 5, 3, 4, 2, 1。3. 交换 (1, 4), 交换后的序列为: 2, 3, 4, 5, 1。

2024-01-10 09:35:20 536

原创 牛客题霸:TH30 最多节点数

然后,我们从节点1开始,使用BFS遍历所有可能的路径,直到到达节点x。在遍历过程中,我们需要记录每个节点的最短距离。第三个参数为大小为 n−1 的点对 (ui​,vi​) 的集合,其中(ui​,vi​) 表示结点ui​ 与结点 vi​ 之间有一条边,1≤ui​,vi​≤n。这个解决方案的时间复杂度为O(n^2),因为我们需要遍历邻接矩阵。n个节点n-1条边的无向连通图,两个点a,b,a位于1,b位于x,两点移动速度相同,求a和b移动到同一节点所需的最多节点数。第一个参数为 n ,(1≤n≤100,000)

2024-01-10 09:32:14 361

原创 TH29 路径数目

第二个参数为大小为 n−1 的点对(ui​,vi​) 的集合,其中 (ui​,vi​) 表示结点 ui​ 与结点 vi​ 之间有一条边,1≤ui​,vi​≤n。样例中的四条路径分别为: (1 - 2 - 7), (1 - 2 - 5) , (1 - 6 - 3), (1 - 6 - 4)给出一颗以1为根的树,树上节点的值只为1或者0,在最多经过两个值为1的节点的情况下,有多少条到达叶节点的路径?第三个参数为大小为 n 的 0/10/1 序列 f ,fi​ 为i-1结点的值。一个整数,表示路径数。

2024-01-09 13:35:03 381

(自适应手机端)高端大气的科技类pbootcms网站模板 带三级栏目、下载和招聘功能

(自适应手机端)高端大气的科技类pbootcms网站模板 带三级栏目、下载和招聘功能

2024-01-15

(自适应手机端)网络建站公司pbootcms模板 IT互联网设计公司网站源码

(自适应手机端)网络建站公司pbootcms模板 IT互联网设计公司网站源码

2024-01-15

小剧场短剧影视小程序源码 全开源 带支付收益等模式 付费短剧小程序源码

小剧场短剧影视小程序源码 全开源 带支付收益等模式 付费短剧小程序源码 php+MySQL 源码仅供参考学习,请勿商用

2024-01-15

魔众EDM邮件营销系统

魔众EDM邮件营销系统 附带安装说明 源码仅供参考学习,请勿商用

2023-08-25

space数藏源码-数字藏品NFT数藏源码

space数藏源码-数字藏品NFT数藏源码 附带教程 代码仅供参考学习,请勿商用

2023-08-25

零点城市社交电商微信小程序源码 附教程

1、站点需要进行SSL证书的配置,因为微信小程序的请求地址必须是HTTPS开头的,需要申请SSL证书并配置到宝塔中,由于SSL证书类型较多,这里不作赘述,由安装者自行配置SSL证书。 至此,整个后台的配置完毕,在浏览器输入你的后台网址即可进入后台。

2023-08-25

杏雨梨云启动维护系统2022中秋版-V3

杏雨梨云启动维护系统2022中秋版_V3 附带使用说明文档

2023-08-25

花粥云商城花粥云商城花粥云商城

花粥云商城花粥云商城花粥云商城花粥云商城花粥云商城花粥云商城花粥云商城花粥云商城花粥云商城花粥云商城花粥云商城花粥云商城花粥云商城花粥云商城花粥云商城花粥云商城

2022-10-25

空空如也

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

TA关注的人

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