题目大意:给出平面中的一些点,询问平面中的一些矩形中有多少点。
思路:正常应该是二维树状数组,然后数据范围太大。所以就只能按照一个坐标排序,另一个坐标跑树状数组。注意离线操作,一个问题拆成4个。
CODE:
#include
#include
#include
#include
#define MAX 500010
#define RANGE 10000010
u...
分类:
编程语言 时间:
2014-12-02 16:41:44
阅读次数:
298
恩。。。一开始以为是二维树状数组随便搞。。。后来看到数据范围额。。。好吧,首先离散化x,按y排序,然后树状数组维护前缀和最大值即可。(zky巨巨说是dp,那就算是dp好了,唔~)离散化的时候偷懒用了map 233 1 /****************************************...
分类:
其他好文 时间:
2014-11-30 13:52:51
阅读次数:
238
Matrix
Time Limit: 3000MS
Memory Limit: 65536K
Total Submissions: 19113
Accepted: 7193
Description
Given an N*N matrix A, whose elements are either 0 or 1. A[i, j] me...
分类:
编程语言 时间:
2014-11-28 10:25:34
阅读次数:
168
权值的种类只有100种,对每种开个二维BIT,然后是经典操作。 1 #include 2 using namespace std; 3 int n,m,q,x1,y1,x2,y2,val,op,a[301][301]; 4 struct BIT_2D 5 { 6 int d[301][301...
分类:
编程语言 时间:
2014-11-25 18:09:31
阅读次数:
136
二维树状数组。。。就是要记一堆东西,不想详细描述了233我去。。。多打了个分号调了1h。。。蒟蒻给跪了。。。快嘲笑蒟蒻!!! 1 /************************************************************** 2 Problem: 3132 3...
分类:
其他好文 时间:
2014-11-24 18:39:29
阅读次数:
152
题目链接:hdu 4456 Crowd
题目大意:给定N,然后M次操作
1 x y z:在x,y的位置加z2 x y z:询问与x,y曼哈顿距离小于z的点值和。
解题思路:将矩阵旋转45度,然后询问就等于是询问一个矩形,可以用容斥定理搞,维护用二维树状数组,但是空间开
不下,直接用离散化,将有用到的点处理出来。
#include
#include
#include
...
分类:
编程语言 时间:
2014-11-18 00:28:03
阅读次数:
239
题意:给出一个n*n的矩阵,然后m个operation,1表示坐标(x,y)的值加z,2表示与坐标(x,y)的曼哈顿距离不超过z的点的权值和。
解题思路:将矩阵侧过来45度,发现询问的时候,有效的点构成的其实是一个矩阵。然后就变成了单点修改,求矩阵和的问题。我们考虑裸二维树状数组的做法,会发现矩阵太大,但是注意到,初始的时候,矩阵里面所有的值都为0,那么这个二维树状数组中,有效的点就是修改的那些...
分类:
编程语言 时间:
2014-11-08 19:41:28
阅读次数:
211
这个题目刚开始没读懂,以为就是二维树状数组求上角矩阵和。
其实根本不用二维,因为数据已经有序,每次求的时候都是X方向上的比较。不过误打误撞也写了个离散化的代码。
WA:
#include
#include
#include
#include
#include
using namespace std;
#define N 15000
int c[N][N],n,mm;
int d[N];...
分类:
编程语言 时间:
2014-10-29 22:25:02
阅读次数:
295
题意:自行脑补
做法:直接开权值那么多的二维树状数组暴力。
Code:
#include
#include
#include
#include
using namespace std;
inline int getc() {
static const int L = 1 << 15;
static char buf[L], *S = buf, *T = buf;...
分类:
Web程序 时间:
2014-10-17 10:17:17
阅读次数:
241