codeforces906 D
题目链接:http://codeforces.com/contest/906/problem/D
题意:
给你n个数,再给你l~r,求
%m
题解:
一开始不会
后来查到了欧拉降幂定理:
然后就会了
这样的话,每次从左往右求ans就变成了不断求n^x%m,依次往右递归即可。
代码
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define N 100010
int i,j,k,n,x,y,t,q;
ll a[N],m;
map <ll,ll> f;
ll jisuan(ll n){
if (f.count(n))return f[n];
ll ans = n, z = n;for (ll i = ; i * i <= n; ++i){if (n % i == ){ans -= ans / i;while (n % i == ) n /= i;}}
if (n > ) ans -= ans / n;return f[z] = ans;
}
ll Pow(ll a,ll b,ll mod){
ll ret = ;ll fl = a >= mod;
for (; b; b >>= ){if (b & ){ret *= a;if (ret >= mod) fl = , ret %= mod;}a *= a;if (a >= mod) a %= mod, fl = ;}
return ret + fl * mod;
}
ll solve(int l, int r,ll mod){if (l == r) return a[l];if (mod == ) return ;return Pow(a[l], solve(l + , r, jisuan(mod)), mod);}
int main(){
scanf("%d%lld",&n,&m);
for (int i=;i<=n;++i)scanf("%lld",&a[i]);
scanf("%d",&q);
while (q--){scanf("%d%d",&x,&y);printf("%lld\n",solve(x, y, m)%m);}
return ;
}
codeforces906 D的更多相关文章
随机推荐
- Latex数学公式编写
小叙闲言 一直想用latex来编辑文档,但是没有需求,所以也没有去学习一下,但是最近由于要大量敲数学公式,有了latex数学公式的需求,所以来稍稍总结学习一下 1.在MathType中编写Latex数 ...
- SCC的奇葩算法——Kosaraju
不会Tarjan,难道就不能与邪恶的SCC作斗争了吗? 祭出Kosaraju. 一些变量名的意义: a[N] 原图的vector存储 b[N] 原图的所有边反向vector存储 s dfs得出的拓扑序 ...
- Kubernetes学习之路(十九)之Kubernetes dashboard认证访问
Dashboard:https://github.com/kubernetes/dashboard 一.Dashboard部署 由于需要用到k8s.gcr.io/kubernetes-dashboar ...
- 洛咕 P3706 [SDOI2017]硬币游戏
假设f[i]是第i个同学胜利的概率,也就是随机序列第一个匹配到s[i]的概率 假设前面有一个字符串\(S\),(假设无限长但没有匹配),现在往后面要加上第i个串\(s[i]\),这个的概率设为\(P_ ...
- [CF1083F]The Fair Nut and Amusing Xor[差分+同余分类+根号分治+分块]
题意 给定两个长度为 \(n\) 的序列 \(\{a_i\}\) 与 \(\{b_i\}\),你需要求出它们的相似度.,我们定义这两个序列的相似度为将其中一个序列转化为另一个序列所需的最小操作次数.一 ...
- python 微信撤回消息
import itchatfrom itchat.content import *import osimport reimport time# 文件临时存储页rec_tmp_dir = os.path ...
- 阿里(蚂蚁,菜鸟)+百度+网易面经(JAVA)
本人综述: 本人本科和硕士均是毕业于普通的双非院校,参加过ACM竞赛,阿里面了三次全被拒了,网易收到offer. 阿里面试: 阿里的面试问的都是很基础的东西,如操作系统的简单问题,计算机网络的基本问题 ...
- DRF框架QQ登录功能
用户模块---QQ登录 流程图 QQ登录文档:http://wiki.connect.qq.com/%E5%87%86%E5%A4%87%E5%B7%A5%E4%BD%9C_oauth2-0 流程简述 ...
- 了不起的Node.js--之一
在OSX下安装Nodejs 从Node.js官网下载PKG文件,其文件名格式遵循node-v.?.?.?.pkg.若要通过手动编译来进行安装,请确保机器上已安装了XCode,然后根据Linux下的编译 ...
- Zero-shot learning(零样本学习)
一.介绍 在传统的分类模型中,为了解决多分类问题(例如三个类别:猫.狗和猪),就需要提供大量的猫.狗和猪的图片用以模型训练,然后给定一张新的图片,就能判定属于猫.狗或猪的其中哪一类.但是对于之前训练图 ...