题目分析:

搜索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. eletron打包

    https://www.cnblogs.com/BigJ/p/electron.html https://www.cnblogs.com/kakayang/p/9559777.html

  2. 一、Xadmin------安装

    翻译:http://xadmin.readthedocs.io/en/docs-chinese 1.安装方法: 1)pip install django-xadmin 2)通过源文件安装,我是通过这种 ...

  3. Python—randonm模块介绍

    random是python产生伪随机数的模块 >>> random.randrange(1,10) #返回1-10之间的一个随机数,不包括10 >>> random ...

  4. pip国内镜像

    [国内镜像] 中国科学技术大学 : https://pypi.mirrors.ustc.edu.cn/simple 清华:https://pypi.tuna.tsinghua.edu.cn/simpl ...

  5. 软件工程(FZU2015) 赛季得分榜,第9回合

    SE_FZU目录:1 2 3 4 5 6 7 8 9 10 11 12 13 积分规则 积分制: 作业为10分制,练习为3分制:alpha30分: 团队项目分=团队得分+个人贡献分 个人贡献分: 个人 ...

  6. Booth乘法

    先看一个例子,结合疑问看算法. 1.已知X=+0.0011 Y=-0.1011 求[XY]补 解:[x]补 =0.0011 , [-x]补 =1.1101,[y]补 =1.0101 部分积      ...

  7. React Native之code-push的热更新(ios android)

    React Native之code-push的热更新(ios android) React Native支持大家用React Native技术开发APP,并打包生成一个APP.在动态更新方面React ...

  8. React Native之FlatList的介绍与使用实例

    React Native之FlatList的介绍与使用实例 功能简介 FlatList高性能的简单列表组件,支持下面这些常用的功能: 完全跨平台. 支持水平布局模式. 行组件显示或隐藏时可配置回调事件 ...

  9. Java8 Lambda和Stream的用法

    package com.zhangxueliang.demo; import java.util.ArrayList; import java.util.List; import java.util. ...

  10. Day 3-6 生成器&迭代器

    ---恢复内容开始--- 列表生成式: list = [i*i for i in range(20)] # 这就是一个列表生成式 print(list) # [0, 1, 4, 9, 16, 25, ...