Turgen
Turgen
全部文章
分类
题解(12)
归档
标签
去牛客网
登录
/
注册
Turgen的博客
全部文章
(共28篇)
题解 | #倍数#
可以被5整除的充分必要条件是个位是0或5 由于排列可以随便排,所以只需要数字中有0或者有5就可以了 void solve(){ cin>>n; string s=to_string(n); if(s.find('5')!=-1 || s.find('0')!=-1...
2026-02-28
0
22
题解 | 一种不需要双指针的O(n+m)的简单做法,一样快速
代码: int L[10001], R[10001]; class Solution { public: int ans = 0, minh = 1e9, maxh = -1; int maxArea(vector<int>& height) { ...
2026-02-27
1
29
题解 | #小红统计区间(hard)只离散化S[i]
这题大部分题解都是 和 放进去,其实只离散化 也是可以的. 每次查询目标值在离散化数组的排名,然后查询排名数量即可。 这样做的时间复杂度是 ,常数应该是上面写法的2倍左右,不过实测速度挺快名列前茅 代码如下: #include <iostream> #include <algori...
树状数组
离散化
2026-02-24
0
26
题解 | 01序列
容易发现只有左右两边都是0的时候才能修改为1,否则必定和左右两边任意一个1相邻,然后贪心地修改为1,只需要判断可以被执行的位置数量超过m没有即可 #include <bits/stdc++.h> #define rep(i,a,b) for(int i=a;i<=b;i++) us...
2026-02-21
0
25
题解 | qcjj寄快递
N个点,如果直接走,就是dist(a,b)*2秒,或者缩放后走,走的消耗会变低,但缩放后要放大到最大,这2个操作也有自己的耗时,求所有点的最短耗时总和。容易发现每次都是从最大缩放计算,所以每个点都是独立的。可以列得耗时函数,其中k是用在缩放屏幕的时间,e是不缩放时候的走路时间(对于单个点来说是个常数...
2026-02-19
5
41
题解 | 小d和超级泡泡堂
由于炸弹可以直接把在同一个连通块杂草全清除,那么剩余不能被清除的就是不在同一个连通块的杂草,也就是被石头或边界包围着的杂草,也就是求我们所在连通块,尽可能去扩展,得到的杂草数量。在实现上可以用BFS,然后由于每个点至多入队一次,至多出队一次,可以手写队列缩小一下常数。 #include <io...
2026-02-18
0
23
题解 | 中位数之和
思考点1:求中位数需要选取子序列后排序思考点2:子序列可以是非连续的序列思考点3:既然如此,我们只需要考虑将原数组排序,因为无论怎么选,最终排序后的结果与原序列一致。思考点4:那说明我们只需要关心0和1的个数现在问题变成,长度为n,且有a个1,n-a个0的数组,计算长度为k的子序列中位数之和。假设前...
2026-02-13
1
44
题解 | 坐标计数
观察样例发现就是矩阵面积,打个表,发现1e5以内的坐标都可以通过简单的几次变化到,猜结论就是矩阵面积,于是直接输出。注意输出要用LL就是 #include <bits/stdc++.h> using namespace std; typedef long long ll; void s...
2026-02-12
0
34
题解 | #小红的二叉树#
考虑,直接输出 考虑,直接输出 考虑,为了不重复计数,新增的路径数只可能是第三层多出来那些叶子结点 他们既可以向上两层(有多少个叶子结点,就有多少个这样的方案数,对应图中红色的路径) 又可以向上一层向下一层(显然有几个上一层有几个,就有多少个方案数,因为兄弟之间才能做一次这样的路径,对应图中蓝色路径...
2026-02-10
0
54
题解 | #爱丽丝的人偶圆舞曲#
一道不算难,但写起来有点难的dp。 记 为前 项中,最后一位一定为 的最小开销 显然 ,即第一个字符一定为第一个字符是不需要修改的。 而,即第一个字符如果要修改为别的字符,就是花费1个代价。 考虑如何转移,如果要考虑第 项改为,那前一项可以是 ,其中 是 符合和谐条件的两个字母,二者取一个最小值,然...
动态规划
2026-02-09
2
55
首页
上一页
1
2
3
下一页
末页