- 博客(11)
- 资源 (1)
- 收藏
- 关注
原创 浅谈点分治
(k的上限是可以接受的,所以可以直接开一个(表示不同深度是否出现的)桶存一下,不然需要map之类的多一个log的算法)这么做是为了防止存在子树自己和自己匹配的情况,这一点不允许是因为避免重复,因为这种情况只要遍历下去子树自己会处理(后面核心思想也会说到)。也就是说对于一条路径,我们完全不知道拼接后最大值是否会被更新,一个显然的思想是,(称当前路径的最大值为原本值)对于其他子树中所有最大值小于原本值的路径贡献都是原本值,对于所有最大值大于原本值的路径贡献都是该路径的最大值。这就是当前段对答案的贡献!
2024-07-31 01:30:35
972
原创 Rainbow Subarray题解,SET动态维护中位数做法
原理:原理很简单,就是开两个set(set1 和 set2)。对于一个集合,我们动态插入所有元素,使得两个set的大小差值不超过1(通常规定set2更大一点)且set2的最小值大于set1的最大值。这样我们就可以实时得到中位数的就是位于。思路:由于和位置有关,所以把每个数字都剪去下标,然后用滑动窗口和set去动态维护中位数进行求解。我们所要做的就是在这个过程中用set的借口来始终维护这两个性质即可。代码有注释,变量名称也有标注。
2024-06-29 01:52:05
665
原创 动态规划基础
动态规划类似于高中数列,对于一个复杂的数列(称之为答案数列),写出通项公式所需要的数学能力是非常强大的,但是我们可以写出递推公式,如果递推公式仍然难写,那我们便可以构造一些辅助数列来解决,辅助数列可以帮助我们很好的写出答案数列的递推公式,在探索辅助数列的过程中我们也可能会发现有些数列不是那么必须,那么便可以省去。可以泛泛地理解,辅助数列越多,答案数列越好写,但是维护辅助数列的过程就越发地冗余。
2024-06-28 23:05:08
1649
原创 动态规划基础
动态规划类似于高中数列,对于一个复杂的数列(称之为答案数列),写出通项公式所需要的数学能力是非常强大的,但是我们可以写出递推公式,如果递推公式仍然难写,那我们便可以构造一些辅助数列来解决,辅助数列可以帮助我们很好的写出答案数列的递推公式,在探索辅助数列的过程中我们也可能会发现有些数列不是那么必须,那么便可以省去。可以泛泛地理解,辅助数列越多,答案数列越好写,但是维护辅助数列的过程就越发地冗余。
2022-12-30 18:53:29
249
2
原创 区间DP基本类型
基础区间DP(板子题目)这种DP问题很直接,明确的告诉你物品顺序不能改变,只需要套用区间DP的板子解题即可,状态转移方程可以总结为dp[l][r]=std::min(dp[l][r],dp[l][k]+dp[k+1][r]+k处产生的代价);( k->[l,r) )例如:石子合并,能量项链基础DP的升级版这个类型的DP难度往往体现在计算k处产生的价值上面,k的价值不再是和k+1项,k-1项有关,这样使得题目有一定的迷惑性,但是其实仍然可以套用前面基础DP的板子来进行求解,DP式子总结..
2020-08-29 23:52:47
352
原创 数独(Sudoku)算法实现+初步优化
数独的规则【题目描述】(大概):补充完成一个99的数独,保证每行,每列,每个33的九宫格内的数字1-9恰好出现一次(一共9个九宫格)。输入整个81个数字,0表示待填的空,输出填好的答案。【暴力搜索思路】:对于没一个空格,上面所能填的数字必须符合以下条件:横行上没有重复竖列上没有重复九宫格内没有重复因此可以考虑挨个遍历整个表格,利用搜索和回溯来完成上述规则的模拟和实现。#include <iostream>#include <algorithm>#includ
2020-05-15 21:53:48
4907
1
原创 用vector实现逆序对数量统计和归并排序
#include <iostream>#include <algorithm>#include <cmath>#include <cstring>#include <cstdio>#include <vector>using namespace std;vector<int> num;int an...
2020-05-02 10:21:14
364
原创 数论_质合_1质数筛法
文章声明定义:略分布规律:分布稀疏,对于一个足够大的数字,在[0,n]中有大约n/ln(n)个。判定方法:枚举[2,sqrt(n)]中的所有整数数字,若n全部不能整除即n为正数。筛法:埃氏筛法:求[1,n]中的所有的质数,用bool类型建立数组,枚举[2,n]的所有整数,从小到大,如果当前数字标记为0,则将其所有的在区间内的倍数标记为1,重复这个过程直到完成。->优化:显...
2020-04-30 17:38:33
316
原创 有关数论这部分文章的原创问题声明
这一专题内容全部为数论相关知识本章内容及其顺序取自《算法竞赛》作者李煜东,理解后所写,无意抄袭。部分定理仅仅作简要证明目的仅仅为了记录学习过程,勿喷有版权问题请联系删除Let’s begin....
2020-04-29 15:56:44
353
原创 洛谷1594 护卫队_区间dp_题解
护卫队【问题描述】 不是具体题目大概就是有n个车要过河,只有一个桥(理论上只能单向通行,其实不用管对面),桥有最大承重,每次你可以把其中的任意一段(length<=n)辆车组成车队,同时通过。要求总时间的最小值。【题目分析】一开始我在摸索的时候,感觉这道题目有种多个01背包放在一起的感觉,因此,我开始脑补时间复杂度。。。要枚举有几个01背包,要枚举在哪里划分背包,然后还要多个01...
2020-04-27 00:27:34
1101
1
数独tasks.cpp
2020-05-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人