我的算法不可能这么简单
ACM
C++
Eloik
人工智能、大数据
展开
-
我的算法不可能这么简单—珂朵莉树
珂朵莉是世界上最幸福的女孩下面进入正题下面进入正题起源珂朵莉树原名老司机树(Old Driver Tree,ODT),由2017年一场CF比赛中提出的数据结构,因为题目背景主角是《末日时在做什么?有没有空?可以来拯救吗?》的主角珂朵莉,因此该数据结构被称为珂朵莉树。题目简述(原题请转->CF896C Willem, Chtholly and Seniorious)请你写一种奇怪的数据结构,支持:1 l r x :将 [l,r] 区间所有数加上 x2 l r x :将 [原创 2020-10-27 18:48:51 · 7699 阅读 · 0 评论 -
我的算法不可能这么简单—ST表
文章目录稀疏表题目ST表实现稀疏表稀疏表 (sparse table)又称 ST表它可以在 O(nlog2n)O(nlog_2 n)O(nlog2n)内预处理,O(1)内查询: 1. 区间最大值 2. 区间最小值 3. 区间最大公约数 4. 区间最小公倍数ST表为离线算法,因此区间给定后,不能进行修改,否则整张表将要重新计算,时间复杂度会变得非常高。对于带有修改的操作可以使用线段树或树状数组。ST表依旧被广为使用的原因是其优秀的时间复杂度,以及码量少。原创 2020-12-03 12:11:38 · 337 阅读 · 1 评论 -
我的算法不可能这么简单—单调栈
文章目录原创 2020-11-21 00:21:06 · 1466 阅读 · 1 评论 -
我的算法不可能这么简单—单调队列
文章目录题目暴力做法单调队列代码题目这里以洛谷的 P1886 滑动窗口 /【模板】单调队列 为例暴力做法读完题目后我们立马就能想到暴力的方法,每次循环 [i , i+k-1] (i>=1)这个区间,找到区间内的最小值和最大值。而且代码非常容易写出。暴力代码:#include <bits/stdc++.h>using namespace std;#define int long longconst int maxn = 1e6+9;int n,k;i原创 2020-11-16 22:23:30 · 1701 阅读 · 0 评论 -
我的算法不可能这么简单—矩阵快速幂|取模
文章目录学前准备矩阵乘法矩阵快速幂例题洛谷P1962 [斐波那契数列](https://www.luogu.com.cn/problem/P1962)洛谷P1939 [【模板】矩阵加速(数列)](https://www.luogu.com.cn/problem/P1939)洛谷P1306 [斐波那契公约数](https://www.luogu.com.cn/problem/P1306)学前准备学习本算法前,请务必确保已经掌握 快速幂 | 快速幂取模 内容!请先AC本题:洛谷P1226 【模板】快速幂原创 2020-11-05 13:00:28 · 2251 阅读 · 0 评论 -
我的算法不可能这么简单—快速幂|取模
文章目录快速幂概念快速幂算法实现分治思想位运算思想快速幂取模模运算公式分治思想算法取模位运算思想算法取模快速幂概念幂运算 an 即 n 个 a 相乘。快速幂就是高效的算出 an 。 当 n 很大时,如 n = 109 ,计算时间会很长,且结果会很大,常常超过变量类型的最大值。下面先考虑如何缩短计算时间,如果用暴力的方法直接算 an ,即逐个做乘法,时间复杂度是 O(n) ,即使能算出来,也会超时。解决结果过大超过变量范围的问题,请见 高精度算法快速幂算法实现分治思想位运算思想快速幂取模原创 2020-05-27 17:25:38 · 7026 阅读 · 26 评论 -
我的算法不可能这么简单—广度优先搜索BFS
文章目录原创 2020-06-05 22:43:17 · 9812 阅读 · 33 评论 -
我的算法不可能这么简单—扩展欧几里得
文章目录原创 2020-05-18 17:34:21 · 9033 阅读 · 24 评论 -
我的算法不可能这么简单—最大公约数和最小公倍数
文章目录两个数的最大公约数 GCD1.辗转相除法2.内置函数两个数的最小公倍数 LCM多个数的最大公约数多个数的最小公倍数两个数的最大公约数 GCD整数 a 和 b 的最大公约数记为 gcd a , b)1.辗转相除法递归版int GCD(int a,int b){ return b == 0 ? a : GCD(b , a % b);}短小精悍非递归版int GCD(int a,int b){ while(b != 0) { int原创 2020-05-17 16:58:10 · 11205 阅读 · 17 评论 -
我的算法不可能这么简单—最长递增子序列(LIS)
文章目录最长递增子序列最长递减子序列(不递增)最长递增子序列最长递增子序列(Longest Increasing Subsequence,LIS)问题:给定一个长度位 N 的数组,找出一个最长的单调递增子序列。例如一个长度位 7 的序列 A = {5,6,7,4,2,8,3},它的最长的单调递增子序列为 {5,6,7,8},长度为4。最长递减子序列(不递增)...原创 2020-02-25 15:10:50 · 10377 阅读 · 1 评论 -
高精度减法
题目描述高精度减法。输入格式两个整数 a,b(第二个可能比第一个大)。输出格式结果(是负数要输出负号)。输入输出样例输入 #121输出 #11说明/提示20% 数据 a,b 在 long long 范围内;100% 数据 0<a,b<1010086#include<bits/stdc++.h>using namespace std;typedef long long ll;const int MAXSIZE = 10100原创 2020-09-19 10:40:59 · 1771 阅读 · 0 评论 -
高精度加法
题目描述高精度加法,相当于a+b problem,不用考虑负数.输入格式分两行输入。a,b ≤10500输出格式输出只有一行,代表a+b的值#include<bits/stdc++.h>using namespace std;typedef long long ll;const int MAXSIZE = 1000;//最大位数string stra,strb;int a[MAXSIZE],b[MAXSIZE],c[MAXSIZE];//模拟竖式计算in原创 2020-09-18 20:42:38 · 1701 阅读 · 0 评论