Lambda_L
Lambda_L
全部文章
分类
归档
标签
去牛客网
登录
/
注册
Lambda_L的博客
全部文章
(共25篇)
题解 | 小苯的序列合并
最终答案一定是某个前缀异或和与对应后缀异或和的按位与。预处理前缀异或数组后,枚举所有分割点,计算 pre[i] & (pre[n]^pre[i]),再与整个数组异或和取最大值,即为答案。时间复杂度 O(n)。代码自己写
2026-02-11
5
24
题解 | 【模板】二维差分
#include <bits/stdc++.h> using namespace std; #define endl '\n' using ll = long long; #define int long long #define db double #define itn int #d...
2026-01-25
2
39
题解 | 好好好数组
分情况讨论基于约束推导合法数组数量:情况 1:m=1要求数组中至少有 1 个不同数字(即所有合法的 “好数组” 都满足)。由于 a_1=0,a_2 可以取 0,1,...,n(共 n+1 个值);对 i≥2,a_{i+1} 由 a_i 唯一确定(满足 a_i = a_{i+1} mod i);因此合...
2026-01-25
4
52
题解 | 合并石头
思路搜索存值,然后去除重复的输出异或值个数即可详细思路看代码注释代码 vi ans;//异或值 vi a;//石头数量 int te[12];//独立的袋子 int cnt = 0;//计算独立袋子数量 void dfs(int u, int cur)//u是处理第u个袋子,cur是当前的异或值 {...
2026-01-09
2
37
题解 | 上司的舞会
就是求所有树最高的那棵树的高度 vi adj[M]; vi ind; vi rt; vi h; int ans = 0; void dfs(int u) { for (int v : adj[u]) { h[v] = h[u] + 1; dfs(v);...
2026-01-09
1
36
题解 | 明日DISCO
思路因为边界永远是 0,而且不能改,所以最终所有数相等的话,只可能等于 0。所以问题转化为:能不能把所有 数变成 0。如果当前是负数,且四个邻居都 >= 0,它可以一直增加到 0如果当前为正数,同理;最后检查是否全为0就行了代码 #include<bits/stdc++.h> us...
2026-01-07
11
44
题解 | 明日DISCO
思路 因为最外围已经全为0且不可以更改,所以想要满足条件只能是所有数全为0; 遍历矩阵,如果一个数能通过操作变为0,那么这个点就满足条件; 如果一个数想变为0,有两种方法,本来就是0,周围四个数和该点异号或为0; 最后只需要判断所有点是否全为0即可; 临时用别人电脑写的...
2026-01-07
1
39
题解 | 构造数列
#include <bits/stdc++.h> using namespace std; #define endl '\n' using ll = long long; #define int long long #define db double #define all(a) a.b...
2026-01-04
1
44
题解 | 小红的圆移动
思路首先需要明确几个关键概念:圆包含原点的判定:若圆心 (x,y) 到原点的距离 d = √(x²+y²) 小于半径 r,则该圆包含原点;否则不包含。移动代价计算:代价 = 圆面积 × 移动距离。圆面积为 πr²,移动距离是让圆不再包含原点所需的最小距离。最小代价策略:对于原本包含原点的圆,若需要让...
2025-12-26
2
46
题解 | 秘藏
动态规划定义 dp[i][0] 和 dp[i][1] 两个状态:dp[i][0]:Askalana 到达表世界第 i 号点时,能拥有的最大金币数。dp[i][1]:Askalana 到达里世界第 i 号点时,能拥有的最大金币数。初始化只有初始状态可达:dp[1][0] = a[1](初始在表世界 1...
2025-12-24
1
43
首页
上一页
1
2
3
下一页
末页