自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (1)
  • 收藏
  • 关注

原创 ACM算法——组合数学

卡特兰数问题:n对括号有多少种合法的匹配方式?(卡特兰数的常见应用之一)结论:对于n对括号,合法的排列共有C(n,2n)-C(n+1,2n)基本思路:考虑n对括号,有n个(和n个),对于任意一个)其前面必定有一个(跟他对应,如果没有则是非法序列。也就是说,对于),其前面的(的数量必须大于等于)的数量。假设(=1,)=-1。合法的序列是 1 -11 -1 1 -1,不合法的序列是1 -1 -1 1 1 -1。n对括号的全排列数为C(n,2n),减掉那些不合法的排列数就得到了合法的排列数,那么不合法

2020-08-08 23:12:18 361

原创 计算几何相关问题

计算几何是直接可以拿kuangbin的板子进行写的,但是还是需要有自己的一些储备。方法:从平面几何->解析几何首先,我们需要判断浮点数符号。const double eps = 1e-8;//...int sgn(double x) { if (fabs(x) < eps)return 0; if (x < 0)return -1; else return 1;}通过面向对象思想来定义点直线struct Line { //点向式直线

2020-08-08 22:53:25 189

原创 字符串算法的应用

字典树字典树的概念:字典树是一棵树,字符在边上,一条路径上的全部字符构连成一个字符串。字典树是用来处理多串问题的,主要是用来查找,还可以求两个串的lcp(最长公共前缀)。struct Trie{int tot, ch[maxn][26], end[maxn];void init(){while(tot--)cl(ch[tot+1]),end[tot+1]=0;tot=1;}int append(int pos, int c){int &t=ch[pos][c];return .

2020-08-08 22:09:50 162

原创 动态规划优化方法

之前我们学习过动态规划方法,但是并没有对DP进行系统细致的优化。今天来看一下DP的优化方法。一、矩阵优化线性代数教材中可能讲过,通过矩阵进行快速的重复运算(矩阵快速幂)。(以下是矩阵快速幂的写法)直接看题:求斐波那契数列第n项余1e9+7后的值,其中1<=n<263通过使用普通的动态规划(递推)显然会爆掉,矩阵加速就十分使用与这种线性的递推DP,构造矩阵再配上矩阵的快速幂,以logn的时间复杂度求出答案。02 单调队列优化多重背包的时候就可以用到,主要突出的是单调性。

2020-08-08 17:34:05 1724

原创 ACM算法——线性筛

应用:判断是否为素数第一个想法:普通优化,对数字加根号遍历。不够优秀第二个想法:如果我们知道一个数是素数,那么我们可以将这个素数的倍数筛去。我们从2开始,每次循环到一个数,先判断它是否被筛过,如果没有,那么它肯定是素数,就用它去筛它的倍数,否则就跳过。上述的筛法称为:埃氏筛法复杂度大约为nln(n) 这个算法时间主要浪费在一个数字会被重复筛去。比如 6 = 2 * 3。它被2筛了一次, 被3又筛了一次。为了解决这个问题,便出现了一个快速的线性筛法,也称为欧拉筛法。欧拉筛法没有冗余,不会重复筛

2020-08-08 17:11:44 717

原创 ACM数论算法——欧拉函数

欧拉函数:1到N中所有与N互质的数的个数就叫欧拉函数,记做Φ(N)使用方法:性质:1.当p为质数时, φ§ = p – 12.若p为质数,且n=????^????,则φ(n) = ????^???? - ????^(????−1)证明:直接用欧拉函数计算公式可以得出3.欧拉函数是积性函数先介绍一下什么是积性函数,后面将会用到。若当m与n互质时,f(n*m) = f(n) * f(m), 则称为f(x)为积性函数特殊的,当n为奇数时, φ(2 * n) = φ(n)4. 当n&gt

2020-08-08 15:53:14 271

原创 逆元的推理以及应用

当求解公式:(a/b)%m 时,因a,b可能会过大,会出现爆精度的情况,所以需变除法为乘法当求解公式:(a/b)%m 时,因b可能会过大,会出现爆精度的情况,所以需变除法为乘法:设c是b的逆元,则有bc≡1(mod m);则(a/b)%m = (a/b)1%m = (a/b)bc%m = ac(mod m);即a/b的模等于ab的逆元的模;使用方法(采用扩展欧几里得exgcd):ll extend_gcd(ll a, ll b, ll &x, ll &y) { if (

2020-08-08 15:25:29 300

原创 欧几里得算法与扩展欧几里得算法(Gcd and Exgcd)

作用:求最大公约数欧几里德算法欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。其计算原理依赖于下面的定理:证明过程:定理:gcd(a,b) = gcd(b,a mod b)证明:a可以表示成a = kb + r,则r = a mod b假设d是a,b的一个公约数,则有d|a, d|b,而r = a - kb,因此d|r因此d是(b,a mod b)的公约数假设d 是(b,a mod b)的公约数,则d | b , d |r ,但是a = kb +r因此d也是(

2020-08-08 14:54:30 346

原创 线段树 树状数组 并查集

利用线段树十分方便的处理区间,线段树是一棵完美的二叉树,树上的每一个节点都维护一个区间,根维护的是整个区间,线段树通常用来计算区间内数据的和或者是修改某处的值。对区间的操作可以再O(logn)的时间内完成。下面我们通过代码实现线段树的构建,修改,区间求和。#include <iostream>#include <cstdio>//线段树#define MAX_LEN 1000//构造线段树void build_tree(int arr[],int tree[],in

2020-08-08 00:07:44 334

原创 动态规划(Dynamic Programming) 背包问题初探

引例:如何计算斐波那契数列?递归记忆化搜索动态规划(递推)动态规划:避免无用的重复计算,提高处理的效率。将一个问题拆成几个子问题,分别求解这些子问题,即可推断出大问题的解。当子问题具有重叠性时 (同一个子问题多次出现),相比于搜索 (递归),利用 dp 就可以避免重复计算,节省时间。适用条件最优子结构:大问题的最优解可以由小问题的最优解推得。无后效性:当前问题的解只与已求得问题 (过去) 的解有关,而与未求得的问题 (未来) 的解无关。解决方法:确定状态状态是比较抽象的,如何正

2020-08-07 15:04:30 177

原创 STL笔记梳理2 常用算法

STL algorithmsort(最常用了)//sort(first,last,cmp);int n;int a[MAX];/*数组 */sort(a, a+n);vector <int> A(n);sort(A.begin(), A.end()); //完美排序二分查找int a[] = {1,2,3,4,4,4,5,6,7};int x = lower_bound(a, a+9,4) - a;cout << x << "\n"; /

2020-08-06 11:26:13 113

原创 STL笔记梳理一STL常用函数

STL 故名思意标准模板库(Standard Template Library)常见使用方式:pairpair 是 一种模版类型。每个pair 可以存储两个值。这两种值无限制。也可以将自己写的struct的对象放进去。(二元结构体)用法如下:pair<int, double> p1;p1 = make_pair(1, 1.2)//以上赋值操作pair<int, double> p1(1, 1.2);pair<int, double> p2 = p1;

2020-08-06 10:54:30 241

西电通院模电大作业3

用一片通用四运放芯片LM324组成电路,实现以下功能:用低频信号源产生ui1=0.1sin2πft(V),f=500Hz的正弦波信号,加至加法器的输入端,加法器的另输入端加入有自制振荡器产生的信号uo1。要求加法器的输出电压ui2=10 ui1+ uo1。ui2经选频滤波器滤除uo1频率分量,选出f信号为uo2,uo2为峰峰值等于9V的正弦信号。uo2信号经比较器后在1KΩ负载上得到峰峰值2V的输出电压uo3。用NI Multisim 打开即可,参数已调好。对应博客:https://blog.csdn.net/weixin_43723423/article/details/90761331

2020-12-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除