摘要: P11655 题解 题目传送门 题目描述 给定两个非负整数 n 和 m,计算所有包含 n 个 0 和 m 个 1 的 01 字符串的极长颜色段数之和。 极长颜色段的定义是连续相同字符的最大子串。例如: 0011 的极长颜色段数为 2(两个 0 和两个 1) 0101 的极长颜色段数为 4(每个字符交 阅读全文
posted @ 2025-02-02 23:45 DomiSun 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 快读 #include <cstdio> #include <cstring> inline int read() { int x = 0, f = 1; char c = getchar(); while (c < '0' || c > '9') { if (c == '-') f = -1; c 阅读全文
posted @ 2024-10-29 21:23 DomiSun 阅读(55) 评论(0) 推荐(0) 编辑
摘要: 单调栈 & 单调队列 单调栈 引入 单调栈是什么?顾名思义,单调栈即满足单调性的栈结构,与单调队列相比,其只在一端进行进出。 过程 插入 将一个元素插入单调栈时,为维护栈的单调性,需要在保证将该元素插入到栈顶后整个栈满足单调性,并且使弹出的元素最少 伪代码 insert x while !sta.e 阅读全文
posted @ 2024-10-07 21:22 DomiSun 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 堆的性质 1.堆是一颗完全二叉树 2.堆的顶端一定是“最大”,最小”的,但是要注意一个点,这里的大和小并不是传统意义下的大和小,它是相对于优先级而言的,当然你也可以把优先级定为传统意义下的大小,但一定要牢记这一点,初学者容易把堆的“大小”直接定义为传统意义下的大小,某些题就不是按数字的大小为优先级来 阅读全文
posted @ 2024-10-03 19:29 DomiSun 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 模板 for (int i = 0, j = 0; i < n; i ++ ) { while (j < i && check(i, j)) j ++ ; // 具体问题的逻辑 } 常见问题分类: (1) 对于一个序列,用两个指针维护一段区间 (2) 对于两个序列,维护某种次序,比如归并排序中合并两 阅读全文
posted @ 2024-09-26 22:35 DomiSun 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 高精度 +-*/ 高精加模板 // C = A + B, A >= 0, B >= 0 vector <int> add(vector <int> &A, vector <int> &B) { if (A.size() < B.size()) return add(B, A); vector<int 阅读全文
posted @ 2024-09-25 22:27 DomiSun 阅读(7) 评论(0) 推荐(0) 编辑
摘要: map #include <bits/stdc++.h> //map的基本操作如下 using namespace std; int main() { // 构造函数 map <string,int> dict; // 下标类型 存储的值的类型 // 插入数据的三种方式 dict.insert(pa 阅读全文
posted @ 2024-09-25 12:09 DomiSun 阅读(9) 评论(0) 推荐(0) 编辑
摘要: lower_bound( ) & upper_bound( ) 1.对于一个从小到大排序的数组 lower_bound(begin,end,x) upper_bound(begin,end,x) 前者查找成功返回的是从地址begin到end-1中第一个大于或者等于x的地址,后者查找成功返回的是从地址 阅读全文
posted @ 2024-09-24 16:02 DomiSun 阅读(30) 评论(0) 推荐(0) 编辑
摘要: 二分 定义 二分查找(binary search),也称折半搜索(half-interval search)、对数搜索(logarithmic search),是用来在一个有序数组中查找某一元素的算法。 过程 以在一个升序数组中查找一个数为例。 它每次考察数组当前部分的中间元素,如果中间元素刚好是要 阅读全文
posted @ 2024-09-23 00:37 DomiSun 阅读(54) 评论(0) 推荐(0) 编辑
摘要: 前缀和 一维前缀和 s[i] = a[1] + a[2] + ... a[i] a[l] + ... + a[r] = s[r] - s[l - 1] 二维前缀和 s[i, j] = 第i行j列格子左上部分所有元素的和 以(x1, y1)为左上角,(x2, y2)为右下角的子矩阵的和为: s[x2, 阅读全文
posted @ 2024-09-23 00:25 DomiSun 阅读(7) 评论(0) 推荐(0) 编辑
/* 点击爆炸效果*/
点击右上角即可分享
微信分享提示