自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2024年3月17日 牛客周赛round37补题

思路:bfs+分层图;分层图是指按移动方向分成四个图,一个是向前走,一个是向左走,一个是向右走,一个是向后走。如:当遇到蘑菇后,小红向右走(保证不掉头),则小红可以从当前方向的图,以当前图的所在位置为起点,跳到只向右走的图中继续走(bfs)。思路:对小红来说,她一定会把现存串中最大的元素放到最前面;对于小紫来说,她一定会把现存串中最小的元素放到最前面。而在删除时,小红一定会尽可能把小的删去,小紫则相反。注意:如果1e18再往后加数字会爆LL,解决办法:1.使用__int128:范围是10^36;

2024-03-19 20:38:34 216 1

原创 2024年3月10日牛客周赛补题

思路:第一位不用管,遇到大写就删然后多跳一位。异或和: 是位运算并不是数学的异或。

2024-03-11 23:00:24 178 1

原创 2024年牛客周赛round35 补题

第二种情况:距离相等的点中,某个点后有一个点,该点也可以连其他与某个点相同距离的点(abs(dis[i]-dis[j])==1)第一种情况:加边可以在距离点1相同距离的点之间加(dis[i]==dis[j])思路:注意看清排列的定义。找出现次数大于一的, 把它转为没出现过的。树:n个点有n-1条边;但现在要m条边,所以要加边。思路:可以先根据最短路构造树,再慢慢改为图。特判:每一个点距离点1的距离大小应该是连续的。

2024-03-04 22:44:07 349 1

原创 2024年2月25日 牛客周赛round34补题

思路:需要考虑全情况,对于陡峭值为1的数组只有两种情况,第一种:前面小后面大,如“1111222”;第二种前面大后面小,如“2221111”。这两种情况都只有最大值与最小值相差一才能成立。剩下的情况输出-1就好了。思路:从前往后判断每个位置是不是偶数,若是,就将其分割输出;不是,将其与下一位相加继续判断。注意:排序不能直接用sort,但直接sort是按字典序排序,对于"12","4",是无法比大小;思路:二分图(原因是两种字符)。

2024-02-26 22:20:29 675 1

原创 2024年2月19日 牛客周赛round33 补题

思路:贪心、后缀和。可以把最终答案分为两部分,根据题目可以发现最终答案第一位始终为1,所以答案可以分为第一位和后面部分,只需要取后缀的最大值再加1就是答案。思路:可以先排序,从最小的开始删除,只要存在x+1就继续往后删。注意:这里需要使用map之类的容器计算出现次数。思路:Dijkstra算法。

2024-02-19 18:19:31 234 1

原创 牛客周赛 Round 32 补题

思路:有个性质,如果某个区间是好数或者回文数,若长度为偶数,每个数的出现次数为偶数,若长度为奇数,则只有中间的数出现次数为奇数。即:统计区间每个字符出现的次数,最多有一种字符出现次数为奇数则该区间符合条件,能够造出回文数。思路:一种是使用dfs,另一种思路,根据题意如果要求得最小值,那么只有横向纵向各一个dfs,且这个dfs是相互组成的,那么只有三种情况,直接分情况判断,三种情况特殊行和列的元素是否对最后取最小值就可以了。思路:先读入,再排序,最后根据所在位置与本身差值统计操作次数。

2024-02-13 21:42:54 273 1

原创 2024年2月5日 牛客周赛round31补题

思路:模拟双链表,根据讲解可以使用map存储元素i的左右点,思路就根据双链表的操作思路进行。类似题目:定义一个字符串权值是包含“kou”字串的数量,求一个字符串所有连续子串的权值和。题目可以转变为将x分为n个正整数,正整数和为x,有多少种情况。思路:归纳批量求贡献。枚举该字符在多少个字串出现过,同时有个规律见下图。这个是想套模板用数组做,但是没有成功,放在这里有时间回来完善。组合数公式:C(n,m)=n!不知道为什么可以过,使用样例的时候显示内存超限。思路:01背包 +dp(典型)

2024-02-05 17:44:41 405 1

原创 2024年1月29日牛客周赛round 30

然后基于某种映射函数f ,将待排序列的关键字 k 映射到第i个桶中 (即桶数组B 的下标i) ,那么该关键字k 就作为 B[i]中的元素 (每个桶B[i]都是一组大小为N/M 的序列 )。右侧在对应位置也进行交换,最后也是回文串。接着将各个桶中的数据有序的合并起来 : 对每个桶B[i] 中的所有元素进行比较排序 (可以使用快排)。思路: 基本思路:首先利用除法将x,y除到最小,然后再进行乘法,将x,y增大至[l,r]的区间里去。2与n-3相对······,他们的和始终为i-1,则i与n-1-i相对。

2024-01-29 18:18:36 388

原创 2024年1月21日牛客周赛round 29

不难发现,当删除数组元素位置小于原来数组中位数时,中位数为原数组中位数;当删除大于等于原数组中位数的位置元素时,中位数为原数组中位数位置-1的元素。在排序时,由题意,可以在两个相同的数间插入一个不相同的。思路:考虑使用string相关的函数,erase(x,y)是指删除第x字符后面的y个字符,不要记错。找到出现次数最大值和次大值,只要最大值和次大值不等,用一个最大值,再用一个其他的,直到最大与次大相等,直接输出。输出时注意f(i)中,i所代表的元素是指排序前数组的元素,需要另开一个数组存储原数组。

2024-01-22 15:38:01 824

原创 2024年1月14日牛客周赛round28补题

赛后想了一下可以通过swap函数进行交换,注意在炸砖块时不能仅仅把炸的区域变为空,应该是先调整位置,防止砖块重复被炸。思路:比赛中我的思路是通过substr函数提取长度为2的字符串字串,再通过比较ASCLL码进行交换,但是这样写导致了运行超时。思路: 双指针模型,固定左端点,右端点向右,一直到和不小于k,右端点加右侧剩下的点的和就是左端点满足区间的个数,随后移动左端点重复。根据讲解,在提取字串时还可以使用另一种方式,通过将前一个字符和当前字符拼接到一起就组成了长为2的串。

2024-01-15 19:32:17 722

空空如也

空空如也

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

TA关注的人

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