- 博客(4)
- 收藏
- 关注
原创 Lucas定理 原理、证明及代码模板
一、定理对于素数p,及正整数a、b,当求组合数CabC_a^bCab对p取余时,如果a和b很大(1≤b≤a≤1015)(1≤b≤a≤10^{15})(1≤b≤a≤1015),而p相对较小(1≤p≤105)(1≤p≤10^5)(1≤p≤105)时,我们用Lucas定理来求。结论:Cab≡Capbp⋅Ca%pb%pC_{a}^{b}\equiv C_{\frac ap}^{\frac bp}\cdot C_{a\%p}^{b\%p}Cab≡Cpapb⋅Ca%pb%p (mod p)二、证明首
2021-08-31 18:33:45 409
原创 费马小定理与欧拉定理 原理与证明
一、欧拉定理1、定义若a与n互质,则aφ(n)≡1a^{\varphi (n)} \equiv 1aφ(n)≡1 (mod n)。其中φ(n)\varphi (n)φ(n)指欧拉函数:小于n的正整数中与n互质的个数。2、证明我们假设n的质因子分别是:p1,p2,...,pφ(n)p_1,p_2,...,p_{\varphi(n)}p1,p2,...,pφ(n),记为序列1。若给每一项都乘a,得序列2:ap1,ap2,...,apφ(n)ap_1,ap_2,...,ap_{\varphi(n
2021-08-15 19:50:15 2491 1
原创 Trie数 字典树 算法思想及代码实现
Trie树Trie树又称字典树,是一种简单的树形数据结构,他的主要作用是高效地存储和查找字符串,其实现原理是利用字符串的公共前缀来减少查询时间,最大限度的减少无谓字符的比较,效率高。三个基本性质根节点不包含字符,除根节点外每一个节点都只包含一个字符;从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串;每个节点的所有子节点包含的字符都不相同。存储规则从根节点开始,存一个字符串,先看根节点连接的子结点有没有第一个字母,有的话接着从他往下找第二个字母,以此类推;若没有某一字母,就
2021-08-06 11:52:03 193
原创 c++数组去重
使用c++的STL库函数实现数组去重代码:vector<int> arr; //假设数组是arrarr.erase(unique(arr.begin(),arr.end()),arr.end()); //去重函数都是在algorithm头文件下unique函数是将数组中所有重复元素换到末尾处,并返回不重复元素的尾地址。erase函数是删除地址区间内的数,将重复部分的数删掉,就实现了去重。...
2021-08-05 10:29:45 2186
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人