这几天在做区间dp和背包dp,感觉很难,好几次都要崩溃了,感觉做不动题了。
但是还是坚持了下了,ac了几道题,但是还远远不够。总结一下这几天做题学到的新知识。
1.离散化:
离散化就是将把无限空间中的有限个体映射到有限的空间去,通过离散化可以大大的提高运算效率。
2.unique:
unique是一个去重函数,它的作用是将容器中相邻的重复的元素去重。但不是删去,保留原数组大小,将重复的元素放在容器后面(会改变原容器中的元素情况,不是严格的将重复的元素放到后面,例如4 4 6 6 9 去重后为4 6 9 6 9),返回值为去重后的为地址。
3.模运算规则:
模运算与基本四则运算有些相似,但是除法例外。其规则如下:
(a + b) % p = (a % p + b % p) % p (1)
(a – b) % p = (a % p – b % p) % p (2)
(a * b) % p = (a % p * b % p) % p (3)
(a^b) % p = ((a % p)^b) % p (4)
结合律:
((a+b) % p + c) % p = (a + (b+c) % p) % p (5)
((ab) % p * c)% p = (a * (bc) % p) % p (6)
交换律:
(a + b) % p = (b+a) % p (7)
(a * b) % p = (b * a) % p (8)
分配律:
((a +b)% p * c) % p = ((a * c) % p + (b * c) % p) % p (9)
重要定理:
若a≡b (% p),则对于任意的c,都有(a + c) ≡ (b + c) (%p);(10)
若a≡b (% p),则对于任意的c,都有(a * c) ≡ (b * c) (%p);(11)
若a≡b (% p),c≡d (% p),则 (a + c) ≡ (b + d) (%p),(a – c) ≡ (b – d) (%p),
(a * c) ≡ (b * d) (%p),(a / c) ≡ (b / d) (%p);
模运算规则为转载内容https://blog.csdn.net/CHRISTINA_ERZA/article/details/52194031