【题目链接】

点击打开链接

【算法】

线段树维护区间乘积

【代码】

#include<bits/stdc++.h>
using namespace std;
#define MAXQ 100010 struct SegmentTree
{
int l,r;
long long sum;
} Tree[MAXQ<<]; int T,i,q,op,pos;
long long p,m; inline void build(int index,int l,int r)
{
int mid;
Tree[index].l = l; Tree[index].r = r;
Tree[index].sum = ;
if (l == r) return;
mid = (l + r) >> ;
build(index<<,l,mid);
build(index<<|,mid+,r);
}
inline void update(int index)
{
Tree[index].sum = (Tree[index<<].sum * Tree[index<<|].sum) % p;
}
inline void modify(int index,int pos,long long val)
{
int mid;
if (Tree[index].l == Tree[index].r)
{
Tree[index].sum = val % p;
return;
}
mid = (Tree[index].l + Tree[index].r) >> ;
if (mid >= pos) modify(index<<,pos,val);
else modify(index<<|,pos,val);
update(index);
} int main()
{ scanf("%d",&T);
while (T--)
{
scanf("%d%d",&q,&p);
build(,,q);
for (i = ; i <= q; i++)
{
scanf("%d",&op);
if (op == )
{
scanf("%lld",&m);
modify(,i,m);
printf("%lld\n",Tree[].sum);
} else
{
scanf("%d",&pos);
modify(,pos,);
printf("%lld\n",Tree[].sum);
}
}
} return ; }

最新文章

  1. InetAddress类
  2. memcache 与 mencached扩展的区别
  3. Codeforces #369 div2 D.Directed Roads
  4. C#中SaveFileDialog 和OpenFileDialog 的用法
  5. Cassandra1.2文档学习(14)—— 事务和并发控制
  6. html5 飞船动画
  7. python写的屏保程序
  8. Android 电话自己主动接听和挂断具体解释
  9. 在容器中利用Nginx-proxy实现多域名的自动反向代理、免费SSL证书
  10. 用awk写递归
  11. sysstat -6.0.2 lib not install
  12. Android笔记: 实现手机震动效果
  13. Spring Cloud学习笔记-008
  14. 安装在类虚拟机crossover中的容器怎么进行的备份和恢复
  15. Android常用网络请求框架Volley Retrofit (okHttp)
  16. spring整合strus2的Hellowworld
  17. linux source code search
  18. 基于Arcface Android平台的人脸识别实现
  19. 将不同级别的logging 日志信息写入不同文件
  20. html标签的总结-重复

热门文章

  1. flipt 一个基于golang 的特性工具开发类库
  2. @ExceptionHandler和@ControllerAdvice统一处理异常
  3. Python函数式编程简介
  4. Android中ProgressDialog自动消失
  5. Vijos P1334 NASA的食物计划
  6. geth搭建以太坊私链及常用操作
  7. oop设计模式抽象总结
  8. python黑科技库:FuckIt.py,让你代码从此远离bug
  9. hdu 5015 矩阵快速幂(可用作模板)
  10. 救命(洛谷 U4525)