BZOJ 4499: 线性函数
4499: 线性函数
Time Limit: 20 Sec Memory Limit: 256 MB
Submit: 177 Solved: 127
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
4 2
3 6
5 7
2 6
7 5
Q 1 5 1
Q 3 3 2
M 3 10 6
Q 1 4 3
Q 3 4 4
Sample Output
17
978
98
HINT
1 <= n, m <= 200,000,0 <= k, b, x < 1000,000,007
Source
莫名其妙,线段树维护一下区间的函数和就好了,单点修改,区间查询,比GSS还水……
UPDATE 感觉这么水的题,再困还是可以写出来的,补代码……
#include<cstdio>
#define N 200005
#define M 800005
#define P 1000000007
int n,m,ki[N],bi[N],k[M],b[M];
void build(int t,int l,int r){
if(l==r)k[t]=ki[l],b[t]=bi[l];
else{
int d=l+r>>,x=t<<,y=x|;
build(x,l,d);
build(y,d+,r);
k[t]=(1LL*k[x]*k[y])%P;
b[t]=(1LL*k[y]*b[x]%P+b[y])%P;
}
}
void build(int t,int l,int r,int p){
if(l==r)k[t]=ki[l],b[t]=bi[l];
else{
int d=l+r>>,x=t<<,y=x|;
if(p<=d)build(x,l,d,p);
else build(y,d+,r,p);
k[t]=(1LL*k[x]*k[y])%P;
b[t]=(1LL*k[y]*b[x]%P+b[y])%P;
}
}
int query(int t,int l,int r,int x,int y,int v){
if(l==x&&r==y)return (1LL*k[t]*v%P+b[t])%P;
int d=l+r>>;
if(y<=d)return query(t<<,l,d,x,y,v);
if(x>d)return query(t<<|,d+,r,x,y,v);
return query(t<<|,d+,r,d+,y,query(t<<,l,d,x,d,v));
}
main(){
scanf("%d%d",&n,&m);
for(int i=;i<=n;++i)
scanf("%d%d",ki+i,bi+i);
build(,,n);
while(m--){
static int x,y,z;
static char s[];
scanf("%s%d%d%d",s,&x,&y,&z);
if(s[]=='M')ki[x]=y,bi[x]=z,build(,,n,x);
else printf("%d\n",query(,,n,x,y,z));
}
}
@Author: YouSiki
BZOJ 4499: 线性函数的更多相关文章
- bzoj AC倒序
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...
- BZOJ 题目整理
bzoj 500题纪念 总结一发题目吧,挑几道题整理一下,(方便拖板子) 1039:每条线段与前一条线段之间的长度的比例和夹角不会因平移.旋转.放缩而改变,所以将每条轨迹改为比例和夹角的序列,复制一份 ...
- BZOJ 2127: happiness [最小割]
2127: happiness Time Limit: 51 Sec Memory Limit: 259 MBSubmit: 1815 Solved: 878[Submit][Status][Di ...
- BZOJ 3275: Number
3275: Number Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 874 Solved: 371[Submit][Status][Discus ...
- BZOJ 2879: [Noi2012]美食节
2879: [Noi2012]美食节 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 1834 Solved: 969[Submit][Status] ...
- bzoj 4610 Ceiling Functi
bzoj 4610 Ceiling Functi Description bzoj上的描述有问题 给出\(n\)个长度为\(k\)的数列,将每个数列构成一个二叉搜索树,问有多少颗形态不同的树. Inp ...
- 【sdoi2013】森林 BZOJ 3123
Input 第一行包含一个正整数testcase,表示当前测试数据的测试点编号.保证1≤testcase≤20. 第二行包含三个整数N,M,T,分别表示节点数.初始边数.操作数.第三行包含N个非负整数 ...
- 【清华集训】楼房重建 BZOJ 2957
Description 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房.每天,这片工地上的房子拆了又建.建了又拆.他经常无聊地看着窗外发呆,数自己能够看到多少栋房子. 为了简化问题,我们考虑这些 ...
- 【splay】文艺平衡树 BZOJ 3223
Description 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区间是[2,4]的话,结果是5 2 3 ...
随机推荐
- (转)PostgreSQL pg_dump&psql 数据的备份与恢复
转自:https://www.cnblogs.com/chjbbs/p/6480687.html Usage: pg_dump [OPTION]... [DBNAME] 数据库名放最后,不指定默认 ...
- WPF中的Bitmap与byte
原文:WPF中的Bitmap与byte public MainWindow() { InitializeComponent(); byte[] b = GetPictureData(@"F: ...
- Bootstrap Search Suggest 下拉框模糊查询
源码地址:https://github.com/lzwme/bootstrap-suggest-plugin 有时间会完善!暂时有点忙!
- JSON WEB TOKEN,简单谈谈TOKEN的使用及在C#中的实现
十年河东,十年河西,莫欺少年穷. 学无止境,精益求精. 突然发现整个十月份自己还没有写一篇博客......哎,说出来都是泪啊,最近加班实在实在实在是太多了,真的没有多余的时间写博客.这不,今天也在加班 ...
- HDU 1109 Run Away
题目大意:给一个矩阵的长宽,再给n个点,求矩阵区域内某个点到各个点的最小距离的最大值,输出所求点的坐标 这道题我还是写了随机化乱搞,不过由于比较懒于是就没有写模拟退火,不过也是可以AC的 我们先初始随 ...
- Apache Spark 2.2中基于成本的优化器(CBO)(转载)
Apache Spark 2.2最近引入了高级的基于成本的优化器框架用于收集并均衡不同的列数据的统计工作 (例如., 基(cardinality).唯一值的数量.空值.最大最小值.平均/最大长度,等等 ...
- 数组排列组合问题——BACKTRACKING
BACKTRACKING backtracking(回溯法)是一类递归算法,通常用于解决某类问题:要求找出答案空间中符合某种特定要求的答案,比如eight queens puzzle(将国际象棋的八个 ...
- jdbc操作根据bean类自动组装sql,天啦,我感觉我实现了hibernate
场景:需要将从ODPS数仓中计算得到的大额可疑交易信息导入到业务系统的mysql中供业务系统审核.最简单的方式是用阿里云的组件自动进行数据同步了.但是本系统是开放是为了产品化,要保证不同环境的可移植性 ...
- Http指南(3)
Web主机托管 主机托管服务 虚拟主机托管:许多Web托管者通过让一些顾客共享一台计算机来提供便宜的Web主机托管服务.这称为共享主机托管或虚拟主机托管 虚拟服务器请求缺乏主机信息: 不幸的是,HTT ...
- Centos下添加静态路由(临时和永久有效)的操作记录
公司IDC机房服务器上部署了一套外网LB环境,默认配置的是外网ip的路由地址,由于要和其他内网机器通信,所以需要配置内网ip的路由地址.整个操作过程,记录如下,以供以后参考学习: 1)内网网卡绑定 [ ...