摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4006题意很简单,求第k大的数。用优先队列,输入的时候,队首元素是最小的,每输入一个元素,队列掺毒是否大于 K,若大于k,删除队首元素,这样队首元素永远是第k大的数。#include <iostream>#include <cstdio>#include <queue>#include <vector>#include <algorithm>using namespace std;int main(){ int n,m,i,a; char 阅读全文
posted @ 2012-07-19 10:16 pony1993 阅读(191) 评论(1) 推荐(0) 编辑
摘要: 树状数组是一个查询和修改复杂度都为log(n)的数据结构,假设数组a[1..n],用lowbit函数维护了一个树的结构那么查询a[1]+...+a[n]的时间是log级别的,而且是一个在线的数据结构,支持随时修改某个元素的值,复杂度也为log级别。来观察这个图:令这棵树的结点编号为C1,C2...Cn。令每个结点的值为这棵树的值的总和,那么容易发现:C1 = A1C2 = A1 + A2C3 = A3C4 = A1 + A2 + A3 + A4C5 = A5C6 = A5 + A6C7 = A7C8 = A1 + A2 + A3 + A4 + A5 + A6 + A7 + A8C16 = A1 阅读全文
posted @ 2012-07-19 07:36 pony1993 阅读(210) 评论(0) 推荐(0) 编辑

View My Stats