UVA11297 Census
题目
做法
二维线段树,单点修改,矩阵查询,树套树(\(x,y\)),维护最大值最小值废话
有一点要注意的是:\(x\)树传到\(y\)树里面修改的时候,如果\(x\)树中是叶子节点之间修改,否则在y树中还得拿\(x\)树中的左右儿子来修改
My complete code
#include<bits/stdc++.h>
using namespace std;
typedef int LL;
const LL inf=0x3f3f3f3f,maxn=2009;
LL n,xo,tmx,tmi,q;
LL Mx[maxn][maxn],Mi[maxn][maxn];
bool leaf;
void Modify1(LL now,LL l,LL r,LL c,LL val){
if(l==r){
if(leaf){
Mx[xo][now]=Mi[xo][now]=val; return;
}
Mx[xo][now]=max(Mx[xo<<1][now],Mx[xo<<1|1][now]),
Mi[xo][now]=min(Mi[xo<<1][now],Mi[xo<<1|1][now]);
return;
}
LL mid(l+r>>1);
if(c<=mid) Modify1(now<<1,l,mid,c,val);
else Modify1(now<<1|1,mid+1,r,c,val);
Mx[xo][now]=max(Mx[xo][now<<1],Mx[xo][now<<1|1]),
Mi[xo][now]=min(Mi[xo][now<<1],Mi[xo][now<<1|1]);
}
void Modify2(LL now,LL l,LL r,LL x,LL y,LL val){
if(l==r){
xo=now,leaf=true; Modify1(1,1,n,y,val);
return;
}
LL mid(l+r>>1);
if(x<=mid) Modify2(now<<1,l,mid,x,y,val);
else Modify2(now<<1|1,mid+1,r,x,y,val);
xo=now,leaf=false; Modify1(1,1,n,y,val);
}
void Query1(LL now,LL l,LL r,LL y1,LL y2){
if(y1<=l&&y2>=r){
tmx=max(tmx,Mx[xo][now]),tmi=min(tmi,Mi[xo][now]);
return;
}
LL mid(l+r>>1);
if(y1<=mid) Query1(now<<1,l,mid,y1,y2);
if(y2>mid) Query1(now<<1|1,mid+1,r,y1,y2);
}
void Query2(LL now,LL l,LL r,LL x1,LL x2,LL y1,LL y2){
if(x1<=l&&x2>=r){
xo=now,Query1(1,1,n,y1,y2);
return;
}
LL mid(l+r>>1);
if(x1<=mid) Query2(now<<1,l,mid,x1,x2,y1,y2);
if(x2>mid) Query2(now<<1|1,mid+1,r,x1,x2,y1,y2);
}
int main(){
cin>>n;
for(LL i=1;i<=n;++i)
for(LL j=1;j<=n;++j){
LL val;
cin>>val;
Modify2(1,1,n,i,j,val);
}
cin>>q;
while(q--){
char c;scanf(" %c ",&c);
if(c=='q'){
LL x1,y1,x2,y2; cin>>x1>>y1>>x2>>y2;
tmx=-inf,tmi=inf;
Query2(1,1,n,x1,x2,y1,y2);
cout<<tmx<<' '<<tmi<<endl;
}else{
LL x,y,val; cin>>x>>y>>val;
Modify2(1,1,n,x,y,val);
}
}return 0;
}
UVA11297 Census的更多相关文章
- UVA-11297 Census(线段树套线段树)
题目大意:二维空间点修改,询问矩形区域最值. 题目分析:还是比较简单的. 代码如下: # include<iostream> # include<cstdio> # inclu ...
- 图像变换之Census变换
图像的Census变换 Census变换属于非参数图像变换的一种,它能够较好地检测出图像中的局部结构特征,如边缘.角点特征等.传统Census变换的基本思想是:在图像区域定义一个矩形窗口,用这个矩形窗 ...
- [Machine Learning][The Analytics Edge][Predicting Earnings from Census Data]
census = read.csv("census.csv")library(caTools)set.seed(2000)spl = sample.split(census$ove ...
- UVA 11297 Census(二维线段树)
Description This year, there have been many problems with population calculations, since in some cit ...
- 立体匹配之Census Transform
1.立体匹配算法主要可分为两大类:基于局部约束和基于全局约束的立体匹配算法. (一)基于全局约束的立体匹配算法:在本质上属于优化算法,它是将立体匹配问题转化为寻找全局能量函数的最优化问题,其代表算法主 ...
- UVa 11297 Census (二维线段树)
题意:给定上一个二维矩阵,有两种操作 第一种是修改 c x y val 把(x, y) 改成 val 第二种是查询 q x1 y1 x2 y2 查询这个矩形内的最大值和最小值. 析:二维线段树裸板. ...
- UVA 11297 Census ——二维线段树
[题目分析] 二维线段树模板题目. 简直就是无比的暴力.时间复杂度为两个log. 标记的更新方式比较奇特,空间复杂度为N^2. 模板题目. [代码] #include <cstdio> # ...
- 【机器学习Machine Learning】资料大全
昨天总结了深度学习的资料,今天把机器学习的资料也总结一下(友情提示:有些网站需要"科学上网"^_^) 推荐几本好书: 1.Pattern Recognition and Machi ...
- 【数学】Jersey Politics
Jersey Politics Time Limit: 1000MS Memory ...
随机推荐
- 循环杀死Mysql sleep进程脚本
#!/bin/sh while : do n=`mysqladmin processlist -uadmin -p***|grep -i sleep |wc -l` date=`date +%Y%m% ...
- ubuntu在vmware下使用问题
问题1: 在vmware虚拟机下安装的ubuntu系统,为了在windows和ubuntu之间拷贝数据方便,所以在vmware上安装了vmware tools.在安装了vmware tool之后会在u ...
- Scrapy爬虫笔记
Scrapy是一个优秀的Python爬虫框架,可以很方便的爬取web站点的信息供我们分析和挖掘,在这记录下最近使用的一些心得. 1.安装 通过pip或者easy_install安装: 1 sudo p ...
- linux 复制粘贴
如果想把文件内的第三行内容黏贴到第十五行: 1.进入你的文件,(处于命令模式,而不是编辑模式) 2.将你的光标移到你的第三行的开头(用方向键) 3,按下v,(你发现切换到可视模式了),按方向键,知道选 ...
- ios关于数据的存储
本文转载至http://blog.csdn.net/chen505358119/article/details/9278539 这里我总结了一下数据的存储方式,一是保存在沙盒里 ...
- 《从零开始学Swift》学习笔记(Day 18)——有几个分支语句?
原创文章,欢迎转载.转载请注明:关东升的博客 分支语句又称条件语句,Swift编程语言提供了if.switch和guard三种分支语句. if语句 由if语句引导的选择结构有if结构.if ...
- 关于webpack打包js和css
废话不多说,直接贴出代码,大家瞅瞅:其中要引用css的话是要用css-loader.用了之后再webpack.config.js里面配置相应的代码,并且在相应的js文件里面引用即可啦,不知道有哪位大神 ...
- Python菜鸟之路:Jquery Ajax的使用
Ajax概述 Ajax就是通过 HTTP 请求加载远程数据.通常用于定制一些http请求来灵活的完成前端与后端的数据交互需求. 注意,所有的选项都可以通过$.ajaxSetup()函数来全局设置. J ...
- PHP多线程pthreads
Home | 简体中文 | 繁体中文 | 杂文 | Search | ITEYE 博客 | OSChina 博客 | Facebook | Linkedin | 作品与服务 | EmailPHP 高级 ...
- MySQL 第四天
回顾 列属性: 主键, 自增长, 唯一键 关系: 一对一,一对多和多对多 范式: 三层范式 1NF: 字段设计必须符合原子性 2NF: 不存在部分依赖(没有复合主键) 3NF: 不存在传递依赖 ...