- 博客(6)
- 收藏
- 关注
原创 AtCoder Beginner Contest 430
每次插入一个新数字我们需要修改前后相邻节点的最小距离,可以用set动态维护数组有序,用map记录每个点的最近距离。查找给出的图中有多少个相同的正方形,看到N<=10,我们可以直接使用set暴力遍历图形。利用双指针和二分,双指针来维护区间符合要求,二分查找这个区间有多少个数满足要求。
2025-11-18 15:59:41
216
原创 AtCoder Beginner Contest 431
*求最短路问题,我们可以想到运用dij或者bfs来做,最难处理的是中间的路线转变,我们可以枚举每一种格子的三种状态,当需要修改时记录代价为1,开一个三维vector,记录x,y,代价,每次都进行比较,当该点的代价变小时,进行替换,还有我们需要运用双端队列,将代价小的放在前边,这样就会一直按着优先策略跑,当第一次到达终点时,是代价最小的,因为我们一直将代价小的push到第一个,最后break输出答案*/
2025-11-11 19:03:48
171
原创 AtCoder Beginner Contest 428
读完题可知要求左括号和右括号数量相等或都没有的情况,可以想到赋值给左右括号为相反数,相加得0,当和为0时输出yes,但右括号不能在左括号前边,所以我们需要设置一个平衡点,如果右括号在左括号前边时,平衡点将不再移动,而平衡点不移动,但是括号长度在变长,直到削减括号数量到平衡点,即右括号不在左括号前边的时候,长度等于平衡点,所以输出得判定条件为长度等于平衡点并且和为0;统计字符串中出现最频繁的固定长度的子串,很典型的板子题。
2025-10-20 12:45:19
214
原创 C. Triple Removal
因为数值只可能是0或1,所以最差的去数方式为第一组为2,其他剩余的贡献为1,所以我们需要记录在查询区间中连续对的个数,只要存在一组连续对,那么当前组的贡献就为区间数除以3,不存在的话再+1。3.l[i]与r[i]为当前位置包含当前位置之前有多少个相连的同一数值。可以学习到怎样记录一个区间怎样存储一段连续相同区间的左右坐标并且使用。2.l[i]与r[i]中的i为两个相同相连的数值的左右下标。1.brr为前缀和记录当前位置及之前有几个1。
2025-10-16 22:22:20
224
原创 2025 ICPC 网络赛第二场题解
首先我们根据题意可以知道是将每个子区间的一个规则最大值,对于这个规则最大值我们可以选用用字母代替数字的方式求得规律,我们用长度为6的数组可以得出求规则最大值的规律,如果挨个求子区间的话,肯定超时,我们需要一个总体O(n)的时间复杂度,我们想到可以从1-i依次求每个数所做的最大贡献值。因为最后的公式中有一个乘二分之一,也就是除以2,而取模运算的除法可能会出错,所以我们需要求2的逆元来乘2的逆元,对于代码中最后一个公式,因为涉及到取模,所以我们尽量分布来写,避免爆。
2025-09-18 13:30:15
1337
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅