摘要: 丢番图方程形如ax+by=c,其中a,b,c为整数的方程,现在要求x,y的整数解。如2x+3y=5显然这个方程有整数解(x=1,y=1)同时有无穷多个解。如2x+4y=5显然这个方程没有整数解。下面的定理告诉我们这种方程有解的条件及所有解的形式。定理1:设a,b是整数且d=(a,b)。如果c不能被d 阅读全文
posted @ 2022-03-09 07:47 心悟&&星际 阅读(862) 评论(0) 推荐(0)
摘要: C++中的unique(),unique_copy()的用法作用:去除重复的相邻的重复的元素,即如果两个元素相同但是不相邻,则不会去除unique 将重复的元素没有删除,而是放在了最后面,故原来是多少元素,去重后还是多少元素,保存了剔除的元素unique_copy 是将去重后的元素重新放到另外一个数 阅读全文
posted @ 2022-03-08 21:56 心悟&&星际 阅读(252) 评论(0) 推荐(0)
摘要: P7072 [CSP-J2020] 直播获奖 #include<cstdio> #include<algorithm> #include<vector> #include<cmath> #include<functional> using namespace std; vector <int> a; 阅读全文
posted @ 2022-03-08 21:52 心悟&&星际 阅读(143) 评论(0) 推荐(0)
摘要: P7072 [CSP-J2020] 直播获奖基本思想:求前几名是多少分。 #include<algorithm> #include<iostream> using namespace std; const int maxn=100010; int a[maxn]; int t[610]; int m 阅读全文
posted @ 2022-03-08 21:48 心悟&&星际 阅读(55) 评论(0) 推荐(0)
摘要: c++ STL中sort函数是一个快速排序函数可以对任何类型的数据进行排序。STL,C++中的标准模板库, 使用起来方便并且效率较高;#include<algorithm>//用sort要包含这个头文件 一:对基本类型数组从小到大排序sort( 数组名+n1,数组名+n2);将数组中下标从n1到n2 阅读全文
posted @ 2022-03-08 21:44 心悟&&星际 阅读(191) 评论(0) 推荐(0)
摘要: P4447 [AHOI2018初中组]分组题解在数轴上统计各个实力值出现的次数。我们要研究如何使人数最少的组别人数最大——也就是如何使长度最短的线长度最大。不妨令每一次画线都从最左边一列开始。每次都画到底,可以吗?显然,大多数情况下这不是最优解。最后可能会剩下一个方块“一枝独秀”:出现这种情况的根本 阅读全文
posted @ 2022-03-08 20:58 心悟&&星际 阅读(82) 评论(0) 推荐(0)
摘要: P4995 跳跳!贪心思想,在石头中最大和最小来回跳。 #include<bits/stdc++.h> using namespace std; int main() { vector<int> h; int n; cin>>n; for (int i=1;i<=n;i++) { int x; ci 阅读全文
posted @ 2022-03-08 15:40 心悟&&星际 阅读(33) 评论(0) 推荐(0)
摘要: P2240 【深基12.例1】部分背包问题按价值比从大到小排序,每次选择价值比大的全部物品,或按比例选取部分物品直到背包为空为止。 #include<bits/stdc++.h> using namespace std; struct node{ int zl; int jz; bool opera 阅读全文
posted @ 2022-03-08 08:55 心悟&&星际 阅读(56) 评论(0) 推荐(0)
摘要: P1478 陶陶摘苹果(升级版)由于要摘到最多的苹果,所以先选择摘一个苹果需要的力气 小的苹果。 //P1478 陶陶摘苹果(升级版) #include<iostream> #include<algorithm> #include<vector> using namespace std; struc 阅读全文
posted @ 2022-03-08 08:38 心悟&&星际 阅读(77) 评论(0) 推荐(0)
摘要: P1094 [NOIP2007 普及组] 纪念品分组如果当前的最小物品+最大物品不超过上限,这两个物品合并,如果不行最大物品只能单独为一件不能与其它的任何一个合并,这样合并最后就是最少的分组。本题用到的知识点有,排序,双指针,贪心思想。 //P1094 纪念品分组 #include<iostream 阅读全文
posted @ 2022-03-08 08:23 心悟&&星际 阅读(98) 评论(0) 推荐(0)
摘要: 走楼梯问题题目:有一座高度是10级台阶的楼梯,从下往上走,每跨一步只能向上1级或者2级台阶。要求用程序来求出一共有多少种走法。比如,每次走1级台阶,一共走10步,这是其中一种走法。我们可以简写成 1,1,1,1,1,1,1,1,1,1。再比如,每次走2级台阶,一共走5步,这是另一种走法。我们可以简写 阅读全文
posted @ 2022-03-07 21:12 心悟&&星际 阅读(270) 评论(0) 推荐(0)
摘要: P3368 【模板】树状数组 2由于差分数组的前缀和,为原数组的值,用树状数组去维护原数组的差分数组,区间[l,r]修改为t[l]+=delta,t[r+1]-=delta,单点s的查询变成区间[1-s]查询,变成求[1-s]的前缀和。 //P3368【模板】树状数组 2 //P3374 【模板】树 阅读全文
posted @ 2022-03-07 17:26 心悟&&星际 阅读(97) 评论(0) 推荐(0)
摘要: P1531 I Hate It区间最大值,区间查询最大值,单点更新,本解使用树状数组求解 #include <iostream> #include <cstdio> #include <cstdlib> using namespace std; const int MAXN = 3e5; int a 阅读全文
posted @ 2022-03-07 17:01 心悟&&星际 阅读(50) 评论(0) 推荐(0)
摘要: P1531 I Hate It区间最大值,区间查询最大值,单点更新 //P1531 I Hate It #include<cstdio> #include<algorithm> #include<iostream> using namespace std; #define lson l,m,rt<< 阅读全文
posted @ 2022-03-07 16:59 心悟&&星际 阅读(40) 评论(0) 推荐(0)
摘要: P1204 [USACO1.2]挤牛奶Milking Cows从暴力思想出发,建立一个int数组b用来标记哪些时间有人挤牛奶,哪些时间空闲,然后从有挤牛奶的时间开始统计每一个段挤牛奶时间和空闲时间,并求最长挤牛奶时间和最长空闲时间,这样做时间复杂度为O(n*s),s为挤牛奶的时间长度,会TLE。如果 阅读全文
posted @ 2022-03-07 16:06 心悟&&星际 阅读(176) 评论(0) 推荐(0)
摘要: P1204 [USACO1.2]挤牛奶Milking Cows从暴力思想出发,建立一个bool数组用来标记哪些时间有挤牛奶,哪些时间空闲,然后从有挤牛奶的时间开始统计每一个段挤牛奶时间和空闲时间,并求最长挤牛奶时间和最长空闲时间,这样做时间复杂度为O(n*s),s为挤牛奶的时间长度,会TLE。如果优 阅读全文
posted @ 2022-03-07 15:47 心悟&&星际 阅读(226) 评论(0) 推荐(0)
摘要: P3374 【模板】树状数组 1题解:线段树的单点更新,区间查询,注意线段树的结点个数是原数组的4倍 #include<iostream> #include<cstdio> using namespace std; long long s[2000100],a[501000],n,m,dx,dy; 阅读全文
posted @ 2022-03-07 15:13 心悟&&星际 阅读(54) 评论(0) 推荐(0)
摘要: 普通线段树问题引入给定一个序列有n(n<=100000)个元素,有如下两个基本操作查询:给定区间[l..r],求这个区间所有元素的和修改:修改某个元素的值。任务:输出每个查询的值。任务数量m(m<=100000),只有上述两种操作。朴素算法一对于查询任务可以使用循环完成,时间复杂度O(n)。对于修改 阅读全文
posted @ 2022-03-07 14:48 心悟&&星际 阅读(54) 评论(0) 推荐(0)
摘要: P3406 海底高铁题解区间修改可以用差分思想,统计每个点出现次数用前缀和,最后取最小值 #include<bits/stdc++.h> using namespace std; const int maxn=100009; int p[maxn],v[maxn]; long long ans; i 阅读全文
posted @ 2022-03-07 09:37 心悟&&星际 阅读(98) 评论(0) 推荐(0)
摘要: P5638 【CSGRound2】光骓者的荣耀题解:由题意可知枚举i=1~n-k,且i+k~n两段的和求最小值,纯暴力时间O(n2),此题会TLE,预处理前缀和,可以加快两点的和求解时间为O(n),注意数据大小要long long 类型。 #include<bits/stdc++.h> using 阅读全文
posted @ 2022-03-07 08:49 心悟&&星际 阅读(164) 评论(0) 推荐(0)
摘要: P1115 最大子段和 /* P1115 最大子段和 */ #include<cstdio> #include<iostream> using namespace std; int main() { // freopen("p1115_2.in","r",stdin); int ans; int s 阅读全文
posted @ 2022-03-07 08:44 心悟&&星际 阅读(49) 评论(0) 推荐(0)
摘要: 差分数组差分数组就是原数组对应项和它前面那项的差值 。来看一个例子:原数组 a:5,8,4,3,15差分数组 b:5,3,-4,-1,12还是先来看例子:原数组:a:5,8,4,3,15它的前缀和数组:c:5,13,17,20,35它的差分数组:b:5,3,4,1,12它的差分前缀和(就是差分数组的 阅读全文
posted @ 2022-03-06 22:25 心悟&&星际 阅读(121) 评论(1) 推荐(0)
摘要: 前缀和是一种重要的预处理,能大大降低查询的时间复杂度。最简单的一道题就是给定 n 个数和 m 次询问,每次询问一段区间的和。求一个 O(n + m) 的做法。用 O(n) 前缀和预处理,O(m) 询问。一、一维前缀和主要代码 for(int i = 1; i <= n; ++i) sum[i] = 阅读全文
posted @ 2022-03-06 21:40 心悟&&星际 阅读(67) 评论(0) 推荐(0)
摘要: 栈的应用当读到的数时入栈,当读到运算符时,对应数据出栈,计算后再入栈,当读到@时,栈顶为本题的解,这里的栈用C++stl的stack容器,简化代码的实现。 //P1449 后缀表达式 #include<iostream> #include<stack> #include<cstring> using 阅读全文
posted @ 2022-03-06 21:21 心悟&&星际 阅读(48) 评论(0) 推荐(0)
摘要: 穷举法,或称为暴力破解法,其基本思路是:对于要解决的问题,列举出它的所有可能的情况,逐个判断有哪些是符合问题所要求的条件,从而得到问题的解。它也常用于对于密码的破译,即将密码进行逐个推算直到找出真正的密码为止。例如一个已知是四位并且全部由数字组成的密码,其可能共有10000种组合,因此最多尝试100 阅读全文
posted @ 2022-03-06 21:03 心悟&&星际 阅读(490) 评论(0) 推荐(0)
摘要: 算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或 阅读全文
posted @ 2022-03-06 20:57 心悟&&星际 阅读(588) 评论(0) 推荐(0)
摘要: KMP算法是一种字符串模式匹配算法。什么是字符串的模式匹配?给定两个串S=“s1s2s3 …sm”和T=“t1t2t3 …tn”,在主串S中寻找子串T的过程叫做模式匹配,T称为模式。暴力匹配(朴素模式匹配BF)规定i是主串S的下标,j是模式T的下标。现在假设现在主串S匹配到 i 位置,模式串T匹配到 阅读全文
posted @ 2022-03-06 20:42 心悟&&星际 阅读(44) 评论(0) 推荐(0)
摘要: 一、整除1.设a、b是给定的数, b ≠ 0 ,若存在整数c,使得a=bc,则称b整除a,记作b ∣ a ,反之则称b不能整除a,记作b ∤ a。2.一些性质:a. 若 a|b,且 b|c,则 a|c。b. 若 b|a,且 b|c,则b∣(a±c)c.若 c|a,且 c|b,则对于任意整数m、n,有 阅读全文
posted @ 2022-03-06 20:26 心悟&&星际 阅读(233) 评论(0) 推荐(0)
摘要: gcd指的是greatest common divisor就是最大公约数。lcm指的是Least Common Multiple,即最小公倍数。一、最大公约数最大公约数是数论中一个重要的概念设a、b不全为零,同时整除a、b的整数称为他们的公约数,显然a、b的公约数只有有限多个,我们将其中最大的一个称 阅读全文
posted @ 2022-03-06 20:19 心悟&&星际 阅读(411) 评论(0) 推荐(0)
摘要: 定义:在数论,对正整数n,欧拉函数是小于或等于n的正整数中与n互质的数的数目(因此φ(1)=1)。此函数以其首名研究者欧拉命名(Euler’s totient function),它又称为Euler’s totient function、φ函数、欧拉商数等。 例如φ(8)=4,因为1,3,5,7均和 阅读全文
posted @ 2022-03-06 20:02 心悟&&星际 阅读(214) 评论(0) 推荐(0)
摘要: 算术基本定理可表述为:任何一个大于1的自然数 N,如果N不为质数,那么N可以唯一分解成有限个质数的乘积 ,这里P1<P2<P3......<Pn均为质数,其中指数ai是正整数。这样的分解称为 N 的标准分解式。质因子分解代码 #include<iostream> using namespace st 阅读全文
posted @ 2022-03-06 18:53 心悟&&星际 阅读(303) 评论(0) 推荐(0)
摘要: 质数(prime number)又称素数,有无限个。质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。任意大于等于5的素数都与6的倍数相邻。如果n是一个合数,那么n一定有一个不超过sqrt(n)的素因子。判断一个数是否是 阅读全文
posted @ 2022-03-06 18:36 心悟&&星际 阅读(627) 评论(0) 推荐(0)
摘要: P1621 集合 #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #include<cstdlib> #include<cmath> #define maxn 100010 using namespa 阅读全文
posted @ 2022-03-06 18:19 心悟&&星际 阅读(40) 评论(0) 推荐(0)
摘要: P3367 【模板】并查集 #include<iostream> #include<algorithm> using namespace std; const int maxm=10010; int pre[maxm]; int n,m; void make()//初始化 { for (int i= 阅读全文
posted @ 2022-03-06 18:08 心悟&&星际 阅读(37) 评论(0) 推荐(0)
摘要: P1551 亲戚这里给出一个深度优先遍历的算法。O(n)的预处理,每个回答O(1)。 #include<iostream> #include<vector> using namespace std; vector <int> g[5001]; int d[5001]; int cnt=1; void 阅读全文
posted @ 2022-03-06 16:44 心悟&&星际 阅读(22) 评论(0) 推荐(0)
摘要: P1551 亲戚是一题经典的并查集的应用,有亲戚关系的为一个集合。 #include<iostream> using namespace std; const int maxn=5010; int pre[5010]; int n,m,p; void make()//初始化 { for (int i 阅读全文
posted @ 2022-03-06 16:36 心悟&&星际 阅读(35) 评论(0) 推荐(0)
摘要: 并查集(Disjoint-Set)是一种可以动态维护若干个不重叠的集合,并支持合并与查询的数据结构。详细地说,并查集包括如下两个基本操作:1.Get,查询一个元素属于哪一个集合。2.Merge,把两个集合合并成一个大集合。为了具体实现并查集这种数据结构,我们首先需要定义集合的表示方法。在并查集中,我 阅读全文
posted @ 2022-03-06 16:29 心悟&&星际 阅读(146) 评论(0) 推荐(0)
摘要: 排列的概念排列,一般地,从n个不同元素中取出m(m≤n)个元素,按照一定的顺序排成一列,叫做从n个元素中取出m个元素的一个排列(permutation)。特别地,当m=n时,这个排列被称作全排列(all permutation)。排列数p(n,r)=n!/(n-r)!,p(n,n)=n!,0!=1从 阅读全文
posted @ 2022-03-06 08:08 心悟&&星际 阅读(162) 评论(0) 推荐(0)
摘要: 加法原理设事件A有m种产生方式,事件B有n种产生方式,当事件A与事件B产生方式不重叠时,事件A或事件B的产生方式有m+n种。用集合方法描述这个问题可以这样说: 乘法原理 设事件A有m种产生方式,事件B有n种产生方式,当事件A与事件B产生方式彼此独立,事件A与事件B的产生方式有mn种。用集合方法描述这 阅读全文
posted @ 2022-03-06 07:54 心悟&&星际 阅读(228) 评论(0) 推荐(0)
摘要: Hash (散列函数)哈希函数指将哈希表中元素的关键键值映射为元素存储位置的函数。一般的线性表,树中,记录在结构中的相对位置是随机的,即和记录的关键字之间不存在确定的关系,因此,在结构中查找记录时需进行一系列和关键字的比较。这一类查找方法建立在“比较“的基础上,查找的效率依赖于查找过程中所进行的比较 阅读全文
posted @ 2022-03-04 22:22 心悟&&星际 阅读(230) 评论(0) 推荐(0)