死于算法,生于算法
死于算法,生于算法
全部文章
基础算法
未归档(1)
题解(20)
归档
标签
去牛客网
登录
/
注册
死于算法,生于算法的博客
全部文章
/ 基础算法
(共10篇)
n皇后
这个整体的思路就是要回溯,如果当前的不能放,那么就回去,然后我们分析可以发现位于对角线上的皇后有规律 主对角线:y=x+b——>x-y=b 副对角线:y=-x+b——>x+y=b 所以我们可以开两个数组来进行存储当前位置的对角线是否有皇后占领 这是第一种方式,按照行数来直接判断 #inc...
2021-11-13
0
379
在N个数中取m个数的组合
这个我们可以简化,就是按照字典序输出,所以就可以规定当前位必须大于上一位,所以我们可以传个参数来保存上一次 #include<iostream> using namespace std; const int M=3; int n=5,m=3;//假定在5个数中选3个数 int a[M];...
2021-11-13
0
796
高精度除法
ABCDEFGHIJK➗S 我们在计算时会列竖式,我们会先从最高位开始算起,然后算之前余数*10+当前位之后,再除以s,之后一直都是这样 #include<iostream> #include<vector> #include<algorithm> using n...
2021-11-10
0
436
高精度乘法(高精度*低精度)
乘法和加法类似 我们就是把低精度看成一个整体,然后和高精度的每一位去相乘我们保留的只是相乘后的个位其余的都当成是进位了,因此与加法相比我们最后是要循环进位 #include<iostream> #include<algorithm> #include<vector>...
2021-11-10
0
348
高精度减法
题干 输入两个正整数,结果可能为负 就是模拟列竖式,在这里我们可以简化的就是小数减大数,如果是这样我们可以先加入负号然后再进行大数减小数 #include<iostream> #include<vector> using namespace std; string sa,**...
2021-11-10
0
395
高精度加法
高精度加减法就是模拟人类的列竖式 因为有进位所以为了方便我们倒序,这里就可以使用vector来进行存储了 #include<iostream> #include<vector> using namespace std; vector<int> a,b; strin...
2021-11-10
0
467
优先队列
优先队列手动实现 int cnt,q[10010]; void push(int x) { q[++cnt]=x; int i=cnt,j=i/2; while(j!=0&&q[i]<q[j]) { swap(q[i],q[j]); ...
2021-11-07
0
402
二分查找
二分查找有两组写法(这里我就写一组了),每组有2个算法,最后所求的意义也不同 找出第一个>=x的第一个位置 #include<iostream> using namespace std; const int N=10010; int a[N]; int main() { int ...
2021-10-26
0
406
归并排序
归并排序的算法思想是分治法,与快速排序不同,快速排序讲究的是先把整体排个大概,再处理子区间,而归并排序讲究的是先将子区间排好,再进行合并,也就是说我们需要再创建一个新的数组来保存两边有序的子区间的结果,然后将这个数组赋值给原数组 代码 #include<iostream> using n...
双指针
2021-10-18
0
352
快速排序
快速排序的想法是分治算法,其思想核心是以某一个数为基准,然后进行排序,排序的结果就是使某一点的左边全部小于该基准,右边全部大于该基准,在进行交换时一定要注意那两个下标要更新 代码 #include<iostream> #include<algorithm> using nam...
C++
双指针
2021-10-17
0
487