![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数论
文章平均质量分 59
sakurain_
这个作者很懒,什么都没留下…
展开
-
数学-nim博弈、SG函数
公平组合游戏ICG若一个游戏满足:由两名玩家交替行动;在游戏进程的任意时刻,可以执行的合法行动与轮到哪名玩家无关;不能行动的玩家判负;则称该游戏为一个公平组合游戏。NIM博弈属于公平组合游戏,但城建的棋类游戏,比如围棋,就不是公平组合游戏。因为围棋交战双方分别只能落黑子和白子,胜负判定也比较复杂,不满足条件2和条件3。NIM游戏给定N堆物品,第i堆物品有Ai个。两名玩家轮流行动,每次可以任选一堆,取走任意多个物品,可把一堆取光,但不能不取。取走最后一件物品者获胜。两人都采取最优策略,问先原创 2021-03-23 21:58:50 · 204 阅读 · 0 评论 -
数论-组合数、卢卡斯定理
组合数以下求CabC_a^bCab的情况一(N2N^2N2)使用递推式Cab=Ca−1b+Ca−1b−1C_a^b=C_{a-1}^b+C_{a-1}^{b-1}Cab=Ca−1b+Ca−1b−1求解阶乘%1e9+7T=105T=10^5T=1051≤b≤a≤20001\leq b\leq a\leq 20001≤b≤a≤2000#include<bits/stdc++.h>using namespace std;int c[2010][2010];const in原创 2021-02-09 11:09:25 · 280 阅读 · 0 评论 -
数论-中国剩余定理、高斯消元
中国剩余定理(先挖坑)高斯消元 O(n3)O(n^3)O(n3)求解线性方程组初等行列变换把某一行乘以一个非0的数(等式俩边同时乘以一个非零数)交换某2行(方程交换位置)把某行的若干倍加到另一行上去(把一个方程的若干倍加到另一个方程上去)变换成上三角形式后完美阶梯型----------唯一解0=非0 ----------------无解0=0--------------------无穷多组解算法步骤枚举每一列c找到当前列绝对值最大的一行将该行换到最上面将该行第原创 2021-01-31 16:37:59 · 212 阅读 · 0 评论 -
数论-裴蜀定理、拓展欧几里得(exgcd)
裴蜀定理对于任意正整数aaa,bbb,那么一定存在非零整数xxx,yyy,使得ax+by=gcd(a,b)ax+by=gcd(a,b)ax+by=gcd(a,b)exgcd推导过程:#include<bits/stdc++.h>using namespace std;int exgcd(int a,int b,int &x,int &y){ if(!b){ x=1,y=0; return a; }原创 2021-01-31 15:38:44 · 182 阅读 · 0 评论 -
数论-快速幂、逆元
快速幂原理:幂的二进制分解复杂度:O(log(k))O(log(k))O(log(k))二进制为111时,∗a*a∗a每次aaa递推为a∗aa*aa∗a求aaa的kkk次方modpmod pmodp#include<bits/stdc++.h>using namespace std;#define ll long longll qmi(ll a,ll k,ll p){ ll res=1; while(k){ if(k&原创 2021-01-28 13:48:26 · 158 阅读 · 0 评论 -
数论-欧拉函数
欧拉函数定义:从111~nnn中与nnn互质的数的个数,a,ba,ba,b互质即gcd(a,b)=1gcd(a,b)=1gcd(a,b)=1公式:N=p1φ1∗p2φ2∗......∗pkφkN=p_1^{\varphi 1}*p_2^{\varphi 2}*......*p_k^{\varphi k}N=p1φ1∗p2φ2∗......∗pkφkφ(n)=N∗(1−1p1)∗(1−1p2)∗......∗(1−1pk)\varphi (n)=N*(1-\frac{1}{p_1})*(1-\原创 2021-01-27 22:39:57 · 110 阅读 · 0 评论 -
Codeforces Round #677 (Div. 3) E. Two Round Dances
题意:N个人两等分,分别在两个序列中跳舞。N保证为偶数。跳舞过程中,因为是围在一起跳舞的,所以一个序列可以通过旋转或得到另一个序列,则认为这两个序列是相同的。问共有多少种跳舞的分配方法序列。题解:code:#include<bits/stdc++.h>using namespace std;#define ll long long int main(){ ll n; cin>>n; ll res=1; for(int i=1;i&.原创 2020-10-21 20:59:37 · 111 阅读 · 0 评论