![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法
大一算法
每天学习一点点的辉蒻
博客隔断时间更新,每天都写。目前主写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 · 98 阅读 · 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 · 52 阅读 · 0 评论 -
洛谷P1443 马的遍历 题解 bfs
方法:bfs先放AC代码:#include<iostream>#include<queue>#include<algorithm> using namespace std;typedef pair<int, int> PII;#define x first#define y secondint 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 · 141 阅读 · 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 · 491 阅读 · 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 · 62 阅读 · 0 评论