https://www.lydsy.com/JudgeOnline/problem.php?id=5334

小豆现在有一个数x,初始值为1. 小豆有Q次操作,操作有两种类型: 
1 m: x = x  *  m ,输出 x%mod;
2 pos: x = x /  第pos次操作所乘的数(保证第pos次操作一定为类型1,对于每一个类型1 的操作至多会被除一次),输出x%mod

都懒得写题解了……就对着时间建一个线段树,区间维护乘积即可。

真·大水题。

#include<cmath>
#include<queue>
#include<cstdio>
#include<cctype>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
const int Q=1e5+;
inline ll read(){
ll X=,w=;char ch=;
while(!isdigit(ch)){w|=ch=='-';ch=getchar();}
while(isdigit(ch))X=(X<<)+(X<<)+(ch^),ch=getchar();
return w?-X:X;
}
int q;
ll p,tr[Q*];
inline void upt(int a){tr[a]=tr[a<<]*tr[a<<|]%p;}
void build(int a,int l,int r){
if(l==r){
tr[a]=;return;
}
int mid=(l+r)>>;
build(a<<,l,mid);build(a<<|,mid+,r);
upt(a);
}
void mdy(int a,int l,int r,int x,ll y){
if(l==r){
tr[a]=y;
return;
}
int mid=(l+r)>>;
if(x<=mid)mdy(a<<,l,mid,x,y);
else mdy(a<<|,mid+,r,x,y);
upt(a);
}
int main(){
int T=read();
while(T--){
q=read(),p=read();
build(,,q);
for(int i=;i<=q;i++){
int op=read();
if(op==){
ll m=read();
mdy(,,q,i,m);
}else{
int pos=read();
mdy(,,q,pos,);
}
printf("%lld\n",tr[]);
}
}
return ;
}

+++++++++++++++++++++++++++++++++++++++++++

+本文作者:luyouqi233。               +

+欢迎访问我的博客:http://www.cnblogs.com/luyouqi233/ +

+++++++++++++++++++++++++++++++++++++++++++

最新文章

  1. JS表单前台校验模板
  2. 兼容90%标准C的词法分析器
  3. Android 采用get方式提交数据到服务器
  4. zend studio 使用总结
  5. 深入JVM-常用Java虚拟机参数
  6. js 网站顶部通用导航
  7. NODE学习:利用nodeJS去抓网页的信息
  8. bzoj3413
  9. ubuntu使用中的一些问题
  10. android 破解九宫格
  11. 《python源代码分析》笔记 pythonVM一般表达式
  12. 初学者---AngularJS详解
  13. LNMP下FTP服务器的安装和使用(Pureftpd和Proftpd)
  14. 通过sql查找指定字段存在哪些表中
  15. 利用saltstack批量安装clamav杀毒软件
  16. angular4-常用指令
  17. python java scala 单例模式
  18. 单片机程序在内存和FLASH中的空间分配
  19. Java面试题系列(二)Java内存模型
  20. Java之集合(二十)LinkedBlockingQueue

热门文章

  1. letsencrypt证书-管理工具certbot
  2. url和uri的一些问题
  3. Centos 7 快速安装 Docker
  4. Python 更换国内pip源
  5. 【SpringCloud】第六篇: 分布式配置中心(Spring Cloud Config)
  6. 【WXS】简要介绍说明
  7. Navicat和DBeaver的查询快捷键
  8. 41. Maximum Subarray
  9. halcon基础应用和方法经验分享
  10. vs2008 c#项目调试dll源码,问题:“若要调试此模块,请将其项目生成配置更改为“调试”模式” 的解决方案