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个点,要求给出有多少条线段包含至少其中一个点. ...
随机推荐
- .NET加水印/验证码的NuGet包
.NET加水印/验证码的NuGet包 我的在前两篇文章(水印,验证码)中,我介绍了使用Direct2D给图片加水印/验证码,今天我将其进行了封装,发布了一个NuGet包Sdcb.Imaging: &l ...
- Apache Flink 1.9 重大特性提前解读
今天在 Apache Flink meetup ·北京站进行 Flink 1.9 重大新特性进行了讲解,两位讲师分别是 戴资力/杨克特,zhisheng 我也从看完了整个 1.9 特性解读的直播,预计 ...
- Socket编程:UDP和TCP概论及案例
网络编程的三要素: 1.IP地址 2.端口 3.协议 什么是Socket? Socket就是通信链路的端点称"套接词". 基于TCP协议的Socket网络通信: 用来实现双向安全 ...
- Django配置MySQL数据库
一.在settings.py中配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 数据库引擎 'NAME': ' ...
- Java 设计模式 – Observer 观察者模式
目录 [隐藏] 1 代码 1.1 观察者接口: 1.2 被观察者: 1.3 观众类 : 1.4 电影类: 1.5 效果如下: 代码 说明都在注释: 观察者接口: package ObserverMod ...
- iview中page组件的跳转功能BUG解决方案
xl_echo编辑整理,欢迎转载,转载请声明文章来源.欢迎添加echo微信(微信号:t2421499075)交流学习. 百战不败,依不自称常胜,百败不颓,依能奋力前行.--这才是真正的堪称强大!! 在 ...
- rpm包制作介绍
RPM(Rpm Package Management)在ReadHat等发行版下被用作软件包管理程序,其将某个软件相关的文件置入一个.rpm包中,用rpm命令,我们可以方便地完成Linux下软件安装. ...
- 体验使用MUI上手练习app页面开发
因为公司安排需要先学习一点app开发,而安排学习的框架就是MUI,上手两天体验还算可以(来自后端人员的懵逼),靠着MUI的快捷键可以快速的完成自己想要的样式模板,更多的交互性的内容则需要使用js来完成 ...
- SBT安装及命令行打包spark程序
1.从https://www.scala-sbt.org/download.html官网上寻找所需要的安装包 可以直接本地下载完扔进去也可以wget路径,在这里我用的是sbt1.2.8版本的,下载到/ ...
- SQL语句完成Excel数据导入数据库表中流程方法及注意事项
第一步:先查看数据库是否安装AccessDatabaseEngine_X64.exe, 如下图查看: 如果未安装先下载脚本之家下载地址 https://www.jb51.net/softs/29150 ...