博客
关于我
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/

你可能感兴趣的文章
Nginx负载均衡
查看>>
Nginx负载均衡和F5的区别---系统运维工作笔记001
查看>>
nginx负载均衡和反相代理的配置
查看>>
nginx负载均衡器处理session共享的几种方法(转)
查看>>
nginx负载均衡的5种策略
查看>>
nginx负载均衡的5种策略(转载)
查看>>
nginx负载均衡的五种算法
查看>>
Nginx负载均衡(upstream)
查看>>
nginx转发端口时与导致websocket不生效
查看>>
Nginx运维与实战(二)-Https配置
查看>>
Nginx部署_mysql代理_redis代理_phoenix代理_xxljob代理_websocket代理_Nacos代理_内网穿透代理_多系统转发---记录021_大数据工作笔记0181
查看>>
Nginx配置HTTPS服务
查看>>
Nginx配置Https证书
查看>>
Nginx配置http跳转https
查看>>
Nginx配置ssl实现https
查看>>
nginx配置ssl证书https解决公网ip可以访问但是域名不行的问题
查看>>
Nginx配置TCP代理指南
查看>>
NGINX配置TCP连接双向SSL
查看>>
Nginx配置——不记录指定文件类型日志
查看>>
nginx配置一、二级域名、多域名对应(api接口、前端网站、后台管理网站)
查看>>