为芙宁娜献出心脏
为芙宁娜献出心脏
全部文章
分类
未归档(15)
归档
标签
去牛客网
登录
/
注册
为芙宁娜献出心脏的博客
全部文章
(共28篇)
题解 | #中位数之和#
很容易想到的一道组合数题目,因为他只有1和0,然后我们要计算中位数的总和,很明显我们只需要计算中位数是1的情况有多少种就好了 因为k又限定了是奇数,所以我们最少要有k/2 + 1个1在子序列中,那么我们只需要从k / 2 + 1遍历到k作为我们选择了多少个1,计算选择i个1和k - i个0的组合个数...
2026-02-13
0
21
题解 | #坐标计数#
这道题最开始我并没有什么思路,但是看了一下样例发现每个样例的结果就是矩阵里面点的个数,所以本着guess的想法试了一下,然后就过了 现在回来想办法证明一下。首先通过模拟我们可以发现,点的坐标整体走向是变小的。既然如此,如果要有无限次变换那么就只能是每次变换都是它本身或者是x,y坐标交换 首先每次变换...
2026-02-12
0
22
题解 | #小苯的序列合并#
这道题我们需要用分段的思路来进行思考 我们是不是会首先进行异或,然后再进行和运算,并且异或运算是相邻进行的,所以我们可以看作是有若干个异或段的结果进行和运算 对于最大的结果ans来讲,如果要让和运算得到这个ans,那么ans里面是1的位置这些段都会有1 所以如果我有奇数个段的话,那么就相当于一段,因...
2026-02-11
2
25
题解 | #小红的二叉树#
// BggBB wZPXsv:. UBgQGv // BgEQQ ,:sJ. .,. ::, rBORZJ // .BgggB ....
2026-02-10
0
18
题解 | #小红的数组清空#
就是纯模拟。因为我要清空所有的数组,并且根据题目条件可知,我们肯定要从最小的数字开始删除。 代码如下: #include<iostream> using namespace std; #include<map> #include<set> int main() {...
2026-02-09
0
19
题解 | #文#
就是很普通的模拟,直接暴力STL就好了 详细代码如下 // BggBB wZPXsv:. UBgQGv // BgEQQ ,:sJ. .,. ::, rBORZJ...
2026-02-08
0
28
题解 | #相邻的糖果#
(前面一直看找到代码问题,后面才发现自己变量打错了) 很明显的贪心做法,因为一个糖果是可以在多个连续m个盒子区间中的,所以在修改的时候我肯定是想要修改被比较多个区间包含的糖果(这里后面还会有修改) 但是我肯定不是直接从中间出发看每一个糖果盒是否修改,因为你还要考虑到每个盒子里的糖果数量,因为我是不能...
2026-02-07
0
29
题解 | #【模板】巴什博弈#
纯模板,思路也很简单,用SG函数推一下就能发现。对于当前的状态x,他的SG值就是mex{SG[x-m],……,SG[x-1]}。 然后手动推一下打表就能发现,当n%(m+1)==0的时候,无论先手选择什么,后手必定有一种选择能够让两个人选择的石头数等于m+1,所以后手必胜 反之,先手就可以拿走n%(...
2026-02-06
0
27
题解 | #括号匹配深度#
很经典的括号匹配问题,题目说XY的深度会算作max(X,Y),(X)的深度会算作X+1. 首先对于括号匹配问题我们很容易能想到用栈进行匹配的做法,然后对比之后就能发现,其实这个深度就是看栈中存下来的左括号个数最大值,这是可以模拟证明的,模拟之后就能发现完全符合题意。 所以直接用栈进行匹配,记录栈的大...
2026-02-05
0
35
题解 | #幂次进近#
这道题的思路还是比较一眼的,因为范围是1e18,而2的60次方就已经大于1e18了 所以如果k>60的话就肯定直接输出1 如果是k=1的话就直接输出n 剩余情况通过二分寻找最大的位置mid使得mid ^ k <= n,这样子我们可以比较l和l+1的情况来选择符合题意的位置 但是问题是这里...
2026-02-04
1
26
首页
上一页
1
2
3
下一页
末页