前缀和
【a,b】的区间和 presum[b+1]-presum[a]
计算中位数
先说结论,无论数组总个数n为奇数还是偶数,都可以用下式表示
n
u
m
s
[
n
/
2
]
和
n
u
m
s
[
(
n
−
1
)
/
2
]
nums[n/2] 和nums[(n-1)/2]
nums[n/2]和nums[(n−1)/2]
当n = 4时为nums[2]与nums[1]
当n = 5时为nums[2]与nums[2]
题目传送门
整合字符串
s.substr(id,len) 表示从s字符串的下标id处开始的一个长度为len的子字符串。
reverse(s.begin(),s.end());
区间相交、包含或不相交的写法
int l1 = q[0], r1 = q[1], l2 = n * 2 - 1 - q[3], r2 = n * 2 - 1 - q[2];
ans[i] = l1 <= l2 ? check(l1, r1, l2, r2, sum_s, sum_t) : //保证check函数中的第一个区间的左端点更小
check(l2, r2, l1, r1, sum_t, sum_s);
判断是否是正方形的同一斜边
左上角到右下角
x-y为定值
右上角到左下角
x+y为定值
数学不等式取值
如果推出来 x > ( a + b + 1 ) / 2 x>(a+b+1)/2 x>(a+b+1)/2,那么x的取值直接从(a+b+1)/2+1开始取值即可,因为计算机中的除以2为下取整,直接会当为奇数时必然已经变小了。