![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
基础算法
文章平均质量分 55
zhujunhuan?
全宇宙第一帅,第一强,第一牛,第一(此处省略100000000000000000000000000000000个夸人的词语)
展开
-
c++区间问题大全
给定 n 个区间 [li,ri],要求合并所有有交集的区间。注意如果在端点处相交,也算有交集。输出合并完成后的区间个数。例如:[1,3] 和 [2,6] 可以合并为一个区间 [1,6]。输入格式第一行包含整数 n。接下来 n 行,每行包含两个整数 l 和 r。输出格式共一行,包含一个整数,表示合并区间完成后的区间个数。数据范围输入样例:51 22 45 67 87 9输出样例:3。原创 2022-09-30 19:28:24 · 1637 阅读 · 1 评论 -
c++房间问题(dfs)
题目描述同学们来到了传说中的大理皇宫,看着皇宫外的平面图,大家都想知道大理皇宫到底有多少个房间?其中最大的房间有多大?由于大理皇宫非常大,同学们在雪山上玩得太累了,都点不清房间的数目了,这时聪明的小s同学想到了一个好主意,她说我们把平面图拍下来带回去让小朋友们编个程序数吧!这个主意得到了大家的一致同意,现在你的任务是帮助小s去数一数房间的数目和最大的房间的大小。而且小s在回来的飞机上还想出了一个更难的问题,她想拆掉一堵墙来制造一个更大的房间,如果你能解决这个难题,小s将会额外给你一件奖品。皇宫的平面原创 2022-04-11 15:01:55 · 789 阅读 · 0 评论 -
c++倍增(快速幂)(矩阵快速幂)(LCA)(ST表求RMQ)
快速幂举个例子:2 ^ 10 = 2 ^ 5 * 2 ^ 5 = (2 ^ 2 * 2 ^ 2 * 2) * (2 ^ 2 * 2 ^ 2 * 2) = …代码奉上#include<bits/stdc++.h>#define LL long long#define PP pair<int, int>using namespace std;LL a, b, mod, ans = 1;int main () { ios::sync_with_stdio(0); c原创 2022-03-25 13:24:31 · 1855 阅读 · 0 评论 -
c++前缀和
1 2 3 4 5 6 7 8 9这样一个序列的前缀和是1 3 6 10 15 21 36 45很简单,可以直接得出公式d表示前缀和数组,a表示原数组d[i] = d[i - 1] + a[i];前缀和可以快速求出某以区间的值如:就上面的那个数据,你想求a[2, 5]这个区间里的和,可以用前缀和d[5] - d[1]证明a[2, 5]这个区间里的和是a[2] + a[3] + a[4] + a[5]而d[5] = a[1] + a[2] + a[3] + a[4] + a[5]d[1原创 2022-02-14 11:28:12 · 839 阅读 · 2 评论 -
归并排序c++
总的说,每次分一半来做,就是二分#include<bits/stdc++.h>using namespace std;const int N = 5e5 + 10;long long a[N], n;long long b[N];void GuiBingPaiXu (int l, int r) { if (l >= r) return; int mid = (l + r) >> 1; GuiBingPaiXu (l, mid); GuiBingPaiXu原创 2022-02-10 15:15:27 · 488 阅读 · 0 评论