博客
关于我
Codeforces Beta Round #17 D. Notepad 欧拉降幂
阅读量:632 次
发布时间:2019-03-14

本文共 1640 字,大约阅读时间需要 5 分钟。

原题链接:

目录

题意

求 (b-1) * b n-1 % c,b∈[2,101000000 ],n∈[1, 101000000 ]

分析

非常裸的欧拉降幂

在这里插入图片描述
根据定义可以化简n-1,特殊的b小于φ(m)的情况注意一下

b直接边读入边取膜即可

Code

#include 
using namespace std;//#define ACM_LOCAL#define fi first#define se second#define il inline#define re registertypedef long long ll;typedef pair
PII;typedef unsigned long long ull;const int N = 2e5 + 10;const int M = 1e6 + 10;const ll INF = 1e18 + 5;const double eps = 1e-5;const int MOD = 998244353;ll init(ll n) { ll m = (int)sqrt(n + 0.5); ll ans = n; for (ll i = 2; i <= m; ++ i) { if (n % i == 0) { ans = ans / i * (i - 1); while(n % i == 0) n /= i; } } if (n > 1) ans = ans / n * (n - 1); return ans;}ll ksm(ll a, ll b, ll mm) { ll res = 1, base = a; while (b) { if (b & 1) res = res * base % mm; base = base * base % mm; b >>= 1; } return res;}void solve() { string b, n; cin >> b >> n; ll c; cin >> c; ll mm = init(c); ll b_1, b_ = 0;//取b-1,b的值 for (int i = 0; i < b.size(); i++) b_ = b_ * 10 + (b[i] - '0'), b_ %= c; b_1 = (b_ - 1 + c) % c; ll n_1 = 0, flag = 0;//取n-1的值 for (int i = 0; i < n.size(); i++) { n_1 = n_1 * 10 + (n[i] - '0'); if (n_1 - 1 >= mm) n_1 %= mm, flag = 1; } n_1 = (n_1 - 1 + mm) % mm; if (flag) n_1 += mm; ll ans = ksm(b_, n_1, c); ans = ans * b_1 % c; if (ans == 0) cout << c << endl; else cout << ans << endl;}signed main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);#ifdef ACM_LOCAL freopen("input", "r", stdin); freopen("output", "w", stdout);#endif solve();}

转载地址:http://pmcoz.baihongyu.com/

你可能感兴趣的文章
mysql中的四大运算符种类汇总20多项,用了三天三夜来整理的,还不赶快收藏
查看>>
mysql中的字段如何选择合适的数据类型呢?
查看>>
MySQL中的字符集陷阱:为何避免使用UTF-8
查看>>
mysql中的数据导入与导出
查看>>
MySQL中的时间函数
查看>>
mysql中的约束
查看>>
MySQL中的表是什么?
查看>>
mysql中穿件函数时候delimiter的用法
查看>>
Mysql中索引的分类、增删改查与存储引擎对应关系
查看>>
Mysql中索引的最左前缀原则图文剖析(全)
查看>>
MySql中给视图添加注释怎么添加_默认不支持_可以这样取巧---MySql工作笔记002
查看>>
Mysql中获取所有表名以及表名带时间字符串使用BetweenAnd筛选区间范围
查看>>
Mysql中视图的使用以及常见运算符的使用示例和优先级
查看>>
Mysql中触发器的使用示例
查看>>
Mysql中设置只允许指定ip能连接访问(可视化工具的方式)
查看>>
mysql中还有窗口函数?这是什么东西?
查看>>
mysql中间件
查看>>
MYSQL中频繁的乱码问题终极解决
查看>>
MySQL为Null会导致5个问题,个个致命!
查看>>
MySQL为什么不建议使用delete删除数据?
查看>>