摘要: 由于英语极差,看了半天也没看懂题目,最后参考了其他人的题解才搞懂题目,我就直接把题意贴过来了 题意:这道题目只是题意自己就去理解了半天,大概题意如下:给出i一个n*n的矩阵,初始化为均为0,还有关于这个矩阵的几种操作,操作如下:命令1:(X Y A)对位于坐标(X Y)的值加A;命令2:(L B R T)求出位于L#include const int maxn = 1030;int n, a[maxn][maxn];int lowbit(int x){ return x & (-x);}void update(int i, int j, int v){ int t; w... 阅读全文
posted @ 2013-04-05 10:55 xindoo 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 二叉树▪二叉树▪二叉查找树▪笛卡尔树▪Top tree▪T树自平衡二叉查找树▪AA树▪AVL树▪红黑树▪伸展树▪树堆▪节点大小平衡树B树▪B树▪B+树▪B*树▪Bx树▪UB树▪2-3树▪2-3-4树▪(a,b)-树▪Dancing tree▪H树Trie▪前缀树▪后缀树▪基数树空间划分树▪四叉树▪八叉树▪k-d树▪vp-树▪R树▪R*树▪R+树▪X树▪M树▪线段树▪希尔伯特R树▪优先R树非二叉树▪Exponential tree▪Fusion tree▪区间树▪PQ tree▪Range tree▪SPQR tree▪Van Emde Boas tree其他类型▪堆▪散列树▪Finger tr 阅读全文
posted @ 2013-04-04 22:35 xindoo 阅读(294) 评论(0) 推荐(0) 编辑
摘要: 1195 Mobile phones 树状数组 题解1455 Crazy tea party 题解1521 Entropy huffman题解1703 Find them, Catch them 并查集1785 Binary Search Heap Construction1794 Castle Walls 逆序对1961 Period KMP重复因子题解1984* Navigation Nightmare 并查集+坐标平移1986* Distance Queries LCA1988* Cube Stacking 并查集应用1990... 阅读全文
posted @ 2013-04-04 20:38 xindoo 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 无疑是STL 中最大的一个头文件,它是由一大堆模板函数组成的。下面列举出中的模板函数:adjacent_find / binary_search / copy / copy_backward / count/ count_if / equal / equal_range / fill / fill_n / find /find_end / find_first_of / find_if / for_each / generate /generate_n / includes / inplace_merge / iter_swap /lexicographical_compare / lower 阅读全文
posted @ 2013-04-04 20:27 xindoo 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 全排列函数next_permutationSTL中专门用于排列的函数(可以处理存在重复数据集的排列问题)头文件:#includeusingnamespacestd;调用:next_permutation(start,end);注意:函数要求输入的是一个升序排列的序列的头指针和尾指针.用法:// 数组int a[N];sort(a, a+N);next_permutation(a, a+N);// 向量vector ivec;sort(ivec.begin(), ivec.end());next_permutation(ivec.begin(), ivec.end());例子:vector my 阅读全文
posted @ 2013-04-04 08:18 xindoo 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 题目链接 很容易理解题目的意思,就是求某个点到其他点的距离之和,而且要让这个和最小,很明显是求中位数了。 关于求中位数,一般的方法是我们先将整个数组进行排序,然后直接取出中位数,采用不同的排序方法可能有不同的时间复杂度,一般我们使用快排,时间复杂度为O(nlogn),有没有更快的方法? 答案是肯定的。 这里有一种时间复杂度为O(n)的算法,下面是此题的解题代码。//uva 10041 - Vito's Family#include #include #include using namespace std;int a[40000];int partition(int l, int .. 阅读全文
posted @ 2013-04-03 16:25 xindoo 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 暴力超时,这道题可以用线段树做,因为更新的是单个节点,我们也可以用数组数组来做,我将两种方法的代码都给出 数组数组最适宜的用途就是区间求和和点的更新,但树状数组并不适用于区间的更新问题,也不是做不到,比较麻烦且难理解,有兴趣的可以看看这个http://blog.csdn.net/xindoo/article/details/8748410//树状数组#includeint n,ans[50005],f[50005];int lowbit(int n){ return n&(-n);}void add(int i,int v){ while(i #include #define... 阅读全文
posted @ 2013-04-01 21:31 xindoo 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 本文扩写自郭神的《树状数组新应用》,在此表示膜拜。树状数组的学名貌似叫做BinaryIndexTree,关于它的基本应用可参考Topcoder上的这篇Tutorial.树状数组可以看作一个受限制的线段树,它维护一个数组,最经典的树状数组支持的基本操作有两个:(1)改变某一个元素的值(2)查询某一个区间内所有元素的和。在此基础上,经过简单的变形可以变成支持另一组操作:(1)把一个区间内所有元素都加上一个值(2)查询某一个元素的值。这两个都是已经泛滥了的东西了,在此不赘述。简单的树状数组模型是不支持这样一组操作的:(1)把某一个区间内所有元素都加上一个值(2)查询某一个区间内所有元素的和。当... 阅读全文
posted @ 2013-04-01 20:43 xindoo 阅读(475) 评论(0) 推荐(0) 编辑
摘要: 传送门题目意思很简单,有N个数,Q个操作, Q l r 表示查询从l到r 的和,C l r v 表示将从l到r 的值加上v,明显的线段树,不知道线段树的人肯定暴力,肯定超时,哈哈!!解题方法我在代码注释中写的很详细了#include const int maxn = 100005; typedef __int64 ll; //Hint The sums may exceed the range of 32-bit integers.int a[maxn];struct node ... 阅读全文
posted @ 2013-04-01 20:07 xindoo 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 这段时间,做ACM的状态特别不好,经人推荐,了解了一下python,发现python确实很强大,而且语法简洁清晰,感觉用起来很方便(虽然还不会)。 在看刘汝佳的白书的时候,在最后附录,他也推荐python,并不是因为可以使用python做比赛(据我所知,貌似只有codeforces上可以使用python),只是用他可以快速的生成测试数据、对拍器什么的,帮助我们完成比赛。 下面简单谈谈我目前对python的了解(我最近要准备省赛,python学学得搁置会了),因为目前只会c,就拿c来对比了。 python 支持一些c所不支持的类型,比如复数和大整数,而且省去了变量的定义,也... 阅读全文
posted @ 2013-03-29 09:31 xindoo 阅读(175) 评论(0) 推荐(0) 编辑