题目: 传送门

题解:线段树模板题目。

对递归的题目始终理解不好,我的痛啊,在水的题目都要写很长时间。

#include <iostream>
#include <string.h>
#include <stdio.h>
#include <algorithm>
typedef __int64 ll;
#define inf 0x3f3f3f3f
#include <math.h>
#include <queue>
#define mod 1000000007
#define N 50010
using namespace std;
int n,m;
struct node
{
int l,r;
ll w;
}q[*N];
void pushup(int rt)
{
q[rt].w=(q[rt<<].w*q[rt<<|].w)%mod;
}
void build(int l,int r,int rt)
{
q[rt].l=l;
q[rt].r=r;
q[rt].w=;
if(l==r)
{
scanf("%I64d",&q[rt].w);
return ;
}
int mid=(l+r)>>;
build(l,mid,rt<<);
build(mid+,r,rt<<|);
pushup(rt);
return ;
}
void update(int lf,int key,int l,int r,int rt)
{
if(l==r&&lf==l)
{
q[rt].w=key;
return ;
}
int mid=(l+r)>>;
if(lf<=mid) update(lf,key,l,mid,rt<<);
else update(lf,key,mid+,r,rt<<|);
pushup(rt);
return ;
}
ll query(int lf,int rf,int l,int r,int rt)
{
if(lf<=l&&rf>=r)
{
return q[rt].w;
}
ll L=;//区别于全局变量
int mid=(l+r)>>;
if(lf<=mid) L=(L*query(lf,rf,l,mid,rt<<))%mod;
if(rf>mid) L=(L*query(lf,rf,mid+,r,rt<<|))%mod;
return L;
}
int main()
{
int T,se,xx,yy;
scanf("%d",&T);
while (T--)
{
scanf("%d",&n);
build(,n,);
scanf("%d",&m);
for(int i=;i<m;i++)
{
scanf("%d%d%d",&se,&xx,&yy);
if(se==)
{
ll tt=query(xx,yy,,n,);
printf("%I64d\n",tt%mod);
}
else if(se==)
{
update(xx,yy,,n,);
}
}
}
return ;
}

HDU3074: Multiply game(线段树单点更新,区间查询)的更多相关文章

  1. HDU.1166 敌兵布阵 (线段树 单点更新 区间查询)

    HDU.1166 敌兵布阵 (线段树 单点更新 区间查询) 题意分析 加深理解,重写一遍 代码总览 #include <bits/stdc++.h> #define nmax 100000 ...

  2. NYOJ-568/1012//UVA-12299RMQ with Shifts,线段树单点更新+区间查询

    RMQ with Shifts 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 ->  Link1  <- -> Link2  <- 以上两题题意是一样 ...

  3. hihoCoder week19 RMQ问题再临-线段树 单点更新 区间查询

    单点更新 区间查询 #include <bits/stdc++.h> using namespace std; #define m ((l+r)/2) #define ls (rt< ...

  4. HDU 1166敌兵布阵+NOJv2 1025: Hkhv love spent money(线段树单点更新区间查询)

    敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  5. hdu-3074 Multiply game---线段树+单点更新

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3074 题目大意: 给一些数,进行点更新或者是区间计算乘积 解题思路: 裸的线段树,注意空间开大点 # ...

  6. HDU1166(线段树单点更新区间查询)

    敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  7. CDOJ 1073 线段树 单点更新+区间查询 水题

    H - 秋实大哥与线段树 Time Limit:1000MS     Memory Limit:65535KB     64bit IO Format:%lld & %llu Submit S ...

  8. HDU 1754.I Hate It-结构体版线段树(单点更新+区间查询最值)

    I Hate It Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  9. Who Gets the Most Candies? POJ - 2886(线段树单点更新+区间查询+反素数)

    预备知识:反素数解析 思路:有了反素数的解法之后就是线段树的事了. 我们可以用线段树来维护哪些人被淘汰,哪些人没被淘汰,被淘汰的人的位置,没被淘汰的人的位置. 我们可以把所有人表示为一个[1,n]的区 ...

  10. NBUT 1602 Mod Three(线段树单点更新区间查询)

    [1602] Mod Three 时间限制: 5000 ms 内存限制: 65535 K 问题描述 Please help me to solve this problem, if so, Liang ...

随机推荐

  1. 《精通CSS》读书笔记(一)

    最近新添16本书,目前开始看陈剑瓯翻译的<精通CSS——高级Web标准解决方案>(Andy Budd, CSS Mastery -- Advanced Web Standards Solu ...

  2. 数据库 proc编程三

    #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <stri ...

  3. 【MySql】脚本备份数据库

    #!/bin/bash #this is a script of mysql backup #Mysql="mysql" #MysqlDump="mysqldump&qu ...

  4. (转)android从应用到驱动之—camera(1)---程序调用流程

    一.开篇 写博客还得写开篇介绍,可惜,这个不是我所擅长的.就按我自己的想法写吧. 话说camera模块,从上层到底层一共包含着这么几个部分: 1.apk------java语言 2.camera的ja ...

  5. php -- session会话

    PHP Sessions PHP session 变量用于存储关于用户会话(session)的信息,或者更改用户会话(session)的设置.Session 变量存储单一用户的信息,并且对于应用程序中 ...

  6. Wamp2.5 64bit,无法改动MySQL datadir位置

    今天偶然想到去更新一下机子里面PHP的版本号,然后又一次去wamp官网下载了WAMP(wamp 64  Apache : 2.4.9 MySQL : 5.6.17 PHP : 5.5.12 PHPMy ...

  7. ActiveMQ搭建

    下载 到ActiveMQ官网,找到下载点. 目前, 官网为http://activemq.apache.org/ Linux版本下载点之一为:http://apache.fayea.com/activ ...

  8. Scilab 的画图函数(3)

    我们在做数据画图或函数图像时常常须要使用对数坐标系.尤其是数据的范围跨越非常多个数量级时.通常的线性坐标系下无法表现出数据特征. Scilab 中Plot函数无法画出对数坐标.须要使用 plot2d  ...

  9. 0.0.0.0:80端口被系统System占用

    用netstat -ano命令查看,可以找到0.0.0.0:80占用的PID假设为4,然后在任务管理器中的详细信息面板中可以找到PID等于4的进程,如果用户名为SYSTEM, 不能直接终止掉,需要去注 ...

  10. Block Formatting Contexts (块级格式化上下文) 使用参考

    转自:http://kayosite.com/block-formatting-contexts-in-detail.html 在上文<详说清除浮动>中,Kayo 较为详细地介绍了 BFC ...