摘要:
POJ 2104为例思想:利用归并排序的思想:建树过程和归并排序类似,每个数列都是子树序列的合并与排序。查询过程,如果所查询区间完全包含在当前区间中,则直接返回当前区间内小于所求数的元素个数,否则递归的对子树进行求解并相加。使用STL中的merge对子序列进行合并及排序。时间复杂度... 阅读全文
摘要:
POJ 2104为例【经典划分树问题】思想:利用快速排序思想,建树时将区间内的值与区间中值相比,小于则放入左子树,大于则放入右子树,如果相等则放入左子树直到放满区间一半。查询时,在建树过程中利用leftsum[p][i]数组保存有多少个数划分到第p层,第i个位置的左边。每次查询计算... 阅读全文
摘要:
完全不知道该怎么用,看书稍微懂了点。题意:给定序列及操作,求区间和。分析:树状数组可以高效的求出连续一段元素之和或更新单个元素的值。但是无法高效的给某一个区间的所有元素同时加个值。 不能直接用树状数组求,就处理一下。用两个树状数组维护两个数据,一个维护前i项和,一个维护增加的值。设... 阅读全文
摘要:
题意:给定序列及操作,求区间和。分析:线段树,每个节点维护两个数据:该区间每个元素所加的值该区间元素和可以分为“路过”该区间和“完全覆盖”该区间考虑。代码:#include#include#includeusing namespace std;typedef long long l... 阅读全文
摘要:
题意:给定每个兵营的最大容量,以及第i到第j个兵营至少有多少个士兵,问所有兵营一共至少有多少个士兵?分析:差分约束系统,注意第i到第j至少有k个第i到第j最多有最大容量之和个每个兵营至少有0个每个兵营最多有最大容量个代码:#include#include#include#inclu... 阅读全文
摘要:
题意:给定每个兵营的最大容量,以及第i到第j个兵营至少有多少个士兵,问所有兵营一共至少有多少个士兵?分析:差分约束系统,注意第i到第j至少有k个第i到第j最多有最大容量之和个每个兵营至少有0个每个兵营最多有最大容量个代码:#include#include#include#inclu... 阅读全文
摘要:
大早上水一发=。=题意:n头牛按编号顺序站成一列,给定n头牛之间的位置关系,求出第n头牛和第一头牛之间的最大距离。分析:差分约束系统,这题不等式关系还是挺好找的。注意因为按照顺序排列,所以有d[i+1]>=d[i]代码:#include#includeusing namespace... 阅读全文
摘要:
大早上水一发=。=题意:n头牛按编号顺序站成一列,给定n头牛之间的位置关系,求出第n头牛和第一头牛之间的最大距离。分析:差分约束系统,这题不等式关系还是挺好找的。注意因为按照顺序排列,所以有d[i+1]>=d[i]代码:#include#includeusing namespace... 阅读全文
摘要:
题意:若干球最初从高到低排列,依次落下。 球与地面碰撞,速度不变方向相反,球之间碰撞, 交换速度和方向。问某一时刻各个球的高度。分析:把球之间的碰撞看成是擦肩而过,但是由于半径的存在,最后每个球的高度都要加上2∗i∗r,还有注意半径的单位是cm代码:#include#include... 阅读全文
摘要:
题意:无向图,求单源次短路,每条边可以走多次。分析:对于每个点记录最短路和次短路,次短路可以是由最短路+边或者是次短路+边更新而来。在更新每个点的最短路时,相应更新次短路,如果最短路更新了,就令次短路等于原来的最短路,如果没有,就看能否直接更新次短路。代码:#include#inc... 阅读全文