hdu3074 线段树求区间乘积(单点更新)
来源:互联网 发布:如何在淘宝头条发文章 编辑:程序博客网 时间:2024/04/30 00:46
题意:
给你n个数,两种操作,(1) 把第b个数改成c (2)算出b-c的乘积,结果对1000000007取余。
思路:
给你n个数,两种操作,(1) 把第b个数改成c (2)算出b-c的乘积,结果对1000000007取余。
思路:
线段树单点更新,简单题目,不多解释,具体看代码。
#include<stdio.h>#define lson l ,mid ,t << 1#define rson mid + 1 ,r ,t << 1 | 1#define MOD 1000000007__int64 sum[50000*4+100];void Pushup(int t){ sum[t] = ((sum[t<<1] % MOD) * (sum[t<<1|1] % MOD)) % MOD;}void BuidTree(int l ,int r ,int t){ sum[t] = 1; if(l == r) { scanf("%I64d" ,&sum[t]); sum[t] %= MOD; return; } int mid = (l + r) >> 1; BuidTree(lson); BuidTree(rson); Pushup(t);}void Update(int l ,int r ,int t ,int a ,int b){ if(l == r) { sum[t] = b % MOD; return; } int mid = (l + r) >> 1; if(a <= mid) Update(lson ,a ,b); else Update(rson ,a ,b); Pushup(t);}__int64 Query(int l ,int r ,int t ,int a ,int b){ if(a <= l && b >= r) return sum[t]; int mid = (l + r) >> 1; __int64 ans = 1; if(a <= mid) ans = Query(lson ,a ,b) % MOD; if(b > mid) ans *= Query(rson ,a ,b) % MOD; return ans % MOD;}int main (){ int t ,i ,n ,m ,a ,b ,c; scanf("%d" ,&t); while(t--) { scanf("%d" ,&n); BuidTree(1 ,n ,1); scanf("%d" ,&m); while(m--) { scanf("%d %d %d" ,&a ,&b ,&c); if(a) Update(1 ,n ,1 ,b ,c); else printf("%I64d\n" ,Query(1 ,n ,1 ,b ,c) % MOD); } } return 0;}
0 0
- hdu3074 线段树求区间乘积(单点更新)
- hdu3074-线段树(求区间乘积)
- HDOJ 题目3074 Multiply game(线段树单点更新,区间求乘积)
- 线段树求区间和(单点更新)
- 线段树 单点更新求区间和
- hdu1556 线段树区间更新 求单点
- 线段树(单点更新,区间求最大值)
- HDU 3074 Multiply game(线段树区间乘积,单点更新)
- 线段树(单点更新+区间更新)
- 线段树(单点更新,区间求和)
- zoj 3635 线段树 区间求位置 单点更新
- 线段树求区间最大值RMQ(单点更新)
- HDU 2795 Billboard (线段树 单点更新 区间求最大值)
- hdu_1754,线段树单点更新,求区间最值
- HDU1754 线段树 + 裸 + 单点更新求区间最值
- hdoj 5475 An easy problem 【线段树单点更新 + 区间乘积】
- 【解题报告】 NYOJ 116 士兵杀敌(二) 线段树 单点更新求区间和
- HDU 3074-Multiply game(线段树:单点更新,区间求积)
- LSA Functions - Privileges and Impersonation
- cat /proc/cpuinfo
- jdk的环境配置
- HDU 2602
- 进程间通信方式及比较
- hdu3074 线段树求区间乘积(单点更新)
- Redis命令总结
- oracle dblink详解
- 数据结构学习笔记(一)---汉诺塔
- LeetCode --- Binary Tree Postorder Traversal
- navicat for linux
- sleep 和wait 的区别
- 由视图控制器联想到的设计模式
- HDU 1251 统计难题(字典树)