憨憨的竹林
憨憨的竹林
全部文章
分类
题解(23)
归档
标签
去牛客网
登录
/
注册
憨憨的竹林的博客
全部文章
(共42篇)
题解 | #小苯的xor图#(C++)
由于异或运算按位独立,我们可以用一个经典的trick:拆位 计算该位上的贡献,再把每一位的贡献加起来,得到答案。 对于第 i 位(i = 0 ~ 30),我们只关心每个顶点的这一位是 0 还是 1。 用 a[j] = (v[j] >> i) & 1 取出顶点 j 的第 i 位...
C++
数学
计数
枚举
拆位
2026-05-08
0
15
题解 | #操作数组#(C++)
很简单的题目呀 首先我们要保证两个数组的元素之和是相等的,否则移来移去也只是在做无用功。 确保这个前提之后,我们每次操作都同时选中一个 与一个 去进行操作即可,所以最后操作数量实际上就是 了 代码如下: #include <bits/stdc++.h> using namespac...
2026-05-04
4
16
题解 | #前缀平方和序列#(C++)
好久没写题解了,这题简单就随手水一下好了 当 固定的时候,其实 就也固定了,所以考虑有多少种前缀平方序列 ,其实就是在考虑有多少种序列 ,而序列 长度为 ,而由于 ,所以满足条件的可选 最多有 个,所以此时就有了 种挑选数字的方案,而又由于题目要求 都是正整数,且有 ,所以序...
2026-05-03
10
25
题解 | #小苯的排列构造#(C++)
这是一道通过贪心进行构造的题目来着,写完以后呃呃呃其实我不是很会分析这题的复杂度来着,所以准备贴一下朋友让 gemini 帮忙分析的复杂度 先看思路吧: 用一个数组 来存储一个数在不超过 的情况下,最多有几个数是它的整倍数 用一个数组 来存储一个 内的数是否已经在构造中被使用 随后我们来检查...
贪心
2026-04-26
4
71
题解 | #小红的部分不同字符串#(C++)
这题感觉主要难点有两个,一个是用拓扑排序去把环剥离出来(应该也能用 dfs 去跑一下,如果一个点你第二次遇见,说明成环了),一个是环的染色数量统计,看了眼其他题解里没有环染色数量公式的推导来着,蒟蒻的我就发个完整证明好了: 考虑环染色本身是不大可做的,所以我们考虑从链去推。 假设有一条 个结点的链...
C++
数学
设计
拓扑排序
并查集
图
2026-04-13
6
51
题解 | #绿豆蛙的归宿#(C++)
其实这题跑个dfs就好了,蒟蒻的我看大佬们好多都是期望dp什么的,感觉自己还不会来着 先要明白一个事情,假设你在第一个点的出边数是 k1 ,继续往下走,走到第 2 个点,它的出边数是 k2 ,就这样一直往下走,那么一直走到第 n 个点,那么从第一个点到第 n 个点的概率,就是 1 / (k1 *...
2026-04-09
8
60
题解 | #抽卡#(C++)
这题其实挺简单的来着,前提是你掌握了前置知识 至少抽到一张自己想要的卡,等于1-每个卡池都抽不到自己想要的卡的概率 所以最后的答案就是[累乘a[i] - 累乘(a[i] - b[i])] / 累乘a[i],然后除法部分用费马小定理求个逆元就好了(正好模数是质数) #include <bits/...
2026-04-08
7
55
题解 | #小苯的对称序列#(C++)
在题解里我会放两版代码,可以看一下我最后卡常卡过去做出的一些优化 先讲题目本身好了 两数之和 s 最小是2(2个1),最大是2000(2个1000),数不是特别大,我们可以枚举它 我们枚举每一个可能的 s,分别求出在 固定和等于 s 的条件下,能够选出的最长对称子序列的长度,最后取所有 s 中的最大...
C++
动态规划
2026-04-06
3
103
题解 | #小苯的麦克斯#(C++)
感觉有点诈骗的意味 假如区间是可以只取一个数的,那么显然最后求得ans = max - 0,不论max值是否为0 但题目要求我们的区间至少得取2个数,所以我们可以从上面这个思路进行一下延伸 可以证明按如下情况分类: 1.当max值两侧没有0的时候(如max在边缘则是一侧),ans = max 2.当...
2026-04-06
8
98
题解 | #Kevin喜欢零(简单版本)#(C++)
其实是每日一题看到复杂版本的题解已经写了一大堆了,简单版本这里没人写题解所以来抢占先机写个题解,其实做法跟困难版本的一模一样,代码交上去也能过困难版本的 一个数的末尾有k个0实际上就代表了它的因子里起码是有k个2以及k个5的,不难想到处理x的末尾有多少个0可以使用两个前缀和数组,分别累加到a[i]为...
数学
二分查找
计数
前缀和
2026-04-06
2
54
首页
上一页
1
2
3
4
5
下一页
末页