-
1、c++特征函数 - 1、max_element()、min_element()
被包含于
#include<algorithm>
- 通过指针或者迭代器来作为起止参数,分别返回最大和最小值
*max_element(a,a+n);
*max_element(a.begin(),a.end()/a.begin()+a.size());
*min_element(a,a+n);
*min_element(a.begin(),a.end()/傻子才那么写);
- 2、lower_bound、upper_bound()
- 二分函数通过指针或迭代器作为起止参数,分别返回大于等于x的第一个数和大于x的第一个数
*lower_bound(a,a+n,x);
*lower_bound(a.begin(),a.end(),x);
*upper_bound(a,a+n,x);
*upper_bound(a.begin(),a.end(),x);
被包含于
#include<algorithm>
int __gcd(int a,int b)
{
return b?__gcd(b,a%b):a;
}
- 上面一句话可以实现函数
- 4、s.substr()
- 两个参数分别代表起始位置,持续长度(算上起始位)
例如:s.substr(1,4);
"abcdefgh"
输出:bcde,也就是代表输出串的长度
-
2、段长度 - 提一点就好,因为10~11是两个数,这样就是r-l+1也就代表说段长度就是r-l+1,一件事从第三天开始持续十天一天赚十块钱,一共赚多少钱赚120块
- 为什么不是130块,因为第三天到第四天赚10块
- 即段间距求段点是r - l + 1
- 段点求段间距而是l + k - 1
-
3、质数范围 - 偶数位除了11没有回文质数且偶数也全不是质数
- 应用:要是让筛出1e+8中的回文质数只需要筛到1e+7就好
- 证明: 设f(n) = 1000…0001,n为偶数 则有 f(n) - 11 = 999…9990,9的个数为n个 ,对于偶数个9,必然被11整除,偶回文数的各个数位可以分解为 n * 100…001(两个1中间若干个0)的形式 而这个 100…001 是能被11整除的
-
210804完结
|