线段树水题

#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std; #define LL(x) (x<<1)
#define RR(x) ((x<<1)|1)
long long num[4*50000];
int
update(int L,int R,int pos,int k,int mark)
{
if(
L==pos&&R==pos)
{

num[mark]=k;
return
0;
}
int
mid=(L+R)/2;
if(
pos<=mid)
{

update(L,mid,pos,k,LL(mark));
}
else
{

update(mid+1,R,pos,k,RR(mark));
}

num[mark]=(num[LL(mark)]%1000000007)*(num[RR(mark)]%1000000007)%1000000007;
return
0;
}
long long
find(int L,int R,int left,int right,int mark)
{
long long
sum=1;
if(
L==left&&R==right)
{

sum=num[mark];
return
sum;
}
int
mid=(L+R)/2;
if(
right<=mid)
{

sum=find(L,mid,left,right,LL(mark));
}
else if(
left>mid)
{

sum=find(mid+1,R,left,right,RR(mark));
}
else
{

sum=(find(L,mid,left,mid,LL(mark))%1000000007)*(find(mid+1,R,mid+1,right,RR(mark))%1000000007)%1000000007;
}
return
sum;
}
int main()
{
int
n,m,T,i,j,a,b,c;
scanf("%d",&T);
while(
T--)
{

scanf("%d",&n);
for(
i=1;i<=4*n;i++)
num[i]=1;
for(
i=1;i<=n;i++)
{

scanf("%d",&a);
update(1,n,i,a,1);
}

scanf("%d",&m);
for(
i=1;i<=m;i++)
{

scanf("%d%d%d",&c,&a,&b);
if(
c==0)
{

printf("%lld\n",find(1,n,a,b,1));
}
else
{

update(1,n,a,b,1);
}
}
}
return
0;
}

hdu 3074 求区间乘积的更多相关文章

  1. 牛客小白月赛6 F 发电 树状数组单点更新 求区间乘积 模板

    链接:https://www.nowcoder.com/acm/contest/136/F来源:牛客网  HA实验是一个生产.提炼“神力水晶”的秘密军事基地,神力水晶可以让机器的工作效率成倍提升.   ...

  2. hdu3074 线段树求区间乘积(单点更新)

    题意:       给你n个数,两种操作,(1) 把第b个数改成c (2)算出b-c的乘积,结果对1000000007取余. 思路:       线段树单点更新,简单题目,不多解释,具体看代码. #i ...

  3. HDU 4417 Super Mario(主席树求区间内的区间查询+离散化)

    Super Mario Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tota ...

  4. hdu 5443 (2015长春网赛G题 求区间最值)

    求区间最值,数据范围也很小,因为只会线段树,所以套了线段树模板=.= Sample Input3110011 151 2 3 4 551 21 32 43 43 531 999999 141 11 2 ...

  5. HDU - 1754 I Hate It (线段树单点修改,求区间最大值)

    很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少. 这让很多学生很反感. 不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问.当然,老师有 ...

  6. HDU 3709 Balanced Number 求区间内的满足是否平衡的数量 (数位dp)

    平衡数的定义是指,以某位作为支点,此位的左面(数字 * 距离)之和 与右边相等,距离是指某位到支点的距离; 题意:求区间内满足平衡数的数量 : 分析:很好这又是常见的数位dp , 不过不同的是我们这次 ...

  7. hdu 1754 I Hate It (线段树求区间最值)

    HDU1754 I Hate It Time Limit:3000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u D ...

  8. hdu 3074 Multiply game

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=3074 Minimum Inversion Number Description Tired of pl ...

  9. HDU 5726 GCD 区间GCD=k的个数

    GCD Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submis ...

随机推荐

  1. Java-JDK:JDK清单

    ylbtech-Java-JDK:JDK清单 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部     6.返回顶部   作者:ylbtech出处:http://y ...

  2. 关于类和对象的进一步讨论 C++

    如果一个类中所有成员函数都是公用的,则可以在定义对象时对数据成员进行初始化: class  Time { public: hour; minute; sec; }; Time t1={14,15,23 ...

  3. [jzoj 6073] 河 解题报告 (DP)

    interlinkage: https://jzoj.net/senior/#main/show/6073 description: solution: 考虑一条河$x$被染的效果 显然对于一条河$i ...

  4. ES6 Proxy 性能之我见

    ES6 Proxy 性能之我见 本文翻译自https://thecodebarbarian.com/thoughts-on-es6-proxies-performance Proxy是ES6的一个强力 ...

  5. DevExpress的GridControl拖拽DraopDown后计算HitInfo的RowHandle错误

    最近在使用GridControl的拖拽功能时候遇到了一个问题:当GridControl触发DropDrop事件时,计算对应的RowHandle错误.当把鼠标拖拽到GridView一个单元格的靠上面的部 ...

  6. [Offer收割]编程练习赛36

    逃离单身节 #include<stdio.h> #include<string.h> #include<stdlib.h> #include<vector&g ...

  7. 第十课: - 读取/写入Excel/Json格式数据

    第 10 课 从DataFrame到Excel 从Excel到DataFrame 从DataFrame到JSON 从JSON到DataFrame In [1]: import pandas as pd ...

  8. 二.Windows I/O模型之异步选择(WSAAsyncSelect)模型

    1.基于windows消息为基础的网络事件io模型.因此我们必须要在窗口程序中使用该模型.该模型中的核心是调用WSAAsyncSelect函数实现异步I/O. 2.WSAAsyncSelect函数:注 ...

  9. (转)shiro权限框架详解02-权限理论介绍

    http://blog.csdn.net/facekbook/article/details/54893042 权限管理解决方案 本文主要介绍权限管理的解决方法: 粗颗粒度和细颗粒度 基于url拦截 ...

  10. swift的属性与变量- Stored Properties and Instance Variables

    是一个概念 Stored Properties and Instance Variables If you have experience with Objective-C, you may know ...