摘要: 深度搜索 1、给定一个整数 n,将数字 1∼n 排成一排,将会有很多种排列方法。 现在,请你按照字典序将所有的排列方法输出。 输入格式 共一行,包含一个整数 n。 输出格式 按字典序输出所有排列方案,每个方案占一行。 数据范围 1≤n≤7 输入样例: 3 输出样例: 1 2 3 1 3 2 2 1 阅读全文
posted @ 2021-11-10 17:44 xmubaron 阅读(52) 评论(0) 推荐(0)
摘要: 链表 // head存储链表头,e[]存储节点的值,ne[]存储节点的next指针,idx表示当前用到了哪个节点 int head, e[N], ne[N], idx; // 初始化 void init() { head = -1; idx = 0; } // 在链表头插入一个数a void ins 阅读全文
posted @ 2021-11-10 17:42 xmubaron 阅读(80) 评论(0) 推荐(0)
摘要: 习题 1、第K个数 给定一个长度为 n 的整数数列,以及一个整数 k,请用快速选择算法求出数列从小到大排序后的第 k个数。 输入格式 第一行包含两个整数 n 和 k。 第二行包含 n 个整数(所有整数均在 1∼1091∼109 范围内),表示整数数列。 输出格式 输出一个整数,表示数列的第 k 小数 阅读全文
posted @ 2021-11-10 17:37 xmubaron 阅读(97) 评论(0) 推荐(0)
摘要: 离散化 vector<int> alls; // 存储所有待离散化的值 sort(alls.begin(), alls.end()); // 将所有值排序 alls.erase(unique(alls.begin(), alls.end()), alls.end()); // 去掉重复元素 // 二 阅读全文
posted @ 2021-11-10 17:36 xmubaron 阅读(63) 评论(0) 推荐(0)
摘要: 双指针算法 for (int i = 0, j = 0; i < n; i ++ ) { while (j < i && check(i, j)) j ++ ; // 具体问题的逻辑 } 常见问题分类: (1) 对于一个序列,用两个指针维护一段区间 (2) 对于两个序列,维护某种次序,比如归并排序中 阅读全文
posted @ 2021-11-10 17:35 xmubaron 阅读(55) 评论(0) 推荐(0)
摘要: 前缀和和差分 1、前缀和 #include <iostream> using namespace std; const int N = 100010; int n, m; int a[N], s[N]; int main() { scanf("%d%d", &n, &m); for (int i = 阅读全文
posted @ 2021-11-10 17:34 xmubaron 阅读(63) 评论(0) 推荐(0)
摘要: 高精度算法(大数) 1、大数相加 #include <iostream> #include <vector> using namespace std; vector<int> add(vector<int> &A, vector<int> &B) { if (A.size() < B.size()) 阅读全文
posted @ 2021-11-10 17:33 xmubaron 阅读(50) 评论(0) 推荐(0)
摘要: 归并排序 模板题 AcWing 787. 归并排序 #include <iostream> using namespace std; const int N = 1e5 + 10; int a[N], tmp[N]; void merge_sort(int q[], int l, int r) { 阅读全文
posted @ 2021-11-10 17:32 xmubaron 阅读(17) 评论(0) 推荐(0)
摘要: 快排 模板题 AcWing 785. 快速排序 #include<iostream> #include<cstdio> using namespace std; const int N = 1e5+10; int n,q[N]; void quick_sort(int q[],int l,int r 阅读全文
posted @ 2021-11-10 17:31 xmubaron 阅读(64) 评论(0) 推荐(0)
摘要: 1、数的二分模板题 给定一个按照升序排列的长度为 n 的整数数组,以及 q 个查询。 对于每个查询,返回一个元素 k 的起始位置和终止位置(位置从 0 开始计数)。 如果数组中不存在该元素,则返回 -1。 输入格式: 第一行包含整数 n 和 q,表示数组长度和询问个数。 第二行包含 n 个整数(均在 阅读全文
posted @ 2021-11-10 17:28 xmubaron 阅读(57) 评论(0) 推荐(0)