牛客小白月赛1C分元宵【快速幂】

mac2022-06-30  28

题目链接

https://www.nowcoder.com/acm/contest/85/C

思路 有 A 种 元宵馅,B 种元宵皮 所以 我们可以认为 有Q = A * B 种 元宵 有 C 张桌子 每张桌子上有 D 个碗 所以 我们可以认为 一共有W = C * D 种位置 两种不同方式的鉴定 是 至少存在一个相同的位置 上面的 元宵 是不同的 我们可以认为每个位置 都有Q种选择 所以最后的答案 应该是 Q^W 然后要取模 就用快速幂

AC代码

#include <cstdio> #include <cstring> #include <ctype.h> #include <cstdlib> #include <cmath> #include <climits> #include <ctime> #include <iostream> #include <algorithm> #include <deque> #include <vector> #include <queue> #include <string> #include <map> #include <stack> #include <set> #include <numeric> #include <sstream> #include <iomanip> #include <limits> using namespace std; typedef long long ll; typedef unsigned long long ull; typedef pair <int, int> pii; typedef pair <ll, ll> pll; const double PI = 3.14159265358979323846264338327; const double E = 2.718281828459; const double eps = 1e-6; const int INF = 0x3f3f3f3f; const int maxn = 1e5 + 5; ll powerMod(ll x, ll n, ll m) { ll res = 1; while (n > 0){ if (n & 1) res = (res * x) % m; x = (x * x) % m; n >>= 1; } return res; } int main() { ll a, b, c, d, MOD; scanf("%lld%lld%lld%lld%lld", &a, &b, &c, &d, &MOD); a %= MOD; b %= MOD; c *= d; a = a * b % MOD; if (!c && !d) cout << 0 << endl; else cout << powerMod(a, c, MOD) << endl; }

转载于:https://www.cnblogs.com/Dup4/p/9433248.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)