树状数组
河渔船
成长的小垃圾
展开
-
逆序对
https://www.luogu.org/problem/show?pid=1908 做法:O(nlogn) 每次加入一个数,把当前输入进的数中比这个数大的数求和,用树状数组b来维护,b[i]表示的是 i~i+lowbit(i) *的个数和*,每输入进一个数,就把b数组更新.#include<iostream>#include<cstring>#include<cstdio>#incl原创 2017-08-03 18:00:55 · 216 阅读 · 0 评论 -
P2345 奶牛集会/P2657 低头一族
luogu 传送门 双倍经验! 树状数组题 v[i]只有当和比它小的v[j]一起运算时才对答案有贡献。 我们可以这样来处理,离线来做。将所有奶牛按照v升序排序,然后一个奶牛一个奶牛的查询,再插入。 我们要树状数组来维护一个数组cnt[i],和sum[i]表示i-lowbit(i) ~ i范围内数的个数和这些数的和。 我们查询时,记num1为前i-1头奶牛中小于x[i]的头数,nu原创 2017-08-11 15:36:53 · 309 阅读 · 0 评论 -
区间平均值(逆序对)
【问题描述】有 个数,随机选择一段区间,如果这段区间的所有数的平均值在[l , r]中则 你比较厉害。求你比较厉害的概率。【输入格式】第一行有三个数 N,l ,r,含义如上描述。 接下一行有 个数代表每一个数的值。【输出格式】 输出一行一个分数 代表答案,其中 , 互质。如果答案为整数则直接输出该整数即可。【样例输入 1】4 2 3 3 1 2 4【样例输出 1】7/10【样例输入 2原创 2017-10-06 18:04:34 · 1444 阅读 · 0 评论 -
洛谷10月月赛R1·浴谷八连测R1·提高组 SAC E#1 - T2一道简单题 Sequence2
SAC E#1 - T2一道简单题 Sequence2清晰版题目描述 小强拿到一个3×n的数组,要在每一列选一个数(或者不选),满足以下条件: 1.如果在第一行选,那它必须大于等于上一个数 2.如果在第二行选,那么必须小于等于上一个数 3.如果在第三行选,对于连续的一段在第三行选的数,必须满足方向相同(都小于等于上一个数或者都大于等于上一个数)20分:暴力枚举每一个位置 不选,选1,选2,选原创 2017-10-15 16:46:45 · 467 阅读 · 2 评论