- 博客(10)
- 收藏
- 关注
原创 2025牛客寒假训练营第二场个人补题(D,K)
思路:bfs遍历,定好四个方向,判断边界再计数就好,计数要去重,真的是脑子不好,当时一直在用标记数组去重,一直超时,结束后用set就过了,真是服了自己了。字符子串分割成1+(n-1)这样子,找到第一个可以复用的字母位置,然后计算最大扩展长度,只要把每个字母判断一遍就好。K - 可以分开吗?
2025-01-29 00:00:16
248
1
原创 2025牛客寒假训练营第一场个人补题(E,J,M,)
思路:首先我们只能进行*2的操作,所以只能将数增大,题目为了使极差变小,所以我们只能将最小值变大,但最小值*2会有三种情况:(1)还是最小值;(3)最大值不变,曾经的第二小的值变成最小值。再去寻找未乘2的区间的最小值,将乘2区间到区间外最小值之间的所有值并入乘2的区间,新产生的乘2的区间可能会产生新的最大值,所以要对最大值进行更新,再每次都更新极值,直到将数组全纳入乘2的区间。思路:先排序,分前后两段,分别找出中位数,然后计算出操作数,如果前后中位数相同,就找前段中位数-1或者后段+1,取其优。
2025-01-25 23:37:49
366
原创 cf #956(B、C、D)
题目大意就是你可以在a这个矩阵里任意选择边大于等于两个格子的矩形,自行选择将两个对角线所在的顶点其中一条对角线顶点+2,另一条+3。这意味着什么呢,意味着不论操作多少次,操作总会使被操作的矩形两行两列都+3,所以(每行每列的总值%3)不会改变,所以我们比较a和b矩阵的(每一行、每一列总值%3)是否发生变化即可。
2024-07-09 08:55:53
406
原创 Atcoder 361个人补题(D,E,F)
剩余情况通过BFS找出来,队列里存储二元组{当前字符串,操作次数},使用unordered——map标记字符串是否已经加入队列,暴力找出所有情况即可。1.只有一块砖或者两块砖,这种情况下题目操作并不能改变什么,比较s与t即可;首先将能直接判断的情况单独处理,然后使用BFS处理剩下的情况。2.如果s与t的同色砖数量不同,那么肯定不可能将s操作成t;3.s==t,答案为0;
2024-07-07 15:14:45
385
1
原创 2024牛客寒假训练营第六场个人补题
假设子矩阵从r1~r10,c1~c10,那么这个区间的和为(r1+……+r10)*(c1+……又因为存在负数,所以可能负负得正,所有要分别求出行和列最大和最小的连续子区间和。再将四个数两两相乘取最大值。
2024-02-29 20:36:18
387
原创 2024牛客寒假训练营第五场个人补题
而n为奇数时,n==1为特例,本身就是非降序,其他n为奇数的情况,每次计算n为奇数和n-1之间的差值,就可以计算出,取值k==n-1的次数,计算出n-1与n-2的值,比较两个值是否满足非降序若不是输出NO结束,是则继续往下递推。按题意如果n为偶数,那么一直加下去,k取n无数次,越靠后的数加的越多,迟早成为非降序;E - soyorin的数组操作(easy)
2024-02-28 23:43:42
324
原创 2024牛客寒假训练营第四场个人补题
思路:通过依次增加高来判断,首先判断三角形是否超出矩形范围,再判断三角形的腰是否存在,不存在跳出,存在判断三角形底边是否存在。在每一行将*编号,通过减法计算*的数量是否封住三角形的底边,即*的数量是否符合,符合计数+1.这个方法遍历每一个*计算总数。从左往右依次遍历,计算前缀和,提前标记余数0,与k求余,标记每次的余数,若遇到已标记的余数,则计数+1,并清空前缀和以及标记过的余数 ,再标记0。G - 数三角形(easy)
2024-02-26 19:58:16
334
1
原创 2024牛客寒假训练营第二场个人补题
思路:这题给的数据范围很小,所以可以暴力枚举,a,b,c,d,_的值逐一枚举,再判断有其中之一,再将其值与原字符串值进行替换,将最后得到的值先进性有无先导0的判断,再将其化为整数,因为暴力枚举替换字母存在重复的可能,将最后得到的整数先存入集合中,最后再输出set.size()即可。
2024-02-12 16:30:43
884
1
原创 2024牛客寒假训练营第一场个人补题
不难看出答案范围是0,1,2,3之间,最坏的情况就是(2,0)、(1,-1)、(1,1)将这三点堵住,这种情况也是唯一需要特殊考虑的。正常情况则是判断鸡的两侧是否有着火点,以及进一步的是否存在上下两行的列数差从-1~1的着火点。别被题目名字误导,其实数据并不多,直接dfs就可以做出来。E- 本题又主要考察了贪心。
2024-02-04 22:25:55
845
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅