05 2024 档案
摘要:基础排序算法(基于暴力的排序算法) 排序本质:逐步减少逆序对 在基础排序算法中,将待排序序列分为相对有序区与相对无序区。 每次遍历到数组末尾称为一轮。 冒泡排序(无序区-有序区, O ( n 2 ) O(n^2) O(n2),稳定,就地) 算法流程:在每轮中逐个比较相邻项,并将相对最值置后。因此在每
阅读全文
摘要:希尔排序 直接插入排序的改进——希尔排序( O ( n log 2 ( n ) ) O(n\log_2(n)) O(nlog2(n)),不稳定,就地) 核心:分组预处理+组内直接插入排序 流程:将待排序元素序列分割成若干个子序列,在子序列内分别进行直接插入排序,待序列基本有序(接近正序)时,再
阅读全文
摘要:并查集 并查集最基本的操作——合并、查询 struct{ int p,r;//p:parent r:rank(秩,子树高度的下界) }n[MAX]; void init(){//初始化并查集:每个元素都是自身的根节点,秩为0 for(int i=1;i<=MAX;i++) n[i].p=i,n[i]
阅读全文
摘要:POJ-1321棋盘问题(深搜板子题) 在 n × n n\times n n×n的棋盘上,#表示可摆放棋子的位置,同行同列最多只能摆放一个棋子,求摆放方案总数。 思路1:广搜行 深搜列 #include<iostream> #include<cstring> using namespace std
阅读全文
摘要:高精度模拟算法 高精度加法 extern string m,n; extern int a[MAX],b[MAX],ans[MAX]; void addition(){ int _m=max(m.size(),n.size()); reverse(m.begin(),m.end()),reverse
阅读全文
摘要:图可以看作一般化的树 建图(图的存储结构) 以存点方式存储图 邻接矩阵(适用于稠密图) vector<vector<int>>v(MAX,vector<int>(MAX,0)); 邻接表 unordered_map<int,vector<int>> head; 以存边方式存储图 链式前向星(静态链表
阅读全文
摘要:枚举是蛮力法的应用,所谓蛮力,并非指用人脑的智力或体力,而是利用计算机的强大特性进行暴力计算并验证的方式。 最朴素的枚举法是线性枚举,线性枚举优化方案有二分枚举、三分枚举等。 二分 二分是分治法的一种思想,可分为整数二分、实数二分等。二分的应用条件线性函数,必须为严格的单调有序序列,若无序则必须先排
阅读全文
摘要:Problem A:JB Loves Math 本题难度不大,但本蒟蒻一直被卡在Test 2上不动了,改了近一小时终于改出来了,本蒟蒻发题解纪念一下。 #include<bits/stdc++.h> using namespace std; using ll=long long; int t,a,b
阅读全文