快速幂
快速幂1.模板ll power(ll a,ll b,ll p) { int ans = 1%p; for(;b;b>>=1){ if(b&1){ ans = ans *a %p; } a = a*a%p; } return ans; } 关于取余操作:1.对于...
快速幂1.模板ll power(ll a,ll b,ll p) { int ans = 1%p; for(;b;b>>=1){ if(b&1){ ans = ans *a %p; } a = a*a%p; } return ans; } 关于取余操作:1.对于...
快速幂1.模板ll power(ll a,ll b,ll p) { int ans = 1%p; for(;b;b>>=1){ if(b&1){ ans = ans *a %p; } a = a*a%p; } return ans; } 2.推导3.相关链接P...
描述:在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上。 你的任务是,对于给定的N,求出有多少种合法的放置方法。遇0结束。思路:DFS。肯定一行只能有一个皇后,那就一行一行的放。样例输入:1850样例输出:19210code:#include<cmath>include<cstdio>...
如何模拟出5个人站在一排所有站法?写出一个5层循环好像就可以了,但是如果是n个人呢,我们不可能每次写一个n层循环。但是深度优先搜索,可以很容易实现这个问题。输入:每次给定一个n,代表n个人,n个人编号是从1到n输出:模拟所有站法。//用搜索实现全排列。 #include<cstdio> #include<cstring> //#include<stack>...
#include<iostream> #include<algorithm> using namespace std; const int maxn = 1000005; int father[maxn]; /*常规并查集模板*/ void make_set(int x) { for(int i=1;i<=x;i++) { fa...