Open devLupin opened 1 year ago
(a*b)%c = (a%c * b%c)%c
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int a, b, c;
ll foo(ll y)
{
if (y == 1) return a % c;
ll val = foo(y / 2) % c;
if (y % 2 == 0) return val*val%c;
return val*val%c*a%c;
}
int main(void)
{
ios::sync_with_stdio(false);
cin.tie(NULL);
cin >> a >> b >> c;
cout << foo(b);
return 0;
}
순열($nPr$)
조합($nCr$)
DFS, next_permutation
으로 구현 가능
next_permutation
mask
배열 이용r
개는 false
, 이후 true로
fill()
false
가 새로 뽑힌 조합이 된다.const int N=15, R=5;
bool mask[N];
fill(mask + R, mask + N, true);
do {
} while(next_permutation(mask, mask+N);
지수법칙