- 博客(30)
- 资源 (1)
- 收藏
- 关注
原创 c++中string常用函数
五、replace(begin,length,string s) : 用于把下标为begin,长度为length的字串替换为s。一、substr(begin,length)字符串截取函数,用于截取字符串中以begin为下标长度为length的子串。四、erase(begin,length) : 用于删除字符串的从begin下标开始长度为length的字符串。二、find(char c) 查找字符串中是否存在字符c,如果找到就返回下标,否则返回负1.:用于把非string类的数据类型转化为string类。
2024-04-18 23:09:00 269
原创 STL中queue和dequeue的区别
只能在队尾插入元素,队首删除元素,但可以查看队首和队尾元素。二、dequeue双端队列。可以双端插入和删除元素。
2024-03-23 17:15:41 356
原创 C++部分STL
1. 优先队列是一种容器适配器,保证了第一个元素总是整个优先队列中。1.set就是集合,STL的set用二叉树实现,集合中的。,缺省状态为vector;Functional是。2.时间复杂度是O ( log2n ),并且是排好序的(默认按键值。,Container代表。
2024-03-17 15:38:36 380
原创 日期相关问题
求闰年函数:(闰年分为普通润年和世纪闰年,普通闰年年分是4倍数不是100倍数,世纪闰年是400的倍数)三、计算从公元1年开始开始,一直到今天的总天数。一、平年:365天,2月28天。二、闰年:366天,2月29天。
2024-03-14 22:10:45 293 1
原创 算法—差分
对b数求前缀和就是a数组,如:a[2] = b[1] + b[2] = a[1] + a[0] + a[2] - a[1] = a[2];a数组为原数组,我们建立b数组(差分数组)b[1] = a[1] - a[0];所以 b[l] += c,就是a[l]~a[n]都加上c;b[r + 1] -= c,就是a[r + 1]~a[n] 都减去c;接下来输入m个操作,每个操作包含三个整数l, r, c,表示将序列中[l, r]之间的每个数加上c。
2024-03-13 18:15:58 276 1
原创 常见位运算
将一个数在二进制下整体向左移位,将一个数在二进制下整体向右移位.为 1 时,得到的结果为 1.为 1 时,得到的结果为 1.当两个数在二进制下对应位数上。当两个数在二进制下对应位数上。当两个数在二进制下对应位数上。时,得到的结果为 1.
2024-03-09 16:46:47 150 1
原创 快速乘及相关快速幂
是利用乘法分配律将a*b分解成多个式子相加(将后面一个乘数转化为二进制的形式计算)求解。例如:12*11=12*1011(2)=12*2^3+12*2^1+12*2^0=96+24+12=132。快速乘应用原因:当两个大数进行相乘进行取模(a*b%c)时,运算a*b可能会爆long long的范围,这时候就需要用到。注意:快速乘解决a*b%c算术溢出问题。算法解决算术溢出的问题。
2024-03-03 11:51:23 252
原创 快速幂模板算法
1、当指数是偶数时,我们可以让指数除以2,底数乘以底数a^32=a^2*16=(a*a)^16。2、当指数是奇数时,我们可以将指数变为奇数a^33 = a^32 * a。快速幂目的:用更短的时间求出a^b(尤其是b特别大的时候)
2024-03-03 11:16:28 227
原创 int,long long取值范围
一、int 都是32位,数值范围为-2147483648~2147483647(-2^32~2^32-1),也就是21亿左右(10^9)。二、long long,数值范围(-2^63~2^63-1),也就是9e18,
2024-03-03 10:50:26 7650
原创 二分(模板+条件)
比如,要a[]数组中,从[1,n]中第一个小于s的数的下标,pos=lower_bound(a+1,a+n+1,s,cmp)-a;lower_bound(查找的起始位置,查找的终止为止,需要查找的数 )是返回第一个大于等于需要查找的数的数的地址。upper_bound(查找的起始位置,查找的终止为止,需要查找的数 )是返回第一个大于需要查找的数的数的地址。可以通过修改比较器,查找第一个小于或小于等于某个数的地址,数组需要从大到小排列。注意上面的两种用法都需要原数组是小到大排列的有序数组。
2024-02-16 11:43:05 175 1
原创 数学—素数(质数筛)
1.暴力(为什么只判到sqrt(n),becase 若n为素数怎么判都对,若n为非素数,n = a * b,其中必有 a,b至少有一个 <= sqrt(n)(若a,b>= sqrt(n),a*b > n,不成立),即在<=sqrt(n)范围内若是合数必被检测到筛选出去)2.埃氏筛(标记合数,留下素数)3.欧拉晒(O(n)的优化)
2023-08-08 10:56:37 49
原创 小知识点总结
int 最大值0x7fffffff(INT_MAX),最小值0x80000000(INT_MIN);求容器最值 int ma = *max_element(a.begin(),a.end());//取X的第i位的二进制数是什么 x>>k&1(前面的模板)i >= 0 和 ~i相同。
2023-07-25 09:52:19 72
原创 图论--拓扑排序
如图,就是先找到入度为0的点,找到与期所连接的边,去除边即2、3入读减一,再把入读为0的点加入队列,重复操作,直到最后。拓扑排序要解决的问题是给一个有向无环图的所有节点排序。
2023-07-20 10:18:17 86
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人