codeforces 869 E. The Untended Antiquity(树状数组)
题目链接:http://codeforces.com/contest/869/problem/E
题解:这题是挺好想到solution的但是不太好写,由于题目的特殊要求每个矩形不会重贴所以只要这两个点最内抱着他们的是同一个矩形就行了。就是最近抱汉她们的矩形是同一个就行了。有一种方法挺好的主要是数据是大多数随机的,所以可以考虑hash一下rand一下每个点的赋值然后求前缀和相同就是满足条件的,这里可以用一下2维德树状数组做一下。seed尽量大点这样失败的概率也就小点官方题解有详细的概率数据可以参考一下。然后就这样了........
#include <iostream>
#include <cstring>
#include <cstdio>
#include <map>
using namespace std;
const int M = + ;
typedef unsigned long long ll;
pair<ll , ll> mmp[M][M];
pair<ll , ll> nub[M][M];
void add(int x , int y , pair<int , int> num) {
for(int i = x ; i <= ; i += (i & (-i))) {
for(int j = y ; j <= ; j += (j & (-j))) {
nub[i][j].first += num.first;
nub[i][j].second += num.second;
}
}
}
pair<ll , ll> query(int x , int y) {
pair<ll , ll> res;
for(int i = x ; i ; i -= (i & (-i))) {
for(int j = y ; j ; j -= (j & (-j))) {
res.first += nub[i][j].first;
res.second += nub[i][j].second;
}
}
return res;
}
int main() {
int n , m , q;
int t , r1 , c1 , r2 , c2;
scanf("%d%d%d" , &n , &m , &q);
srand(( << ));
pair<ll , ll> ad , rd;
while(q--) {
scanf("%d%d%d%d%d" , &t , &r1 , &c1 , &r2 , &c2);
if(t == ) {
ad.first = mmp[r1][c1].first = rand();
ad.second = mmp[r1][c1].second = rand();
rd.first = -ad.first;
rd.second = -ad.second;
add(r1 , c1 , ad);
add(r2 + , c1 , rd);
add(r1 , c2 + , rd);
add(r2 + , c2 + , ad);
}
if(t == ) {
rd = mmp[r1][c1];
ad.first = -rd.first;
ad.second = -rd.second;
add(r1 , c1 , ad);
add(r2 + , c1 , rd);
add(r1 , c2 + , rd);
add(r2 + , c2 + , ad);
mmp[r1][c1] = make_pair( , );
}
if(t == ) {
ad = query(r1 , c1);
rd = query(r2 , c2);
if(ad == rd) printf("Yes\n");
else printf("No\n");
}
}
return ;
}
codeforces 869 E. The Untended Antiquity(树状数组)的更多相关文章
- Educational Codeforces Round 10 D. Nested Segments (树状数组)
题目链接:http://codeforces.com/problemset/problem/652/D 给你n个不同的区间,L或者R不会出现相同的数字,问你每一个区间包含多少个区间. 我是先把每个区间 ...
- Codeforces Gym 100114 H. Milestones 离线树状数组
H. Milestones Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100114 Descripti ...
- Codeforces - 828E DNA Evolution —— 很多棵树状数组
题目链接:http://codeforces.com/contest/828/problem/E E. DNA Evolution time limit per test 2 seconds memo ...
- Codeforces Gym 100269F Flight Boarding Optimization 树状数组维护dp
Flight Boarding Optimization 题目连接: http://codeforces.com/gym/100269/attachments Description Peter is ...
- Codeforces 570D TREE REQUESTS dfs序+树状数组 异或
http://codeforces.com/problemset/problem/570/D Tree Requests time limit per test 2 seconds memory li ...
- Codeforces 786C Till I Collapse(树状数组+扫描线+倍增)
[题目链接] http://codeforces.com/contest/786/problem/C [题目大意] 给出一个数列,问对于不同的k,将区间划分为几个, 每个区间出现不同元素个数不超过k时 ...
- Codeforces 946G Almost Increasing Array (树状数组优化DP)
题目链接 Educational Codeforces Round 39 Problem G 题意 给定一个序列,求把他变成Almost Increasing Array需要改变的最小元素个数. ...
- Codeforces 216D Spider's Web 树状数组+模拟
题目链接:http://codeforces.com/problemset/problem/216/D 题意: 对于一个梯形区域,假设梯形左边的点数!=梯形右边的点数,那么这个梯形为红色.否则为绿色, ...
- CodeForces - 369E Valera and Queries(树状数组)
CodeForces - 369E Valera and Queries 题目大意:给出n个线段(线段的左端点和右端点坐标)和m个查询,每个查询有cnt个点,要求给出有多少条线段包含至少其中一个点. ...
随机推荐
- 【Intellij】Hot Swap Failed & class reloaded
用 Intellij IDEA 编译程序时遇到了这个问题,如下图所示: 对结果貌似没什么影响,但暂时没找到出现这个情况的原因……
- Asp.Net Core 发布到 Docker(Linux Centos 虚拟机,使用Dockerfile)
实践一下 Asp.Net Core (基于.net core 2.2)部署到Docker 一.准备工作: 1. 使用Virtualbox创建一个Centos系统的虚拟机,并安装docker和vim 2 ...
- umask 默认权限控制和特殊权限
权限简单介绍: 在Linux中,创建目录或者文件之后总会有默认的权限.共9个,分为三组.分别代表u.g.o(属主.属组.其他用户).r.w.x 也代表各自的权限. r:读 在文件中的权限代表次文件 ...
- GStreamer流媒体知识介绍
GStreamer框架 1.GStreamer是什么? 众所周知,Microsoft's Windows和Apple's MacOS对多媒体设备.多媒体创作.播放和实时处理等方面都有很好的支持,而Li ...
- 自定义itemCheckView
极力推荐文章:欢迎收藏 Android 干货分享 阅读五分钟,每日十点,和您一起终身学习,这里是程序员Android 本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以 ...
- JAVA jobs
Java岗位1, SpringMVC, spring, mybaits2, 高并发编程3, mysql或者oracle SQL调优及函数,存储过程,JOB调度
- java并发编程(十三)----(JUC原子类)引用类型介绍(CAS和ABA的介绍)
这一节我们将探讨引用类型原子类:AtomicReference, AtomicStampedRerence, AtomicMarkableReference.AtomicReference的使用非常简 ...
- LayDate使用
layDate非常愿意和您成为工作伙伴.她致力于成为全球最用心的web日期支撑,为国内外所有从事web应用开发的同仁提供力所能及的动力.她基于原生JavaScript精心雕琢,兼容了包括IE6在内的所 ...
- H5中的history方法Api介绍
最近公司在做一个微信公众号,看了项目源码,看到项目中用到了history的Api来进行控制浏览器的历史记录及前进/后退键: 下面来跟大家一起来捋捋history的Api方法和使用: history.p ...
- 页面性能监控之performance
页面性能监测之performance author: @TiffanysBear 最近,需要对业务上的一些性能做一些优化,比如降低首屏时间.减少核心按钮可操作时间等的一些操作:在这之前,需要建立的就是 ...