- 2025-01-10719. 找出第 K 小的数对距离
找出第K小的数对距离数对(a,b)由整数a和b组成,其数对距离定义为a和b的绝对差值。给你一个整数数组nums和一个整数k,数对由nums[i]和nums[j]组成且满足0<=i<j<nums.length。返回所有数对距离中第k小的数对距离。示例1:输入:nums=[1,3,1],k=1
- 2025-01-10AT_abc248_h [ABC248Ex] Beautiful Subsequences 题解
题目传送门前置知识树状数组|序列分治解法考虑序列分治,设因\(\max\)和\(\min\)形成的分节点先后为\(k_{1},k_{2}\)。对于\(j\in(mid,k_{1}]\),等价于统计满足\(\max\limits_{h=i}^{mid}\{a_{h}\}-\min\limits_{h=i}^{mid}\{a_{h}\}\lej-i+k\)的\(j\)的
- 2025-01-10递归+pair
https://codeforces.com/contest/2053/problem/C#include<bits/stdc++.h>#definelcp<<1#definercp<<1|1#defineINF2e9usingnamespacestd;#defineendl'\n'usingll=longlong;usingpii=pair<ll,int>;constdoubl
- 2025-01-10AcWing算法基础课打卡 | 790 数的三次方根
学习C++从娃娃抓起!记录下AcWing刷过的题目,记录每一个瞬间。附上汇总贴:AcWing算法基础课打卡|汇总【题目描述】给定一个浮点数,求它的三次方根。【输入】共一行,包含一个浮点数。【输出】共一行,包含一个浮点数,表示问题的解。注意,结果保留位小数。【输入样例】1
- 2025-01-10做题记录
CF600E线段树合并典题。P3899可以发现\(a\)固定了所以可以分讨。当\(a\)在\(b\)下面时,可以发现\(b\)能取的个数是\(\min(k,dep_a-1)\)而\(c\)的个数就是\(siz_a-1\)然后乘起来就是总方案数。当\(a\)在\(b\)上面时,可以推出\(dep_b-dep_a\leqk\)并且\(b
- 2025-01-09[CF2057F] Formation 做题记录
link对我比较有意义的一道题目。我们先逐步分析,对于单个询问,先钦定最大值位置\(i\),我们现在的目标是最大化\(a_i\)的值。这显然有单调性,考虑二分一个\(mid\)表示最终值,那么会出现一个\(l(l\lei)\)以及一个序列\(c_{0\dotsl-1}\)有\(c_i=\lceil\dfrac{mid}{2
- 2025-01-09AcWing算法基础课打卡 | 788 逆序对的数量
学习C++从娃娃抓起!记录下AcWing刷过的题目,记录每一个瞬间。附上汇总贴:AcWing算法基础课打卡|汇总788逆序对的数量【题目描述】给定一个长度为nnn的整数数列,请你
- 2025-01-09AcWing算法基础课打卡 | 789 数的范围
学习C++从娃娃抓起!记录下AcWing刷过的题目,记录每一个瞬间。附上汇总贴:AcWing算法基础课打卡|汇总789数的范围【题目描述】给定一个按照升序排列的长度为nnn的整
- 2025-01-09162. 寻找峰值
[题目链接](162.寻找峰值-力扣(LeetCode))解题思路:题目有一个很重要的前提是:对于所有有效的i都有nums[i]!=nums[i+1]。先看开头和结尾,如果nums[0]>nums[1]或者nums[n-1]>nums[n-2],那么可以直接返回了。否则从左就是【往上爬的趋势】,从右也是【往上爬的趋势】
- 2025-01-08VP Codeforces Round 994 (Div. 2)
A.MEXDestruction题意:给你一个数组,每次操作选择一个区间使这个区间变为区间mex,问最少操作使得数组全为0.容易发现,对任意一个区间,最多两次操作这个区间就会全变成0,于是我们想尽可能操作大的区间。但并不是直接操作整个数组一定更好,如果我们选择的区间里没有0,那么只需要一次操
- 2025-01-08贝叶斯机器学习:共轭先验
离散随机变量的二项分布和多项式分布,以及连续随机变量的高斯分布,这些都是参数分布(parmetricdistribution)的具体例子。之所以被称为参数分布,是因为少量可调节的参数控制了整个概率分布。在频率派的观点中,我们通过最优化某些准则(例如似然函数)来确定参数的具体值。而在贝叶斯派的
- 2025-01-08省选集训-模拟赛 3
A\(2^n·n^2\)的暴力枚举想必不用多说。考虑暴力dp,设\(f_{i,S}\)为\([1,i]\)里选了集合\(S\)的点,那么可以容易的\(O(n)\)扫描更新,做到\(O(2^n·n)\)注意到对于\(f_{i,S}\)以及更后面的状态而言,将\(a_i\sima_n\)排序后的\(b_1\simb_{n-i+1},b_0=0,b_{n-i+2}=n
- 2025-01-07二分查找疑难点-区间问题
大家在写二分查找时,对while()循环中的left<right还是left<=right以及right=mid还是right=mid-1经常会搞混,下面理清这里面的逻辑。 首先说明一下二分查找的使用条件,1.元素需要有序,这样才能二分,2.无重复元素,因为重复元素会导致查找成功返回的下标
- 2025-01-07力扣 74. 搜索二维矩阵
- 2025-01-07HDU7521 cats 的二分答案 题解
思路首先,转换一下题意。只有在\(val=0\)时,才会向左缩小范围。然而只有越界访问才能达成\(val=0\),因此实际上我们最多只能向左缩小范围\(k\)次。对于当前的二分区间,\(mid\)本身可以作为一个答案,同时还要加上左右两边子区间的贡献。因此想到可以递归计算子区间的贡献。
- 2025-01-07P2894 [USACO08FEB] Hotel G && P3071 [USACO13JAN] Seating G
P2894[USACO08FEB]HotelGP3071[USACO13JAN]SeatingG题目描述第一行输入\(n,m\),\(n\)代表有\(n\)个房间\((1\leqn\leq50,000)\),编号为\(1\simn\),开始都为空房,\(m\)表示以下有\(m\)行操作\((1\leqm<50,000)\),以下每行先输入一个数\(i\),表示一种操作:若
- 2025-01-06可持久化数据结构
可持久化数据结构呢,就是说这些数据结构,它们都非常持久(其实就是可以访问和修改历史版本的信息可持久化线段树可持久化权值线段树就是主席树如果你还不太了解,可以看看当然还有更普遍的可持久化线段树——支持区间修改的。考虑pushdown会影响下方历史版本的线段树信息,自然想到
- 2025-01-06代码随想录 test1(二分详解,包括二分答案)
一、二分查找关键:确定待查找的元素出现在什么区间内,循环不变量:目标值一定在当前搜索范围内。模板一:在左闭右闭区间内查找目标元素 由于待查找元素在左闭右闭区间,因此要想在已有数组内查找该元素,就要让初始左右指针分别为0,size-1(刚好覆盖整个数组)。
- 2025-01-05线段树进阶练习专题
小白逛公园题目大意:求一段区间里最大子段和思路:有空补(code:#include<bits/stdc++.h>usingnamespacestd;constintMAXN=500100;intm,n;inta[MAXN];inlineintread(){ intx=0,f=1; charch=getchar(); while(ch>'9'||ch<'0'){ if(ch==
- 2025-01-05『省选模拟赛3』 Day10 总结
前言你要搞清楚自己人生的剧本不是你父母的续集,不是你子女的前传,更不是你朋友的外篇。第三次考试,第二次被我咕掉了。\(68+35+100=203\),在高二没参考的情况下,\(\texttt{BZRk2}\),也还算能看。感觉这次的排名和上次是倒过来的。T1这么唐氏的DP状态有限,是可过的,居然被我直
- 2025-01-05code
#include<bits/stdc++.h>usingnamespacestd;#defineendl'\n'#defineFL(a,b,c)for(inta=(b),a##end=(c);a<=a##end;a++)#defineFR(a,b,c)for(inta=(b),a##end=(c);a>=a##end;a--)#definelowbit(x)((x)&-(
- 2025-01-05【C语言】数组——二分查找
题1704.二分查找【简单】intsearch(int*nums,intnumsSize,inttarget){intleft=0,right=numsSize-1;intmid=(left+right)/2;intresult=-1;while(left<=right){if(nums[mid]==target){r
- 2025-01-04二分 + 倍增 做题笔记
一些关于二分和倍增的题,大体按照题目难度排序。1.CF1951HThanosSnap简要题意给定一个长为\(2^n\)的序列\(a_0,a_1,\cdots,a_{2^n-1}\),对所有\(t\in[1,n]\)求解如下问题:A和B两人在序列\(a\)上博弈,一共进行\(t\)轮操作。每轮操作的流程如下:A可以选
- 2025-01-04ybt1678 独木桥
1678:独木桥时间限制:1500ms内存限制:131072KB【题目描述】Alice和Bob是好朋友,有一天他们带了\(n\)个孩子过独木桥。为了方便,我们将问题抽象如下:将独木桥看成一个长度无限长的实数轴,将每个孩子看作数轴上的一个实数点。数轴从左到右坐标不断增大。孩子的位置用
- 2025-01-04二分查找 - 相关基础算法总结
问题1:寻找target位置,没有返回-1问题2:从右往左,寻找<target的第一个位置问题3:从左往右,寻找>target的第一个位置问题4:从右往左,寻找<=target的第一个位置问题5:从左往右,寻找>=target的第一个位置以上问题是求很多解力扣算法题的基础,需要好好的掌握: 问题1:寻找