hdu5475 An easy problem 线段树
2015-10-30 20:36
218 查看
HDU 5475 An easy problem
#include <cstdio> #include <cstring> #include <algorithm> #include <iostream> using namespace std; typedef long long ll; const int N=100005; ll dat[4*N]; int f ; void build(int rt,int l,int r) { dat[rt]=1; if(l==r) { f[l]=rt; return; } int mid=(l+r)/2; build(rt*2,l,mid); build(rt*2+1,mid+1,r); } void update(int rt,int m) { if(rt==1) return; int ft=rt/2; dat[ft]=(dat[ft*2]*dat[ft*2+1])%m; update(ft,m); } int main() { int T,cas=1; scanf("%d",&T); while(T--) { int n,m; scanf("%d%d",&n,&m); //memset(dat,,sizeof dat); for(int i=0;i<4*N;i++) dat[i]=1; ll res=1; int c=0; build(1,1,n); printf("Case #%d:\n",cas++); for(int i=1;i<=n;i++) { c=i; int x,y; scanf("%d%d",&x,&y); if(x==1) { y%=m; dat[f[c]]=(dat[f[c]]*1ll*y)%m; update(f[c],m); res=dat[1]%m; printf("%I64d\n",res); } else if(x==2) { int rt=f[y]; dat[rt]=1; update(rt,m); res=dat[1]%m; printf("%I64d\n",res); } } } }
相关文章推荐
- Mysql 表忽略大小写~~
- CVE-2015-7857 Joomla注入漏洞利用工具(Python)
- 程序运行时需要加载的方法 -----
- ubuntu自定义通知
- sicily 1306. Sorting Algorithm
- HDU 5504 GT and sequence
- Java的开发模型——Model1和Model2……
- 【软工】软工文档——可行性研究报告
- jquery修改a标签的href链接和文字
- 数组及课堂例子整理
- Spark_GraphX安装记录
- sicily 1133. SPAM
- [C++]输入输出流
- JAVA中的数据存储(堆及堆栈)
- java 中访问控制 public、private 和 protected 介绍
- SQLiteOpenHelper类
- python笔记003——模块
- 前端学习--HTML标签温习一
- LA 4329 BIT 分治
- poj2486 Apple Tree