CF198 div1 D - Iahub and Xors
简单说就是左边x,y按照奇偶分为四种对于答案的影响都是不相关的
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MAXN = 1e3+5;
int N,M;
ll tree[4][MAXN][MAXN];
int ju(int x, int y) {
int tt = 0;
if(x%2) tt ++;
if(y%2) tt += 2;
return tt;
}
void Update(int x,int y, ll v) {
int ty = ju(x,y);
for(int i = x; i <= N; i += i&-i)
for(int j = y; j <= N; j += j&-j)
tree[ty][i][j] ^= v;
}
ll Sum(int x,int y) {
int ty = ju(x,y);
ll ans = 0;
for(int i = x; i > 0; i -= i&-i)
for(int j = y; j > 0; j -= j&-j)
ans ^= tree[ty][i][j];
return ans;
}
int main(){
while(~scanf("%d %d",&N,&M)) {
memset(tree ,0, sizeof(tree));
for(int i = 1; i <= M; ++i) {
int a,b,c,d; int ty; ll v;
scanf("%d",&ty);
if(ty == 2) {
scanf("%d %d %d %d %lld",&a,&b,&c,&d,&v);
Update(a,b,v);
Update(c+1,b,v);
Update(a,d+1,v);
Update(c+1,d+1,v);
}else {
ll ans = 0;
scanf("%d %d %d %d",&a,&b,&c,&d);
ans ^= Sum(c,d);
ans ^= Sum(a-1,d);
ans ^= Sum(c,b-1);
ans ^= Sum(a-1,b-1);
printf("%lld\n",ans);
}
}
}
return 0;
}
CF198 div1 D - Iahub and Xors的更多相关文章
- Codeforces Round #198 (Div. 1) D. Iahub and Xors 二维树状数组*
D. Iahub and Xors Iahub does not like background stories, so he'll tell you exactly what this prob ...
- CF341D Iahub and Xors
CF341D Iahub and Xors 给定一个 \(n\times n\) 的矩阵,平面异或,求平面异或和 \((n\leq10^3,\ m\leq10^5)\) 树状数组 这里主要是记录一下板 ...
- Codeforces D. Iahub and Xors
题目大意:给定一个N*N的区间,1:对(x0,y0,x1,y1)每个直 都xor v: 2: 求(x0,y0,x1,y1)区间的 sum xor: http://codeforces.com/blog ...
- Iahub and Xors Codeforces - 341D
二维线段树被卡M+T...于是去学二维树状数组区间更新区间查询 树状数组维护数列区间xor的修改.删除(就是把原问题改成一维): 以下p*i实际都指i个p相xor,即(i&1)*pa表示原数列 ...
- codeforces 341d (树状数组)
problem Iahub and Xors 题目大意 一个n*n的矩阵,要求支持两种操作. 操作1:将一个子矩阵的所有值异或某个数. 操作2:询问某个子矩阵的所以值的异或和. 解题分析 由于异或的特 ...
- Codeforces Round #198 (Div. 1 + Div. 2)
A. The Wall 求下gcd即可. B. Maximal Area Quadrilateral 枚举对角线,根据叉积判断顺.逆时针方向构成的最大面积. 由于点坐标绝对值不超过1000,用int比 ...
- CF#345 (Div1)
论蒟蒻如何被cf虐 以下是身败名裂后的题解菌=========== Div1 A.Watchmen 有n个点,每个点有一个坐标.求曼哈顿距离=欧几里得距离的点对数量. 只需要统计x或y一样的点对数量. ...
- 图论 SRM 674 Div1 VampireTree 250
Problem Statement You are a genealogist specializing in family trees of vampires. Vampire famil ...
- jq对象转为dom对象:$(".div1")[0] dom对象转为jq对象:$(dom对象)
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...
随机推荐
- BZOJ 3209: 花神的数论题 [数位DP]
3209: 花神的数论题 题意:求\(1到n\le 10^{15}\)二进制1的个数的乘积,取模1e7+7 二进制最多50位,我们统计每种1的个数的数的个数,快速幂再乘起来就行了 裸数位DP..\(f ...
- c语言中的register int
register int a=1; 明确声明必须要把变量存放在寄存器中,直到变量消失. 一般是默认register,大多数的情况下是不用写register
- MySQL操作中的一些细节及良好习惯--------持续更新中...
1.尽量不要写太过复杂的SQL查询,不要想着非要一次性将结果全部以前端要求的形式返回出来,可以多次分开查询,这样逻辑清晰,问题解决速度快,方便维护,并且SQL的效率也高. 2.在使用联表查询的时候,关 ...
- 安装gitlab8.0在reconfigure报错
现象: https://gitlab.com/gitlab-org/omnibus-gitlab/issues/303 参考方法: https://forum.gitlab.com/t/gitlab- ...
- CentOS源码安装Python3.6
一.安装环境及版本 CentOS 6.5 Python 3.6.1 二.安装依赖包 1.安装静态库 # yum install -y openssl-static 注:如果不安装该静态库,会导致pyt ...
- .NET常用第三方库(包)总结
文章会不定期更新,以下内容均为个人总结,欢迎各位拍砖指正 序列化与反序列化 JSON.NET应该是.NET平台上使用最为广泛的序列化/反序列化包了,ASP.NET和ASP.NET Core中默认序列化 ...
- Android app性能测试小结(7个性能指标)
1.性能测试的几个指标: 2.性能测试环境准备: 3.启动时间 3.1,监控值的获取方法 启动分为冷启动和热启动,冷启动:应用程序首次启动,进程首次创建并加载资源的过程:热启动:应用程序启 ...
- 【学习笔记】Spring JdbcTemplate (3-3-3)
Spring与JDBC模板(jdbcTemplate) 为了避免直接使用JDBC而带来的复杂冗长的代码 Spring提供的一个强有力的模板类 -- jdbcTemplate简化JDBC操作 并且数据源 ...
- Ehcache入门基础
1.ehcache的简介 EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点,是Hibernate中默认的CacheProvider. 2.ehcache入门实例 1.首先先导入 ...
- Java经典编程题50道之二十二
利用递归方法求5!. public class Example22 { public static void main(String[] args) { int n = 5; ...