算法比赛+刷题小技巧总结
算法总结
--由于刚开始写一些正规的算法题,所以写下这些东西来记录自己学的新东西
1.针对数据比较大的数,long类型的数据已经满足不了了,所以需要使用long long型数据,一般在题目条件中都有暗示。
用法:long long a;
scanf("%lld",&bb);
2.常用库函数调用:
a) #include<algorithm>
i. 常用函数:max();
ii. sort(a,a+n,bmp);默认为升序
b) #include<cstring>
i. 常用函数:memset(str,0,sizeof(str));数组初始化
c) #include<vector>
1 创建一维vector:
2
3 a) vector<int> nums;//不指定长度
4
5 b) vector<int> nums(n); // 指定长度为n
6
7 nums.size()显示数组的长度
8 nums.push_back(1);//直接从数组末端添加
反向迭代(头尾交换):
c.rbegin() 返回一个逆序迭代器,它指向容器c的最后一个元素
c.rend() 返回一个逆序迭代器,它指向容器c的第一个元素前面的位置
创建二维数组:
a.push_back({});//创建数组的行
a[level].push_back(root->val);//在该行添加元素
3.bool函数的自身默认返回值为true。
a) 判断相等的时候可以用,将所有的情况都定为false,那么剩下的就是true。
i.
Cout<<a(); 返回值为true