憨憨的竹林
憨憨的竹林
全部文章
分类
题解(3)
归档
标签
去牛客网
登录
/
注册
憨憨的竹林的博客
全部文章
(共11篇)
题解 | 不点两面(hard version)(C++)
纯正的模拟题,但是蒟蒻主包写的时候因为一些小bug调了好久,半夜有点红温本题的核心是用map去存储对方牌河中牌的数量,以及分op=1和op=2两种情况分别进行分析另外我们要开一个数组去记录每张牌是否是安全牌状态当op=1时,因为增加了一张数值为num的牌(mp[n]++),所以数值为n-3和n+3的...
2026-03-06
2
16
题解 | 子段和(C++)
什么时候会输出NO?其实观察题目样例我们能很轻松得到答案来着如果序列内有0,那么一定有长度为1的子段和(即元素它自己)是0,直接ban掉另外一种情况,如果序列里只有一个数和他的相反数,那么无论如何排列,都始终无法排序成功使得没有长度2的子段和为0证明的话可以这样想:假设序列里面有m个a和n个-a,那...
2026-03-03
9
32
题解 | #斐波那契数列#(C++)
要想明白这题首先要学习矩阵快速幂嗷,先学一下矩阵快速幂再来看这篇题解 没学过的可以看这里https://ac.nowcoder.com/acm/problem/226821 乍一看我们这题不是乘法递推吗,好像没有有关加法的线性递推式子,这还怎么用矩阵快速幂加速计算 没办法,那我们写几项看看找找规律 ...
C++
矩阵快速幂
快速幂
数学
矩阵
2026-02-27
3
38
题解 | 世界树上找米库(C++)
这是一道多源最短路bfs问题来着,首先先用邻接表进行常规的建图,然后开一个dis数组用于记录每个点离Sekai点的距离(同时充当了类似vis数组判别一个点是否被遍历过的作用)。由于题目里需要找到只有一条边的点(Sekai点),所以再开一个deg数组统计每个点的度数,遍历一遍,把deg[i] = 1的...
2026-02-24
4
35
题解 | 小红统计区间(easy)
基于题目中提到的ai均为正整数,不难发现一件事,如果一个区间[l,r](1 <= l <= r <= n)满足题目中要求,那么[l,r+1]……[l,n]都是满足题目条件的,那么现在的问题就是对于i(从1到n),如何确定右端点r,使得[i,r]区间内的元素和大于等于k。想到可以拿前...
2026-02-23
1
27
题解 | 01序列
void Aiden() { ll n; cin >> n; cnt = 1; for (ll i = 1; i <= n;i++) { cin >> x; if (x) { ...
2026-02-21
0
28
题解 | #栈#(C++)
因为如题目所说我们要频繁进行入栈以及删除栈内部元素的操作,所以这边我们用一个链表来模拟栈,这样操作起来会更加方便,同时我们用一个哈希表来记录每个值对应的指针 每次插入元素前,先执行去重逻辑,如果之前栈中出现过,那么依次判断该元素和前后元素之和是否为奇数,如果是的话分别使答案-1(注意考虑边界),然后...
C++
哈希表
栈
模拟
2026-01-20
1
53
题解 | 有趣的区间(C++)
这道题看似跟按位或有关系,实际上并没有hhh,小误导依据题目定义,一个奇数与一个奇数或者偶数“|”运算后都会得到奇数,只有两个偶数“|”运算后会得到偶数;而按位或运算遵从交换律,那么我们翻译一下题目,也就是说,只要一个区间内有奇数,那么这个区间就满足题目条件我们在输入完数据以后可以分开进行思考,从头...
2026-01-17
1
34
题解 | 小红的平滑值插值(C++)
我们首先在输入的时候用绝对值差分数组预处理一下两相邻数字之间绝对值之差,然后用max_element就能获取到题目中所说的f(a)显然有以下三种情况:1.f(a)= k,那么一次处理都不需要,输出02.f(a)< k,那么在数组中任意挑选2个相邻的数,让其中较小的那个加上k,f(a)自然就会变...
2026-01-10
1
54
题解 | 牛牛喜欢字符串(python解法)
这是一道经典的贪心题首先先用列表去存储按长度分割的每一个子串随后进行k次遍历,每次遍历各个子串的0,1……k - 1索引对应的字符,用字典进行出现次数的累加。因为要修改的总次数最小,依据贪心我们让每次遍历时修改的次数都最小,所以我们找到一次遍历中出现最多的那个字符让它保持不动,修改其余字符,每一次答...
2026-01-09
1
52
首页
上一页
1
2
下一页
末页