- 博客(5)
- 收藏
- 关注
原创 HDU 1394 (树状数组)
求所有序列中最小的逆序数,枚举会超时。 移动时,从第一个数字开始移动,每次移动一位。 xi:序列中大于数字a[i]的个数 yi:序列中小于数字a[i]的个数 逆序数计算方法: 移动后的逆序数=移动前的逆序数+xi-yi; #include #include #include #define N 5005 #define lowbit(x) (x&-x) usin
2016-08-24 11:09:04 216
原创 poj 1195 树状数组
二维树状数组,每一行用一个树状数组表示 在求和和更新的时候,要对指定的行操作。 执行指令2 时,对l~r行逐个求和相加。 注意:把所有的坐标加一,树状数组更新数据时位置不能为零 #include #include #include #define N 1030 #define lowbit(x) (x&-x) using namespace std; int c[N][N],n;
2016-08-23 17:01:53 171
原创 poj 2299 树状数组 离散化
树状数组求逆序数+离散化 求逆序数时,加入当前数字,然后统计大于当前数字的数字个数, 题目数据很大,需先将其离散化。 #include #include #include #define N 500005 #define lowbit(x) (x&-x) using namespace std; int c[N], a[N]; struct Discre { int pos, v; }di
2016-08-23 16:20:07 211
原创 poj 2481 树状数组
poj 2481 树状数组 题目大意:有n个cow,每一个都有自己的区间,如果a是b的真子集,则说b比a强。 问每个cow比多少个cow弱。 分析: 即求一个区间是多少个区间的真子集。把cow按s的升序排列,若相等则按e的降序排列, 然后依次加入树状数组,加入前记录e大于当前e【i】的cow数量。然后按顺序输出即可。可用结构体记录cow的相关参数。 注意:Huge inp
2016-08-23 15:46:20 225
原创 POJ 2352 (树状数组)
题目大意: 在坐标上有n个星星,如果某个星星坐标为(x, y), 它的左下位置为: (x0,y0),x0<=x 且y0<=y。如果左下位置有a个星星,就表示这个星 星属于level x 按照y递增,如果y相同则x递增的顺序给出n个星星,求出所有level水平的数量。 分析与总结: 因为输入是按照按照y递增,如果y相同则x递增的顺序给出的, 所以,对于第i颗星星,它 的level就是之前出现过的星星中,横坐标x小于等于i星横坐标的那些星星的总数量(前面 的y一定比后面的y小)。 所以,需要找
2016-08-22 17:25:42 177
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人