树状数组
欧莎
啦啦啦,啦啦啦,让我们一起洗刷刷
展开
-
树状数组模板 hdu 2689
http://acm.hdu.edu.cn/showproblem.php?pid=2689题意是:给出一数列,可以任意的交换相邻的两个数,使得这个数列是递增的,问最少交换的次数。 思路:其实这道题呢,就是求有多少个逆序对,我写的是求的前i个数中比a[i]大的数的个数的和,也可以求后面比a[i]小的个数的和,原理一样的#include <iostream> #include <cstdio> #i原创 2016-07-31 17:42:29 · 261 阅读 · 0 评论 -
二维树状数组模板
const int MAX=1200; int c[MAX][MAX]; int n; int LowBit(int t) { return t&(-t); } int Sum(int endx,int endy) { int sum=0; int temp=endy; while(endx>0) { endy=temp;//原创 2016-08-01 10:39:34 · 231 阅读 · 0 评论 -
poj 2155 Matrix (二维树状数组)
题目链接http://poj.org/problem?id=2155题意 :这是我第一次做二维的树状数组,说实话我刚开始没看懂题的意思,然后再网上搜了一下博客,还是没懂,后来让同学给我讲了一下,我理解了,意思就是,给你一个矩阵,这个矩阵的初始值都为0 ,然后让你从左上角(x1,y2)到右下角(x2,y2)改变这个矩阵,值为1 的改为0,为0的话改为1, 然后再给出(x1,y1),查找a[x1,y1]原创 2016-08-01 18:11:25 · 269 阅读 · 0 评论 -
hdu 5775 Bubble Sort
http://acm.hdu.edu.cn/showproblem.php?pid=5775题意:让一列数进行冒泡排序,问排序过程中,最左边到最右边的差的绝对值。 思路:我感觉,这道题的难点就是用树状数组或者是线段数去求,每个数其后比它小的个数,然后最右边的位置是初始位置加上比它小的个数减去min(初始位置和,最终位置)最小的那个我是用的树状数组 #include<bits/stdc++.h>原创 2016-08-02 10:48:44 · 509 阅读 · 0 评论