poj2155:http://poj.org/problem?id=2155

题意;同上一遍随笔。

题解:这里用二维线段树打了一发。第一次学习别人的代码。才学的。这种树套树的程序,确实很费脑子,一不小心就会晕了,而且这次是用省空间的方法写的。

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
bool seg[][];
int n,ans;
void updatey(int i,int l,int r,int j,int y1,int y2){
if(l==y1&&r==y2){
seg[i][j]^=;
return;
}
int mid=(l+r)/;
if(mid>=y2)updatey(i,l,mid,j*,y1,y2);
else if(mid<y1)updatey(i,mid+,r,j*+,y1,y2);
else {
updatey(i,l,mid,j*,y1,mid);//注意这里不要写成updatey(i,l,mid,j*2,y1,(y1+y2)/2)
updatey(i,mid+,r,j*+,mid+,y2);
}
}
void updatex(int i,int l,int r,int x1,int x2,int y1,int y2){
if(l==x1&&r==x2){
updatey(i,,n,,y1,y2);
return;
}
int mid=(l+r)/;
if(mid>=x2)updatex(i*,l,mid,x1,x2,y1,y2);
else if(mid<x1)updatex(i*+,mid+,r,x1,x2,y1,y2);
else {
updatex(i*,l,mid,x1,mid,y1,y2);
updatex(i*+,mid+,r,mid+,x2,y1,y2);
}
}
void queryY(int i,int l,int r,int j,int y ){
ans^=seg[i][j];
if(l==r)return;
int mid=(l+r)/;
if(mid>=y)queryY(i,l,mid,j*,y);
else
queryY(i,mid+,r,j*+,y); }
void queryX(int i,int l,int r,int x,int y){
queryY(i,,n,,y);
if(l==r)return;
int mid=(l+r)/;
if(mid>=x)queryX(i*,l,mid,x,y);
else
queryX(i*+,mid+,r,x,y); }
int t,x1,y1,x2,y2,cas;
char temp[];
int main(){
scanf("%d",&cas);
int tt=;
while(cas--){
memset(seg,,sizeof(seg));
scanf("%d%d",&n,&t);
if(tt>)printf("\n");
tt=;
for(int i=;i<=t;i++){
scanf("%s%d%d",temp,&x1,&y1);
if(temp[]=='C'){
scanf("%d%d",&x2,&y2);
updatex(,,n,x1,x2,y1,y2);
}
else{
ans=;
queryX(,,n,x1,y1);
printf("%d\n",ans);
} }
}
}

Matrix(线段树版)的更多相关文章

  1. BZOJ2028:[SHOI2009]会场预约(线段树版)

    浅谈树状数组与线段树:https://www.cnblogs.com/AKMer/p/9946944.html 题目传送门:https://www.lydsy.com/JudgeOnline/prob ...

  2. Fountains(非线段树版(主要是不太会用))

    Arkady plays Gardenscapes a lot. Arkady wants to build two new fountains. There are n available foun ...

  3. Luogu P3740 [HAOI2014]贴海报_线段树

    线段树版的海报 实际上这个与普通的线段树相差不大,只是貌似数据太水,暴力都可以过啊 本来以为要离散的,结果没打就A了 #include<iostream> #include<cstd ...

  4. Gym 101911E "Painting the Fence"(线段树区间更新+双端队列)

    传送门 题意: 庭院中有 n 个围栏,每个围栏上都被涂上了不同的颜色(数字表示): 有 m 条指令,每条指令给出一个整数 x ,你要做的就是将区间[ x第一次出现的位置 , x最后出现的位置 ]中的围 ...

  5. HDU 6318.Swaps and Inversions-求逆序对-线段树 or 归并排序 or 离散化+树状数组 (2018 Multi-University Training Contest 2 1010)

    6318.Swaps and Inversions 这个题就是找逆序对,然后逆序对数*min(x,y)就可以了. 官方题解:注意到逆序对=交换相邻需要交换的次数,那么输出 逆序对个数 即可. 求逆序对 ...

  6. UVALive - 5031 Graph and Queries (并查集+平衡树/线段树)

    给定一个图,支持三种操作: 1.删除一条边 2.查询与x结点相连的第k大的结点 3.修改x结点的权值 解法:离线倒序操作,平衡树or线段树维护连通块中的所有结点信息,加个合并操作就行了. 感觉线段树要 ...

  7. HDU-1556-Color the ball (线段树和差分数组两种解法)

    N个气球排成一排,从左到右依次编号为1,2,3....N.每次给定2个整数a b(a <= b),lele便为骑上他的"小飞鸽"牌电动车从气球a开始到气球b依次给每个气球涂一 ...

  8. Luogu P3740 [HAOI2014] 贴海报 线段树

    线段树版的海报 实际上这个与普通的线段树相差不大,只是貌似数据太水,暴力都可以过啊 本来以为要离散的,结果没打就A了 #include<iostream> #include<cstd ...

  9. B. Interesting Array(线段树)

    B. Interesting Array time limit per test 1 second memory limit per test 256 megabytes input standard ...

随机推荐

  1. Mybatis-Generator 详解 http://www.cnblogs.com/jtzfeng/p/5254798.html

    Mybatis-Generator 自动生成Dao.Model.Mapping相关文档 最近在学习mybatis,结果在写Mapping的映射文件时insert语句一直报错,于是想看看标准的映射文件是 ...

  2. Java学习的随笔(一)对象概念、this指针、权限修饰符

    最近在看<Java编程思想>,下面按照最近看书的顺序梳理一下心得,由于是初次学习,大部分心得是摘抄自书中: 1. Java中,每个变量都是一个对象. 在创建时首先在内存的堆栈中创建一个该对 ...

  3. Unity3D NGUI制作进度条

    利用GUI可以制作进度条,但是NGUI更加方便 我是用的NGUI3.5.3, 先找到NGUI  Slider的预制体,利用自带的UISlider来制作. 主要是利用UISlider的Value来控制进 ...

  4. [转] Linux文件系统之hard link&symbol link

    这个图很清楚的表示出硬链接和软链接的方式. 1.硬链接: 基本定义:硬链接是有着相同inode号的仅文件名不同的文件(该文件名包含路径信息). 理解:如图,hard link和原始file通过同一个i ...

  5. 试答卓同学的 iOS 面试题

    卓同学昨天写了一篇文章<4道过滤菜鸟的iOS面试题>.我手痒决定默写一个参考答案.后来发现不认真回答被大家喷成狗,所以决定积极改造,重新做人.下面就是修编之后的答案. 1. struct和 ...

  6. 循序渐近学docker---笔记

    1.安装docker 环境:ubuntu 16.04 sudo apt-get install docker.io root@ld-Lenovo-G470:~# docker -vDocker ver ...

  7. 13个简单有用的android开发代码

    1:查看是否有存储卡插入 String status=Environment.getExternalStorageState(); if(status.equals(Enviroment.MEDIA_ ...

  8. WMI概述

    关于wmi的定义可以在网上和msdn中查询,我在这里想说说自己对wmi的理解.Wmi是Windows Management Instrumentation(windows管理方法)的缩写.在wmi中微 ...

  9. (转)php中__autoload()方法详解

    转之--http://www.php100.com/html/php/lei/2013/0905/5267.html PHP在魔术函数__autoload()方法出现以前,如果你要在一个程序文件中实例 ...

  10. TSQL Challenge 2

    和之前发布的TSQL Challenge 1是同一系列的文章,看到那篇学习哪篇,没有固定的顺序,只为锻炼下思维. Compare rows in the same table and group th ...