题目分析:

搜索2^k种情况,线段树分别处理就行了,正确性明显。

代码:

 #include<bits/stdc++.h>
using namespace std; const int maxn = ; int n,k;
struct node{int x[];}a[maxn]; int Tmax[<<][maxn*],Tmin[<<][maxn*]; void Modify(int now,int tl,int tr,int dt,int pos){
if(tl == tr){
int ans = ;
for(int i=;i<k;i++){
if(dt & (<<i))ans += a[tl].x[i];
else ans -= a[tl].x[i];
}
Tmax[dt][now] = Tmin[dt][now] = ans;
}else{
int mid = (tl+tr)/;
if(pos <= mid) Modify(now<<,tl,mid,dt,pos);
else Modify(now<<|,mid+,tr,dt,pos);
Tmax[dt][now] = max(Tmax[dt][now<<],Tmax[dt][now<<|]);
Tmin[dt][now] = min(Tmin[dt][now<<],Tmin[dt][now<<|]);
}
} void Modifydfs(int now,int dt,int pos){
if(now == k) Modify(,,n,dt,pos);
else{Modifydfs(now+,dt,pos); Modifydfs(now+,dt+(<<now),pos);}
} pair<int,int> query(int now,int tl,int tr,int l,int r,int dt){
if(tl >= l && tr <= r) return make_pair(Tmax[dt][now],Tmin[dt][now]);
if(tl > r || tr < l) return make_pair(-1e9,1e9);
int mid = (tl+tr)/;
pair<int,int> a1 = query(now<<,tl,mid,l,r,dt);
pair<int,int> a2 = query(now<<|,mid+,tr,l,r,dt);
return make_pair(max(a1.first,a2.first),min(a1.second,a2.second));
} int dfs2(int now,int dt,int l,int r){
if(now == k) {
pair<int,int> ans = query(,,n,l,r,dt);
return ans.first-ans.second;
}else{return max(dfs2(now+,dt,l,r),dfs2(now+,dt+(<<now),l,r));}
} void read(){
scanf("%d%d",&n,&k);
for(int i=;i<=n;i++){
for(int j=;j<k;j++) scanf("%d",&a[i].x[j]);
}
for(int i=;i<=n;i++) Modifydfs(,,i);
} void work(){
int q; scanf("%d",&q);
for(int i=;i<=q;i++){
int cas; scanf("%d",&cas);
if(cas == ){
int now; scanf("%d",&now);
for(int j=;j<k;j++) scanf("%d",&a[now].x[j]);
Modifydfs(,,now);
}else{
int l,r; scanf("%d%d",&l,&r);
int maxmum = dfs2(,,l,r);
printf("%d\n",maxmum);
}
}
} int main(){
read();
work();
return ;
}

codeforces1093G Multidimensional Queries 【线段树】的更多相关文章

  1. CF 1093G Multidimensional Queries——线段树(消去绝对值符号)

    题目:http://codeforces.com/contest/1093/problem/G 只好看看题解:https://codeforces.com/blog/entry/63877 主要是把绝 ...

  2. HDU 4027 Can you answer these queries? (线段树区间修改查询)

    描述 A lot of battleships of evil are arranged in a line before the battle. Our commander decides to u ...

  3. hdu 4027 Can you answer these queries? 线段树区间开根号,区间求和

    Can you answer these queries? Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/sho ...

  4. Light OJ-1082 - Array Queries,线段树区间查询最大值,哈哈,水过~~

                                                                                                        ...

  5. HDU4027 Can you answer these queries? —— 线段树 区间修改

    题目链接:https://vjudge.net/problem/HDU-4027 A lot of battleships of evil are arranged in a line before ...

  6. HDU-4027-Can you answer these queries?线段树+区间根号+剪枝

    传送门Can you answer these queries? 题意:线段树,只是区间修改变成 把每个点的值开根号: 思路:对[X,Y]的值开根号,由于最大为 263.可以观察到最多开根号7次即为1 ...

  7. Codeforces Round #590 (Div. 3) D. Distinct Characters Queries(线段树, 位运算)

    链接: https://codeforces.com/contest/1234/problem/D 题意: You are given a string s consisting of lowerca ...

  8. HDU 4027 Can you answer these queries?(线段树,区间更新,区间查询)

    题目 线段树 简单题意: 区间(单点?)更新,区间求和  更新是区间内的数开根号并向下取整 这道题不用延迟操作 //注意: //1:查询时的区间端点可能前面的比后面的大: //2:优化:因为每次更新都 ...

  9. hdu 4027 Can you answer these queries? 线段树

    线段树+剪枝优化!!! 代码如下: #include<iostream> #include<stdio.h> #include<algorithm> #includ ...

随机推荐

  1. RabbitMQ 惰性队列Lazy Queue

    RabbitMQ 队列分为几种类型,按照不同维度来分,可以分为排他性队列.普通队列.延迟队列.惰性队列.发布订阅队列等. 今天我们讨论的主角是惰性队列 Lazy Queue.众所周知,队列可以存储消息 ...

  2. linux if -d -e -f表达的意思

    文件表达式-e filename 如果 filename存在,则为真-d filename 如果 filename为目录,则为真 -f filename 如果 filename为常规文件,则为真-L ...

  3. mariadb(第五章)视图、事物、索引、外键

    视图 对于复杂的查询,在多个地方被使用,如果需求发生了改变,需要更改sql语句,则需要在多个地方进行修改,维护起来非常麻烦 假如因为某种需求,需要将user拆房表usera和表userb,该两张表的结 ...

  4. python之面向对象3

     面向对象介绍 一.面向对象和面向过程 面向过程:核心过程二字,过程即解决问题的步骤,就是先干什么后干什么 基于该思想写程序就好比在这是一条流水线,是一种机械式的思维方式 优点:复杂的过程流程化 缺点 ...

  5. Leetcode 665. Non-decreasing Array(Easy)

    Given an array with n integers, your task is to check if it could become non-decreasing by modifying ...

  6. Python-常见面试题-持续更新

    1.请你简要介绍一下Python的生成器是什么 答:Python生成器是一个返回可以迭代对象的函数,可以被用作控制循环的迭代行为. 生成器类似于返回值为数组的一个函数,这个函数可以接受参数,可以被调用 ...

  7. Python 内置库 sys用法

    sys模块功能众多,这边先学习几个常用的方法sys常见函数列表① sys.argv: 实现从程序外部向程序传递参数.其实sys.argv[]就是一个列表,里面的项为用户输入的参数,但是sys.argv ...

  8. 分布式Tomcat session会话Sticky Sessions问题

    分布式session会话Sticky Sessions - tomcat_baby的专栏 - CSDN博客https://blog.csdn.net/tomcat_baby/article/detai ...

  9. mongoDB 安装和配置环境变量,超详细版本

    下载mongoDB进行安装:https://www.mongodb.com/                                                 到Community Se ...

  10. 调整分区大小 转载--------------http://blog.csdn.net/perfectzq/article/details/73606119

    centos7重新调整分区大小 centos 7 调整 root 和 home 的容量大小 查看磁盘的空间大小: df -h  备份/home : cp -r /home/ homebak/ 卸载​  ...