07 2022 档案
摘要:题目:货仓选址 link:https://www.acwing.com/problem/content/106/ 分析 code #include <bits/stdc++.h> using namespace std; const int N = 1e5 + 10; int arr[N], n;
阅读全文
摘要:离散化 什么是离散化? 一些数据范围比较大,但是数据的个数不多,将其数字映射成较小的下标 从本质上来看离散化可以看成哈希,是一种特殊的哈希,其保证数据在哈希以后仍然保持原来的顺序 离散化的步骤 排序 去重(排序好了才能去重,可以用stl中的unique去重然后用erase去除) 访问的时候可以通过二
阅读全文
摘要:双指针去重法 思路 代码板子 //返回一个无重序列的后一位的迭代器(便于删除,仅保留无重复序列) vector<int>::iterator unique(vector<int>& t) { int j = 0; for (int i = 0; i < t.size(); ++i) { if (!i
阅读全文
摘要:区间合并的朴素做法 时间复杂度O(n2) 第一层循环遍历遍历区间,然后第二层循环去查找区间看能否合并然后更新,时间复杂度太高了 区间合并的贪心做法 时间复杂度O(nlogn) 步骤: 左端点为关键字然后从小到大排序 当前区间和下一个区间的关系有三种: 核心板子代码 // 将所有存在交集的区间合并 i
阅读全文
摘要:位运算常见的两种操作 1. 求x的二进制表示中第k位是几x >> k & 1(从第0位开始,比如1100第0位是0,第一位是0,第二位是1,第三位是1) #####算法的时间复杂度:O(logn) #####算法详解: 1.先把第k位移到最后一位x >> k 2.再看个位是几(通过&1来判断) x
阅读全文
摘要:参考: https://www.programmercarl.com/ https://www.acwing.com/ 哈希表: 哈希表就是通过哈希函数把x映射成唯一对应的y,y作为key,x作为value通过y可以索引x,其实数组就是一个哈希表,但这个通过哈希函数生成的key可能会发生哈希 通过k
阅读全文
摘要:memset函数介绍 简介: memset是以字节为单位对一块内存进行初始化的,在c中位于头文件<string.h>中,c++位于头文件中 函数原型: void *memset(void *s, int c, unsigned long n); 对以s为首地址的n个字节大小的内存,每个字节初始化成c
阅读全文
摘要:朴素筛:本质就是每一个合数n都可以被2-n-1里的数筛掉,这里就发现了一个问题就是,一个合数可能会被多次筛多次,这步可以进行优化。 埃氏筛:本质就是每一个合数n都可以被2-n-1里的素数筛掉,这里就是对朴素筛进行了优化,因为合数都会被素数筛掉,这样一来确实提升了时间复杂度,但是还是存在重复筛的情况
阅读全文