题目链接: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的更多相关文章

随机推荐

  1. IDEA插件——lombok的简单使用

    一.介绍 lombok是一个可以通过注解来简化许多繁琐的get.set以及构造函数等的工具.它可以让我们在代码编写的时候省去代码,而在编译生成的字节码中生成相应的字节码! 官网:https://pro ...

  2. JSON传输数组的基本操作

    目标JSON结果如下: 生成JSON的的过程如下: Document document; Document::AllocatorType& allocator = document.GetAl ...

  3. 4556: [Tjoi2016&Heoi2016]字符串

    4556: [Tjoi2016&Heoi2016]字符串 链接 分析: 首先可以二分这个长度.此时需要判断是否存在一个以b结尾的前缀,满足与[c,d]的lcp大于等于mid. 如果我们把串翻转 ...

  4. 【亲测有效】Win10家庭版Microsoft Edge页面出现乱码的两种解决方案及gpedit.msc命令无法使用的解决策略

    昨天在爬取电影的时候生成的表单打开result.html时,发现页面出现如下乱码: 第一种方法: 上网找了半天,网上的解决方案是这样的: 1.Win + R输入gpedit.msc打开组策略编辑器; ...

  5. OpenGL:使用顶点数组法绘制正六面体

    在今天的opengl的课程以及实验中,我们学习了如何使用顶点数组的方法来绘制图形,但相信还有很多同学对它的实际使用方法不太了解,我们就用我们今天实验课上的实例来简单讲解一下 题目及要求 绘制一个正六面 ...

  6. 基于神念TGAM的脑波小车(1)

    作者声明:此博客是作者的毕设心得,拿来分享. 拿到模块,在网上查了一圈,发现基本没什么有用的资料,有也是一些废话,经过我几个月的攻克,现在已初步搞定,分享给大家. 废话不多说,直接步入正题. 这是通过 ...

  7. 怎么理解LAXCUS大操作系统系统在云计算体系中的定位

    最近一直在做laxcus大数据操作系统的分布式应用开发,因为做得多了,感触也多了.按照云计算三层定义,即iaas(基础设施即服务).paas(平台即服务).saas(软件即服务),laxcus属于pa ...

  8. 拓扑排序(Topological Sort)

    Graph 拓扑排序(Topological Sort) 假设一个应用场景:你用 C 编写了一个爬虫工具,其中有很多自定义的库:queue.c.queue.h.stack.c.stack.h.heap ...

  9. Windows 7上安装配置TensorFlow-GPU运算环境

    Windows 7上安装配置TensorFlow-GPU运算环境 1. 概述 在深度学习实践中,对于简单的模型和相对较小的数据集,我们可以使用CPU完成建模过程.例如在MNIST数据集上进行手写数字识 ...

  10. Appium+Python3+ Android入门

    前言: Appium 是一个自动化测试开源工具,支持 iOS 平台和 Android 平台上的原生应用,web 应用和混合应用. 一.环境配置 1.安装Node.js https://nodejs.o ...