- 博客(13)
- 收藏
- 关注
原创 GPLT 团体程序设计天梯赛 2025 年
思路主要就是按值从大到小遍历每个点,被轰炸后该行和该列就没用了,继续寻找不在这些行和列中的最大值,直到达到 k 次。
2025-04-30 20:44:28
184
原创 2025牛客寒假算法基础集训营6 (i)
从第 i 回合开始攻击时,已经消耗了 i 个磨刀石,还剩 n - i 个磨刀石,可以继续以这个攻击力维持 n - i 个回合;之后攻击力每次 - 1 ,还可以攻击的回合数一定小于等于攻击力,根据等差数列求和公式可以得到剩余回合造成的伤害。遍历每一种情况,从第一回合开始攻击、从第二回合开始攻击······、从第 n 回合开始攻击,每次以相同的攻击力攻击,直到磨刀石消耗完,取其中最大值即可。
2025-02-12 10:18:20
277
原创 2025牛客寒假算法基础集训营5(C、E)
a0需要和a1交换位置 或者 b0需要和b1交换位置,当然必须存在可以交换的才可以,否则就需要将a0和b0加进集合中,等待下次交换;(这种方法挺暴力的,就是需要判断出所有情况,比赛期间少判断了几种,唉,还有我对位运算的题目挺反感的,不然就不会用这种方法了)暴力出奇迹,也是枚举所有情况,另外需要注意下面情况也是可以必胜的,不算下面的情况一共有(3+3+2)*6种。如果反置两次小于交换一次时,那么可以直接规定 y = 2 * x;最后还剩下 a0+a1 (=b0+b1) 个无法交换,只能通过反置达到要求。
2025-02-09 17:16:47
294
原创 2025牛客寒假算法基础集训营4(B、C、D)
再对每一种组合修改每一个 ‘0’ 或 ‘1’ ,统计 ‘01’ 和 ‘10’ 个数是否相等,这里可以使用dfs,每次遍历后回溯一下;” 替换时用到位运算,从000...00开始,每次加一,最后为111...11;首先需要遍历出每个 “?” 可以形成的组合数,很显然 m 个 “?
2025-02-07 09:24:25
173
原创 2025牛客寒假算法基础集训营3(C)
要解决这个问题,我们需要找到一种方法,使得在输入所有单词的过程中,按键次数最少。键盘操作包括输入字母和退格键。优化公共前缀:相邻单词的公共前缀不需要重复输入和删除,因此减去相邻单词最长公共前缀(LCP)的两倍。总按键次数初值:假设每个字符需要先输入后删除,总次数为所有单词长度之和的两倍。减去最长单词的退格次数:最后一个单词无需删除,因此减去最长单词的长度。排序单词:将单词按字典序排序,以便相邻单词有尽可能长的公共前缀。
2025-02-01 10:13:56
191
原创 2025牛客寒假算法基础集训营2(C、D、H、K)
对于每个连通块采取dfs,判断每个方块的上下左右是否为0,如果为0,则将该位置添加到集合中,可以防止位置重复,每个连通块判定结束后再更新最小值,还需将集合再次清空。注意点是此题输入形式为字符串。
2025-01-24 20:01:00
182
原创 2025牛客寒假算法基础集训营1(E、M)
将数组直接平方为两块,根据中位数定理(对一个数组中的元素进行加1或减1的操作,使得所有元素都变为同一个值,最小操作次数就是将所有元素变为中位数),只需要求出 两侧的数 分别变成 两侧的中位数 所需要的次数;每次还需要记录区间的个数,因为只可以对一个区间范围内进行操作,所以只有当更新的值都在同一个区间内时,才可以更新极差;但必须有两个不同的值,所以当两侧中位数都相等时,需要对左侧的数减1 或 对右侧的数加1 ,从而确保是双生数组。对每个输入的值记录索引,根据值的大小对索引进行排序,从最小值开始依次往上乘2;
2025-01-22 13:56:16
253
原创 将D盘空间重新分配给C盘
3.此时F盘就少了1GB,未分配空间多了1GB,然后就可以对需要添加容量的磁盘选择扩展卷,但这里C盘不让我选,看网上说因为未分配区必须和C盘相连,也就是要把其余盘删掉?3、调整后的容量是D盘的容量,分区前部的空间是想让D盘给C盘的容量,可以选择完成后重启,默认是关机。5、然后再点是,期间就让电脑自己操作即可,需要等待几分钟(我就不再操作了,因为已经成功了)1.对容量多的盘选择压缩卷,我选的F盘,此时1022GB。1、对C盘扩容就选择C盘,然后点击扩容分区。分盘后:(重新给C盘加了100G)
2025-01-14 10:12:25
2514
原创 2024牛客寒假算法基础集训营5(B、C、E、G、H、J、M)
对于删除方案,需要求出长度为i字符串的方案数(斐波那契数列),当满足条件后,需要将当前字符串可操作数*之前的方案,类似于排列组合问题。当n是奇数时,需要满足前一个数小于后一个数,同时要使前一个数达到小于后一个数的最大值。此问题可以转换为每插入一个0,0两侧的数都要-1,同时要满足两侧最小的那个数>=1.平均数 = 连续子数组的和 / (连续数组的个数+两侧0的个数)>=1。每次操作只能选择偶数个,当n是偶数时,假设操作无数次后,必然是递增的;解题思路:(感觉这题和之前的关鸡挺像的)
2024-02-22 14:38:48
852
1
原创 2024牛客寒假算法基础集训营4(D、E、G)
从前往后依次考虑,每输入一个数,求出总和sum,当sum%k=0时,显然可以分成一组;其次便是要记录余数,当有两个相同的余数出现时,这之间的数也可以。例如:1 1 2 三个数,k=3时,sum1%k=1,sum2%k=2,sum3%k=1,余数1出现两次,则中间的1和2满足。对于所有的数组求总和后再算出平均数,由于约数不可能大于这个平均数,因此约数就在平均数中产生。同时如果这个约数也是sum的约数,那么显然可以。将三角形的三个顶点作为关键点,然后判断底边。代码如下:(卡在没有判断1的情况)
2024-02-20 16:14:50
644
原创 2024牛客寒假算法基础集训营3(B、D、G、M)
而逻辑矛盾就是指当x和y的值相等时,cmp(x,y)=cmp(y,x)=1;另外当n=2时,如果第一组数据a,b按照一定顺序排列,并且第二组数据与第一组数据a,b相同,那么相应的顺序也要相同,否则也会产生逻辑错误。此题数组的顺序是一定的,当k=1时,只有相邻的两个元素可以交换。n=3时,qcjj可以取出一个数将其转换为n=2时的状态,这对zn来说必输;n=2时,无论是奇数还是偶数,qcjj必输;n=4时,同样可以转换到n=3时的转态······n=1时,必然是qcjj赢;解题思路:(博弈论)
2024-02-11 15:31:10
1360
1
原创 2024牛客寒假算法基础集训营2(F、K、I、J)
接下来再对前一半进行分析:首先要对顶点进行排序,1->2取值为20,1->3取值为200,2->3取值为200,总结得顶点1的次数为0,顶点2的次数为1,顶点3的次数为2,得到公式sum+=a[i]*(i-1)*2;对于总共有n个宝石,统计出不同的宝石有a个,从后往前取,则第一次取宝石可以取出a个不同的宝石,剩下不同的宝石有b个(b
2024-02-10 09:51:10
1053
1
原创 2024牛客寒假算法基础集训营1(B、C、E、L)
解题思路:运用假设,如果太阳无限高,相应的阴影面积就无限小,因此随着太阳的升高阴影面积逐渐减小,即太阳位于地面时阴影面积最大,是一个等腰梯形。由于此题数据范围很小,可以考虑使用dfs,对于每一场比赛分三种情况讨论,第一个人赢、第二个人赢和平局,最终会形成一个树状结构,取最后一次比赛后的最小值即可。解题思路:假设鸡要插第i个人的队,则前面每个人的时间不变,后面每个人办事的时间都需要再加上鸡办事所需要的时间,从而增加的总时间=(n-i)* tc。解题思路:(此题用贪心应该是做不起来的,亏我想了半天。
2024-02-08 15:13:52
562
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人