05 2024 档案

摘要:字符串相关 文章参考: [详解-字符串] C++必知必会 字符串-string常用各种操作解析 - 知乎 (zhihu.com) C++ 字符串(string)常用操作总结 - 知乎 (zhihu.com) c++读取字符串和字符的6种函数_c++获取字符串的每个字符-CSDN博客 字符串使用大全( 阅读全文
posted @ 2024-05-08 13:26 ihuahua1415 阅读(14) 评论(0) 推荐(0) 编辑
摘要:位运算骚操作 异或操作 异或运算性质 1)异或运算就是无进位相加 2)异或运算满足交换律、结合律,也就是同一批数字,不管异或顺序是什么,最终的结果都是一个 3)0^n=n,n^n=0 4)整体异或和如果是x,整体中某个部分的异或和如果是y,那么剩下部分的异或和是x^y 骚操作 交换两个数 void 阅读全文
posted @ 2024-05-08 13:26 ihuahua1415 阅读(15) 评论(0) 推荐(0) 编辑
摘要:数学相关 最大公约数 模板 int gcd(int a, int b) { int x = a % b; while(x) { a = x; a ^= b ^= a ^= b; x = a % b; } return b; } 最小公倍数 模板 int lcm(int a, int b){ retu 阅读全文
posted @ 2024-05-08 13:26 ihuahua1415 阅读(116) 评论(0) 推荐(0) 编辑
摘要:数据结构 链表 struct结构体构造链表 //定义ListNode结构、三种构造函数 struct ListNode { int val; ListNode *next; ListNode() : val(0), next(nullptr) {} ListNode(int x) : val(x), 阅读全文
posted @ 2024-05-08 13:25 ihuahua1415 阅读(17) 评论(0) 推荐(0) 编辑
摘要:前缀和 一维前缀和 S[i] = a[1] + a[2] + ... a[i] a[l] + ... + a[r] = S[r] - S[l - 1] // 注意,S从1开始比较好 二维前缀和 S[i, j] = 第i行j列格子左上部分所有元素的和 以(x1, y1)为左上角,(x2, y2)为右下 阅读全文
posted @ 2024-05-08 13:25 ihuahua1415 阅读(13) 评论(0) 推荐(0) 编辑
摘要:快速排序 快排模板(以j为分界) 快排属于分治算法,分治算法都有三步: 1.分成子问题 2.递归处理子问题 3.子问题合并 void quick_sort(int q[], int l, int r) { // 递归的终止情况 if(l >= r) return; // 第一步:分成子问题 int 阅读全文
posted @ 2024-05-08 13:24 ihuahua1415 阅读(3) 评论(0) 推荐(0) 编辑
摘要:快速幂 暴力解法 基本思路:对于n组数据,分别循环b次求出a^b mod p #include <iostream> using namespace std; int main() { int n; cin >> n; while(n -- ) { int a, b, p; long long re 阅读全文
posted @ 2024-05-08 13:24 ihuahua1415 阅读(7) 评论(0) 推荐(0) 编辑
摘要:快读模板 getchar() inline int read() { int s = 0, w = 1; // s数值 w符号 char ch = getchar(); while(ch < '0' || ch > '9') { if(ch == '-') w *= -1; ch = getchar 阅读全文
posted @ 2024-05-08 13:24 ihuahua1415 阅读(6) 评论(0) 推荐(0) 编辑
摘要:哈希 字符串哈希 原理 核心思想:将字符串看成P进制数,P的经验值是131或13331,取这两个值的冲突概率低 小技巧:取模的数用2^64,这样直接用unsigned long long存储,溢出的结果就是取模的结果 typedef unsigned long long ULL; const int 阅读全文
posted @ 2024-05-08 13:23 ihuahua1415 阅读(19) 评论(0) 推荐(0) 编辑
摘要:归并排序 模板 const int N = 1e6 + 10; int a[N], tmp[N]; // 定义一个缓存数值 void merge_sort(int q[], int l, int r) { if(l >= r) return; int mid = l + r >> 1; merge_ 阅读全文
posted @ 2024-05-08 13:23 ihuahua1415 阅读(5) 评论(0) 推荐(0) 编辑
摘要:二分 浮点数二分 模板 bool check(double x) {/* ... */} // 检查x是否满足某种特性 double bsearch_3(double l, double r) { const double eps = 1e-6; while(r - l > eps) { doubl 阅读全文
posted @ 2024-05-08 13:23 ihuahua1415 阅读(6) 评论(0) 推荐(0) 编辑
摘要:岛屿类问题通用解法 https://leetcode.cn/problems/number-of-islands/solutions/211211/dao-yu-lei-wen-ti-de-tong-yong-jie-fa-dfs-bian-li- 阅读全文
posted @ 2024-05-08 13:22 ihuahua1415 阅读(7) 评论(0) 推荐(0) 编辑
摘要:并查集 并查集模板 包含路径压缩+小挂大 const int MAXN = 1e5 + 1; int father[MAXN]; // 存父亲节点 father[1] =2 指的是1节点的父亲为2 int size[MAXN]; // 存每个集合的大小 int stack[MAXN]; // int 阅读全文
posted @ 2024-05-08 13:21 ihuahua1415 阅读(3) 评论(0) 推荐(0) 编辑
摘要:sort等常用方法和技巧 sort sort(first_pointer,first_pointer+n,cmp) 原理:sort并不是简单的快速排序,它对快速排序进行了优化。此外,它还结合了插入排序和堆排序。系统会根据数据形式和数据量自动选择合适的排序方法。它每次排序中不只选择一种方法,比如给一个 阅读全文
posted @ 2024-05-08 13:20 ihuahua1415 阅读(82) 评论(0) 推荐(0) 编辑
摘要:n皇后问题 位运算版本(返回可能数) int totalqueen(int n) { if(n < 1) return 0; // n = 5 // 1 << 5 = 0...100000 - 1 // limit = 0...011111; // n = 7 // limit = 0...0111 阅读全文
posted @ 2024-05-08 13:20 ihuahua1415 阅读(10) 评论(0) 推荐(0) 编辑
摘要:C++容器 bitset 构造函数 //1.默认构造函数 :0 bitset<10> a; //a:0000000000 //2.用一个数值初始化 //(1)当用一个数值去构造的时候,其实就是将数值在内存中的存储方式显示出来。(数值在内存中是以补码形式存储的) //(2)若bitset的位数n小于数 阅读全文
posted @ 2024-05-08 13:20 ihuahua1415 阅读(37) 评论(0) 推荐(0) 编辑

阅读目录(Content)

此页目录为空

*/
点击右上角即可分享
微信分享提示