- 博客(11)
- 收藏
- 关注
原创 蔚来杯错题集
直到了极值位置(这里需要注意的是我们三分用的还是原公式,并不是求导后的公式,因为我们三分是必须是一个凹函数或者凸函数,这里原函数是一个凹函数,而求导后的函数是一个单调函数)。题解首先这是一个数学公式,又要求最小值,所以最先想到的就是用三分求解极值并且配合求导。看成常量将d看成变量,那么我们就可以将公式赋值为0,直接三分d,就能求出。题意给定一个数列,将这个数列变成数列,使得。,求出b1之和再返回原公式,再三分d,求。应为是求导后的公式,所以将。......
2022-07-26 16:28:51
218
原创 同余与矩阵乘法
同余:重要算法:扩展欧几里得算法;作用:例如gcd(a,b) = d,求两个系数a*x+b*y = d,扩展欧几里得算法的作用就是能够快速求出x,y.公式推导:就是欧几里得公式的原理,每次欧几里得递归之后,x,y都是不一样的,上面我们是通过公式推导找出了这一层和下一层的关系,而最后一层,很显然就是x=1,y=0,然后逆推回去就行。通过最终的化简可以得到最终的公式为:x = x0 + k(b/gcd);y = y0 - k(a/gcd);解决什么问题:最主要解决线性同余
2022-05-22 18:23:01
1058
原创 错题集总结和理解
1.https://codeforces.com/contest/1670题意:给出一个数组,可以做无数次将两个数的正负号交换,经过这个操作之后如果数组能够变成有序的,那么就输出YES,不然输出NO;错误做法:p从开始进行遍历,s1记录绝对值单调递减的数的个数,s2记录单调递增的数的个数,cnt1记录单调负数的个数,cnt2记录整数的个数。错误原因:s1很难实现只记录一个单调递减区间单调递减的数的个数,所以很难做出们会有很多矛盾。正确做法:记录一下数组负数的个数cnt,将前cnt
2022-05-18 20:09:55
558
原创 并查集原理与应用
知识点:并查集:原理:1.合并两个集合2.查询某个元素1的祖宗节点优化:1.路径压缩(记忆化)(最坏情况下时间复杂度是log(n))2.按质合并(时间复杂度也是n))最长用扩展1.记录一下每一个集合的大小(一般以根节点为下标)2.每个点到根节点的距离(绑定到每个元素上)2.二维坐标转以为坐标二维是(x,y)那么变成以为就是x*n+y(前提是x,y都是从0开始)1.格子游戏(活动 - AcWing)题意:Alice和Bob玩了一个古老的游戏:首先画一
2022-05-17 14:24:22
525
原创 单源最短路的建图方式
1.边权都非负1.朴素Dijkstra(稠密图效率高)O(n^2)2.推优化Dijstra(稀疏图效率更高)O(m*logn)2,有负权边的负权问题1.spfa(时间复杂度最好的情况是)O(m)但是如果存在负权变的话就可能出现超时的情况,因为如果出现负权边的话,有些边就不止会遍历一次)图论问题最难点:问题的转化和抽象1.活动 - AcWing(模板题)#include<iostream>#include<cstring>using names.
2022-05-16 14:13:46
155
原创 容斥原理及应用
1.公式:(总共有项) -(总共有项) + (总共有项)然后再减四项的,再加五项的,以此类推。2.从公式可以看出总共有,如果再在左侧加一个是不是总共就有项,为什么能,从上述公式可以看出,从n个中选0个,选一个,选两个,一直到n个,是不是就是从n个集合中选任意多个集合的意思,有选或者不选两种可能,总共n给数所以是(上述公式我们补了一个,所以减一)。证明:不妨假设x,在k个集合中;那么我们来求k被加了多少次,观察式子可知k被加了,如图:例题:1...
2022-03-29 21:32:01
324
原创 质数的一些性质和算法
质数的性质:质数又称素数,大于1,除了自身和1,不能被其他小于自身的数整除;最一般的算法就不讲了,时间复杂都太高,不会用到;1.假设我们判断n是不是质数,我们会通过循环1~n,看有没有数能整除它,其实我们没必要循环到n,假如某个数能整除n,肯定也有对应的数能整除n,因为假如a能整除n,那么n可以被拆分为n=a*b;a和b肯定有一个是大于sqrt(n)的,有一个是小于sqrt(n)的,我们找到了小于sqrt(n)的那个数就没必要找大于sqrt(n)的了,因为这两个数是对应的,那么我们循环就没必要遍历到
2022-03-26 16:07:00
817
原创 贪心算法经典例题
1.282. 石子合并 - AcWing题库题目简单说明:将·1~n堆石子全部合并,合并只能是相邻的两堆,合并两队石子是需要代价的,代价为两堆石子的权值,合并后的新堆的权值为原来两堆的和,现需要你求需要的代价的最小值。Dp解法:因为我们需要求1~n的代价的最小值,我们可以设dp[1][n]为最终答案,那么我们知道dp[1][n]是不是需要知道dp[1][k]和dp[k+1][n]的最小代价加上dp[1][k]和dp[k+1][n]的权值;...
2022-03-23 12:50:09
612
原创 组合数复习笔记
组和数根据参数数据范围有以下几种情况:包含n组数据,每组数据输入两个数a和b;第一种情况:a和b数据范围相对较小范围:1≤n≤100001≤n≤10000,1≤b≤a≤2000;这种最简单的情况直接使用公式: = 预处理,后面直接访问答案下标就行;#include<iostream>using namespace std;const int N = 2010;int c[N][N];const int mod = 1e9 + 7;int main()...
2022-03-09 21:48:43
226
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人