C++
laixiw
这个作者很懒,什么都没留下…
展开
-
数位统计DP
题目来源于一道以前的笔试题,当时没做出来,现在想明白了,自己整理一下。 问题:已知两个正整数m,n(m<n),求m到n中所有数字出现的次数。 思路: 需要实现一个函数count(n,x)求出1-n中数字x出现的次数,如count(100,2)=20。 将count(n,x)- count(m-1,x)为当前数字的次数,在进行for循环遍历可以得到结果。 count(n,x)实现思路主要是将数字的每一位为对应的数字是的所有情况求出来,最后相加。具体求出每一位的思路如下 对于一个数 abcodef o不原创 2021-06-24 22:02:19 · 101 阅读 · 0 评论 -
快排板子
#include<iostream> using namespace std; int n; const int N = 100010; int arr[N]; void quick_sort(int l, int r) { if (l >= r)return; int i = l - 1, j = r + 1; int t = arr[l + r >> 1]; while (i < j) { do i++; whil原创 2021-03-08 22:34:35 · 81 阅读 · 0 评论 -
堆
堆的两种核心操作 #include<iostream> using namespace std; const int N = 1e5 + 10; int heap[N]; int len; void down(int idx) { int t = idx; if (idx * 2 <= len && heap[idx * 2] < heap[t])t = idx * 2; if (idx * 2 + 1 <= len &&原创 2021-03-08 21:52:50 · 61 阅读 · 0 评论 -
从零开始的线段树生活
线段树的基本操作,建树,单点修改,单点查询。 #include<iostream> using namespace std; const int N = 100; int arr[N]; int tree[4 * N]; int len; void build_tree(int l,int r,int node) { if (l == r) tree[node] = arr[l]; else { int mid = (l + r) / 2; build_tree(l, mid,原创 2020-12-14 11:51:36 · 65 阅读 · 0 评论 -
C++stl vector
本次介绍c++的stl容器vector,掌握以下几个方面 定义vector 向vector中插入元素 在vector中删除指定位置的元素 修改vector中指定位置的元素 遍历vector,其中包括普通for遍历,增强for遍历和迭代器遍历 #include<vector> vector<int>v; v.push_back(1); v.push_back(3); v.push_back(5); v.push_back(7); for (int i = 0; i &l原创 2020-10-11 20:42:29 · 61 阅读 · 0 评论 -
C++ stl map基础知识
map map分为map和unordered_map,其中map底层是红黑树,unordered_map底层是哈希表,两者在函数上一致,只是是否能排序的问题 下面介绍常见的map的使用方法。 #include<unordered_map> //定义map unordered_map<int, int>m; //对map进行初始化 m[0] = 3; m[2] = 7; m[4] = 9; //遍历map,按照每一个键值对的指针来进行遍历,每一个得到.原创 2020-10-11 20:43:29 · 279 阅读 · 0 评论