pandaC222
pandaC222
全部文章
分类
归档
标签
去牛客网
登录
/
注册
pandaC222的博客
全部文章
(共21篇)
题解 | 食物链计数
#include<bits/stdc++.h> using namespace std; #define int long long #define ld long double #define debug(x) cerr << #x << ": &qu...
2026-03-12
2
15
题解 | Tokitsukaze and Colorful Chessboard
注意到,本题用二分解决: #include<bits/stdc++.h> using namespace std; #define int long long #define ld long double #define debug(x) cerr << #x <<...
2026-03-11
4
14
题解 | Rinne Loves Edges
最开始读题,很容易想到用dfs,但是又得保证全局最优解,这时候只用dfs就不行了,需要用dfs加dp,所以这是一道树形dp我们只需要推出状态转移方程除了s以外度为1的点,不难想到就是叶节点,我们遍历到叶节点时将叶节点的dp值初始化为INF,因为我们最开始肯定想把连着叶节点的那条边删去,后面再做优化,...
2026-03-07
3
29
题解 | 不点两面(hard version)
我们模拟过程,注意边界即可代码如下: #include<bits/stdc++.h> using namespace std; #define int long long #define debug(x) cerr << #x << ": " ...
2026-03-06
1
19
题解 | 多米诺骨牌
注意到,骨牌倒塌是连锁的,(我们要先将x从小到大排序)就是说,如果当前骨牌把下一个骨牌推倒,如果当前骨牌的高度不足以推倒下下一个骨牌,但是已经被推倒的下一个骨牌的高度可以推倒下下一个骨牌,那下下一个骨牌就是可以推倒的。那么我们只需要维护当前推倒骨牌中的最大高度(cur),如果能推倒当前连锁数(cnt...
2026-03-04
4
38
题解 | 子段和
试着想一下不难发现只有两种情况会NO,一种是本身就含有0,另一种是这个序列全是某个数和其相反数,紧接着我们写出代码 #include <iostream> #include<bits/stdc++.h> #include <vector> using namesp...
2026-03-03
1
18
题解 | 恶魔果实
每个数的情况是独立的,我们只需要算出每个数能变换成多少种数字即可,这点用bfs实现,我们只需要搜索0-9的数即可代码如下 #include<bits/stdc++.h> using namespace std; #define int long long #define debug(x)...
2026-03-02
1
22
题解 | 世界树上找米库
根据题意,我们需要找到与相距最近的 Sekai 点距离最大的点且不是Sekai点的点容易得出,我们要求出每个点距离Sekai点的最短距离,有点像最短路问题,我们将所有Sekai点当作源点进行bfs创建一个dist数组初始化为INF,如果一个点的出度为1,那这个点就是Sekai点,我们就将这个点放入队...
2026-02-24
2
43
题解 | 种树
我们主要考虑什么时候用大剪刀,可以使用大剪刀的次数为(m+1)/2,为了使根的值最大,我们一定要在1处使用大剪刀,为了使一的两个左右节点大,我们也要选择使用大剪刀,由此可推出我们要在靠近1的分叉去使用大剪刀,这里设1的深度为1,举个例子,我们能使用大剪刀的次数为2,那我们要在深度小于2的时候使用大剪...
2026-02-20
1
39
题解 | 幂次进近
本题数比较大,所以可以用py解决,但是py也需要特判三个点,不然会超时k=1时直接输出nk>60直接输出1,因为 (2**61 > 1e18),大于 60 的 k,整数根可能只有 1 n=1直接输出1代码如下: def fastpow(a,b): ans=1 while ...
2026-02-04
1
74
首页
上一页
1
2
3
下一页
末页