自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 数学的基础

在编程过程中,可能会因为范围的变化而超时。最大公约数#include<bits/stdc++.h>using namespace std;int f(int m,int n,int o,int k){ int l,a,b; a=m,b=n; while(n!=0) { l=m%n; m=n; n=l; } if(m==o&&a*b/m==k) retur...

2022-04-21 21:14:25 252

原创 数论的集合

倍数约数核心代码本质是跟据倍数进行约数。素数判断素数核心代码不需要够多判断。由于约数。会造成重复优化代码朴素筛法以判断出来的素数为底。是素数倍数的比不是素数艾诗筛法改进进一步判断是素数才更新。欧几里得算法张转相除法用这个可以解不定方程。强同与方程#include<bits/stdc++.h>using namespace std;long long x, y...

2022-03-31 22:44:09 163

原创 树的dp,背包。区间dp

区间中不断往上寻找最优解#include<bits/stdc++.h>using namespace std;const int INF=0x3f;const int maxn=300+10;int a[maxn],f[maxn][maxn];int s[maxn];int main(){ memset(f,INF,sizeof(f)); int n; cin>>n; for(int i=1;i<=n;i++) {...

2022-03-31 21:46:06 72

原创 dp+记忆化搜索

dp一般用于解决多阶段决策问题,即每个阶段都要做一个决策,全部的决策是一个决策序列,要你求一个,最好的决策序列使得这个问题有最优解。将待求解的问题分为若干个相互联系的子问题,只在第一次遇到的时候求解,然后将这个子问题的答案保存下来,下次又遇到的时候直接拿过来用即可。数字金字塔#include<bits/stdc++.h>using namespace std;int main(){ int n; scanf("%d",&n);//n行...

2022-03-26 23:05:03 633

原创 递推算法问题

这种算法特点是:一个问题的求解需一系列的计算,在已知条件和所求问题之间总存在着某种相互联系的关系,在计算时,如果可以找到前后过程之间的数量关系(即递推式),那么,从问题出发逐步推到已知条件,此种方法叫逆推。无论顺推还是逆推,其关键是要找到递推式。这种处理问题的方法能使复杂运算化为若干步重复的简单运算,充分发挥出计算机擅长于重复处理的特点。递推算法的首要问题是得到相邻的数据项间的关系(即递推关系)。递推算法避开了求通项公式的麻烦,把一个复杂的问题的求解,分解成了连续的若干步简单运算。一般说来,可以将递推

2022-03-23 18:15:28 138

原创 分治算法思想

一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)…… 任何一个可以用计算机求解的问题所需的计算时间都与其规模有关。问题的规模越小,越容易直接求解,解题所需的计算时间也越少。例如,对于n个元素的排序问题,当n=1时,不...

2022-03-21 01:10:53 333

原创 二分算法类型

二分已学,直接上代码模板#include<bits/stdc++.h>using namespace std;int a[110];int search(int a[],int x,int y){ int left=0,right=x-1; while(left<=right) { int mid=(left+right)/2; if(a[mid]>y) right=mid; else if(a[mi...

2022-03-12 23:09:36 101

原创 二分图拓扑tarjan

割点是连接两族之间的连接桥割边是去边标记深度与回溯值。转换成数学。核心思想。结合dfs的算法。运用链表的思想。顺序为1(2)456789 (3)规律可用于树的计算中规律总结适用于有交集的链表适用于孤立无交集的点。先运用dfs进行枚举。一个一个的进行试探。知道全部结束。在运用链表连接未配对的点。注:代码不清晰。未贴代码。理论知识较多。...

2022-03-07 22:16:58 245

原创 并查集和最小生成数

弗洛伊德算法代码模板固定。好,结构简单。并且能够很好的处理负权边。应用较多。迪杰斯克算法时间复杂度低。容易理解。传统复杂。但操作比较麻烦。贝尔曼福特算法可以处理很多东西。spfa算法容易卡样例图的存储唯一的缺点就是数据过大。将图转换成表格的形式。用数学的方法打表格形式数字表示出来。用链表不会爆空间头插法,代码的实现#include<iostream>using namespace std;struct node{ int data; stru...

2022-03-06 10:08:02 7069

原创 最短路径算法

floyed算法如何转化成程序语言。编程方法的实现此算法不能带负数。样题Dijkstra算法代码的实现代码的改进最小花费bellman__ford算法算法的优化算法的核心优化的原理实现邻接表...

2022-03-01 20:13:01 115

原创 进制的转换

#include<stdio.h>#include<string.h>typedef long long ll;int f(char c[],int x){ int i,s=0; for(i=0;i<strlen(c);i++) { if(c[i]<='9'&&c[i]>='0') s=s*x+c[i]-'0'; else s=s*x+c[i]-'A'+10; }...

2022-02-09 16:32:32 419

原创 递归跳台阶

#include<iostream>#include<cstring>#include<algorithm>using namespace std;const int N=20;int n;int f[N];int main(){ scanf("%d",&n); f[0]=1; for(int i=1;i<=n;i++) f[i]=f[i-1]+f[i-2]; printf("%d\n",f[n]);...

2022-02-09 15:50:56 435

原创 二分的主要体现

#include <stdio.h>#define MAXN 100000int binary_search(int nums[], int x, int n) { int lo = 0, hi = n - 1; while (lo < hi) { int mid = lo + (hi - lo) / 2; if (nums[mid] < x) lo = mid + 1; else if (nums[.

2022-02-07 01:02:26 6199

原创 贪心个算法

核心思想背包问题选课问题贪心模板

2022-02-07 00:50:27 408

原创 前缀和与差分

数组的思想。。累加求和。需要再用,建设时间复杂度。二维差分一维习题

2022-02-07 00:15:57 236

原创 dfs算法

和枚举相似。 区别在于回归,,时间少。

2022-02-04 17:40:42 248

原创 第五章 链表

链表

2022-01-20 23:48:15 292

原创 第四课 结构体,栈,与指针应用。

结构体与int类型差不多。。当成int看待。只不过它是一串数组.结构体变量可以进行交换..。指针可以指向结构体。。先入后出。后入先出。答案为d。因为a在b的下面。。不可能在b之前拿出来。。本质是奇偶的判断,以及二进制的输出。记住,p表示地址。null是空指针p[9]=*[p+9];...

2022-01-19 22:08:58 3610

原创 第三课 递归

进来,退出。连环门。

2022-01-18 22:22:53 189

原创 枚举,递归

枚举的方法,应用。递归。

2022-01-17 19:06:04 2411

空空如也

空空如也

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

TA关注的人

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