牛客小白月赛1 C 分元宵【快速幂】
2018-03-18 10:32
357 查看
题目链接
https://www.nowcoder.com/acm/contest/85/C
思路
有 A 种 元宵馅,B 种元宵皮
所以 我们可以认为 有Q = A * B 种 元宵
有 C 张桌子 每张桌子上有 D 个碗
所以 我们可以认为 一共有W = C * D 种位置
两种不同方式的鉴定 是 至少存在一个相同的位置 上面的 元宵 是不同的
我们可以认为每个位置 都有Q种选择 所以最后的答案 应该是 Q^W 然后要取模 就用快速幂
AC代码
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; }
相关文章推荐
- [牛客小白月赛4 H] 相邻的糖果
- 牛客小白月赛1 A 简单题 【数学】
- 牛客小白月赛1 B 简单题2 【数学】
- 牛客小白月赛1 E 圆与三角形 【数学】
- 牛客小白月赛1 H 写真がとどいています 【循环】
- 牛客小白月赛1 J おみやげをまらいました 【MAP】
- 牛客小白月赛1 A题 Etéreo 是个爱学习的好孩子
- 牛客小白月赛1 I あなたの蛙が帰っています【卡特兰数应用】
- 牛客小白月赛1题目题解
- 快速排序5分钟快速学习(小白指南)
- CentOS6.8下简单快速安装SVN-测试小白的福利
- 小白快速入手Asp.Net WebApi2
- vue小白快速入门
- vue小白快速入门
- [图文教程] 包车预约App - 用小白接口快速开发App
- LINUX下 svn服务器快速搭建与使用--小白教程
- 小白快速变大神,零基础菜鸟应该怎么学编程
- spring环境搭建&spring快速入门---【小白系列】0基础到熟练应用spring框架(一)
- 小白教程 | 利用Github Pages快速搭建个人博客
- zoj 月赛B题(快速判断一个大数是否为素数)