题意:中文题. 析:按x排序,然后用树状数组维护 y 即可. 代码如下: #pragma comment(linker, "/STACK:1024000000,1024000000") #include <cstdio> #include <string> #include <cstdlib> #include <cmath> #include <iostream> #include <cstring> #incl…
1935: [Shoi2007]Tree 园丁的烦恼 Time Limit: 15 Sec  Memory Limit: 357 MBSubmit: 980  Solved: 450[Submit][Status][Discuss] Description 很久很久以前,在遥远的大陆上有一个美丽的国家.统治着这个美丽国家的国王是一个园艺爱好者,在他的皇家花园里种植着各种奇花异草.有一天国王漫步在花园里,若有所思,他问一个园丁道: “最近我在思索一个问题,如果我们把花坛摆成六个六角形,那么……”…
题意 题目链接 Sol 二维数点板子题 首先把询问拆成四个矩形 然后离散化+树状数组统计就可以了 // luogu-judger-enable-o2 #include<bits/stdc++.h> #define LL long long using namespace std; const int MAXN = 4e6 + 10; inline int read() { char c = getchar(); int x = 0, f = 1; while(c < '0' || c &…
原文地址:http://www.cnblogs.com/GXZlegend/p/6825530.html bzoj4822 题目描述 老 C 是个程序员.     最近老 C 从老板那里接到了一个任务——给城市中的手机基站写个管理系统.作为经验丰富的程序员,老 C 轻松地完成了系统的大部分功能,并把其中一个功能交给你来实现.由于一个基站的面积相对于整个城市面积来说非常的小,因此每个的基站都可以看作坐标系中的一个点,其位置可以用坐标(x, y)来表示.此外,每个基站还有很多属性,例如高度.功率等.…
传送门 刚才我还在郁闷网上怎么没人用$CDQ$分治做 突然发现根本没有时间序.... #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> using namespace std; ; inline int read(){ ,f=; ; c=getchar();} +c-'; c=getchar();} return x*…
CDQ分治版本 我们把询问拆成四个前缀和,也就是二维前缀和的表达式, 我们把所有操作放入一个序列中 操作1代表在x,y出现一个树 操作2代表加上在x,y内部树的个数 操作3代表减去在x,y内部树的个数 我们对X进行归并排序,并用CDQ计算机左区间对右区间的影响 由于CDQ分治的特性,我们已经求得了[L,MID]之间答案 以及 [MID+1,R]之间答案 那么[L,MID] 对[MID+1,R] 的影响是什么呢? 很简单,对于L<=i<=MID , MID+1<=j<=R 来说 i…
题目大意: 一些点,每次查询一个矩形内有多少个点 思路: 因为空间太大 所以不能用什么二维树状数组 需要把这些点和所有查询的矩阵的左下和右上离线下来 先离散化 然后每个子矩阵像二维前缀和那样查询 按照x升序加入点,对于矩阵的点查询 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm…
标题效果:一些珠子项链.珠具有不同的颜色.我们问了很多次有多少种不同的颜色有过一段范围. 思考:这个问题让我学会聪明的离线实践.按左端点排序问题.加工出来的位置每种颜色首次出现.每一种颜色的下一次出现的位置.然后,1至cnt周期,这里有一个问题的左端点是当前节点,就处理他的答案.方法是前缀合,能够用树状数组.然后把这个颜色的下一个出现的位置+1. 这样做就避免了一种颜色在询问中被处理两次. CODE: #include <cstdio> #include <cstring> #in…
http://www.lydsy.com/JudgeOnline/problem.php?id=4765 很nice的一道题啊(可能是因为卡了n久终于做出来了 题意就是给你一棵带点权的有根树,sum(i)表示以i为根的这颗子树中所有节点的权值和.有两种操作,一种是修改某个点的权值,另一种是给出l,r,求sum(l)+sum(l+1)...+sum(r). 首先考虑一个简单的问题,如果单求其中一个sum(i),我们可以怎样做. 很明显我们画个图,我们可以看到每个点打上dfs序之后,每个sum就变成…
BZOJ 洛谷 \(Description\) 求所有区间和的异或和. \(n\leq 10^5,\ \sum a_i\leq 10^6\). \(Solution\) 这样的题还是要先考虑按位做. 记\(s_i\)表示前缀和(\(s_0\)=0).假设当前是第\(k\)位,我们要统计区间和在第\(k\)位为\(1\)的区间有多少个(或是奇偶性). 枚举区间右端点\(i\),然后我们要统计有多少个\(s_i-s_j\)在第\(k\)位为\(1\). 当\(s_i\)第\(k\)位为\(1\)时:…