算法
大一算法
每天学习一点点的辉蒻
博客隔断时间更新,每天都写。目前主写java相关(因为现在学java
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
整数二分与浮点数二分必背模板及其相关题目
浮点数二分模板 int fbarry(double l , double r) { while(r-l>INT_MIN)//INT_MIN适具体题目而定,一般是样例*10^3 { double mid=(l+r)/2; if(check(mid)) l=mid;//这里的l=mid以及下面的r=mid 适具体情况任意 else r=mid; } return l; } 整数二分模板 int abarry(int l,int r) { while(l<r) {原创 2021-02-13 20:06:50 · 145 阅读 · 0 评论 -
背包dp
背包dp传统做法 步骤: 1.状态表式:f[i][j] i为第几个物品,j为限制条件(意义:前i个物品再满足体积j的条件下的所有的选法的最大价值的集合) 2.状态计算:分为两个状态->选or不选。不选的话f[i][j]=f[i-1][j],选的话则f[i][j]=max(f[i][j],f[i-1][j-w[i]]+v[i]) 背包dp优化做法: 步骤和上面一样,但是使用一维数组f[j] 将i-1用循环的特点替换掉,减少内存的占用 具体方法是: for(int i=1;i<=(对象的数量);i+原创 2021-02-08 18:02:59 · 101 阅读 · 0 评论 -
洛谷P1443 马的遍历 题解 bfs
方法:bfs 先放AC代码: #include<iostream> #include<queue> #include<algorithm> using namespace std; typedef pair<int, int> PII; #define x first #define y second int dx[] = { -2,-1,1,2,2,1,-1,-2 }, dy[] = { 1,2,2,1,-1,-2,-2,-1 }; const int N原创 2021-02-05 21:26:11 · 227 阅读 · 1 评论 -
高精度与斐波那契数列的结合
高精度加法与斐波那契数列结合 一、高精度加法 for(int i=1;i<=len;i++){ if(a[i]>9){ a[i+1]+=a[i]/10; a[i]%=10; } } if(a[len+1]!=0) len++; 二、斐波那契数列 for(int i=3;i<=n;i++){ a[i]=a[i-1]+a[i-2]; } 两个问题分别去做非常简单。但是一旦放在一起,难度可能稍大。并且在某些斐波那契问题上经常要这样组合求解。 那么如何解决斐波那契与高精度的组合原创 2021-01-25 14:23:32 · 640 阅读 · 0 评论 -
快速排序
最基本的快速排序的代码如下: #include<iostream> using namespace std; int a[1000]; void quicksort (int left,int right) { int mid=a[(left+right)/2]; int l=left,r=right; while(l<=r) { while(a[l]<mid) l++; while(a[r]>mid) r--; if(l<=r){ swap(a原创 2020-11-22 21:35:54 · 102 阅读 · 0 评论
分享