98kaiii
98kaiii
全部文章
分类
归档
标签
去牛客网
登录
/
注册
98kaiii的博客
全部文章
(共5篇)
题解 | #愤怒的小鸟#
方法:单调栈思路:首先找到每个点前面不能到达该点的节点数量:从前向后遍历,记录一个num表示前面所有节点中不能到达当前节点的数目,并维护一个单调递减的栈S。对于第i个节点,如果栈不为空且栈顶元素小于h[i],则一直弹出栈顶元素,并每次把num++,因为这些元素都不能到达当前节点。然后加入当前节点到栈...
2023-03-09
0
271
题解 | #信号覆盖#
解题思路:二分+并查集时间复杂度:O(n^2 * log(x^2+y^2)) #include <bits/stdc++.h> using namespace std; const int MAXN = 2e3+100; int n,k; int fa[MAXN]; //并查集,记录...
2023-03-01
1
320
题解 | #涂颜料#(C++)
解题方法:差分数组。需要注意对未涂色的判断(0表示未涂色) #include <iostream> using namespace std; const int MAXN = 1e6+10; int n; int a[MAXN]; int main() { scanf("%d",...
2023-02-28
0
332
题解 | #棋盘#
方法:逆向思维+BFS/DFS逆向思维:从终点逆向出发。由于正向的a_next >=a_now+b_now,则逆向表示a_now>=a_next+b_next,所以从重点出发进行搜索,每次找到一个满足条件的点就需要更新答案。搜索(以BFS为例):经典bfs,queue #include ...
2023-02-28
0
270
题解 | #牛牛吃草#
简单dp,dp[i]表示当前在i位置的最大值。注意答案不是dp[n],因为最大的情况不一定可以走到n这个位置。时间复杂度n^2 #include <bits/stdc++.h> using namespace std; const int MAXN = 1e3+10; int n; in...
2023-02-28
0
297