lhp_zml
lhp_zml
全部文章
分类
归档
标签
去牛客网
登录
/
注册
lhp_zml的博客
全部文章
(共10篇)
题解 | 小心火烛的歪
// 数学,组合,dfs 就好, 如果需要排列,也可以dfs,标记一下选过了什么,后面注意不选它就好了 #include<bits/stdc++.h> using namespace std; const int N=8; typedef pair<int,int> ...
2025-03-14
0
34
题解 | 喜欢切数组的红
// 前缀和,后缀和,前缀数和,前缀正数个数和,后缀正数个数和,unordered_map,记录<后缀和,下标> // 会卡总和不是 3 的倍数的优化 #include<bits/stdc++.h> using namespace std; typedef pair<i...
2025-03-11
0
51
题解 | 小红的二叉树
// 从深度为2开始,当前叶子节点为2个。每加一层,每个叶子节点会增加三条路径 #include<bits/stdc++.h> using namespace std; const int mod=1e9+7; int n; int main(){ cin>>n; ...
2025-03-10
0
42
题解 | 翻之
// 遍历每一列,每一列的字符组成一个字符串,相同的字符串可以在变换的情况下是的全为 1 // 不同的字符串不可能通过变换使得全为 1 ( 能发现这一点就好了 ) #include<bits/stdc++.h> using namespace std; const int N=3e3+...
2025-03-09
11
84
题解 | 隐匿社交网络
按位与操作,同时是 1 才会是 1,数据两两做与操作会超时。 所以可以先考虑吧每个数转为其二进制形式存储起来,一个数的二进制形式存一行,n个数,总共n行。时间复杂度为:nlogn 遍历每一列,把是 1 的每一行下标用并查集合并,因为它们做与操作结果会大于等于 1 并查集,p[N], si[N],p ...
2025-03-09
3
46
题解 | 小红的双生排列,数学,排列组合
#include<bits/stdc++.h> using namespace std; int n; const long long mod=1e9+7; int main(){ cin>>n; long long ou,ji,ans=1; if(n...
2025-03-09
0
41
华为机试,HJ127 小红的双生串
(改一下题目,双生串不限制只在中间位置分开,两边颜色各自统一,可以在任何位置分开)可以用前缀和,时间复杂度:O(26*n) ,空间复杂度:O(26*n) #include<bits/stdc++.h> using namespace std; const int N=2e5+6; int...
2025-03-09
0
84
题解 | 而后单调
// 若存在,则在原数组与排好序的数组中必存在一段是相同的,段长>=m, // 可以用map或者二分快速定位到排好序的数组中,与原数组起点相同的位置,然后走一下这一段相同的有多长。 // 注意判断是否存在相同的数(严格单调),注意递增、递减排序都要判断一遍,递减不要用lower_bound #...
2025-03-09
0
35
题解 | #跳跃游戏(二)#
// 掉转思维,从后往前走, (上一个,当前一个,下一个) // 从后往前遍历,若下一个能够得上当前这个则选取它。 // 因为从前往后走时,如果上一个能够的上下一个,则上一个一定能够得上当前一个,因为是非负整数,选了不会亏 #include<iostream> using namesp...
2024-10-24
0
93
题解 | #跳跃游戏(一)#
#include<iostream> #include<queue> using namespace std; const int N=2e5+6; int arr[N]; int n; bool vis[N]; // 下标是否被访问过 queue<int> q...
2024-10-22
1
60