树状数组
a10.
这个作者很懒,什么都没留下…
展开
-
2020牛客国庆集训派对day4 F
题目对于每一个位置,统计一下它移到上升那边和下降那边分别需要多少次,然后贪心取个最小值,就可以了。#include<cstdio>#include<algorithm>#include<cstring>#include<iostream>#include<vector>#include<cmath>#include<map> #include<string>#include<queue&原创 2020-10-04 18:54:17 · 781 阅读 · 0 评论 -
hihocoder 1926
题目图片来源我对公式的理解就是,当i<j且a[i]>a[j]时,会出现一对逆序对,i和j分别向左右延伸,根据乘法原理,ans的贡献就是图片那个,剩下的就是树状数组求逆序对了。#include<cstdio>#include<algorithm>#include<cstring>#include<iostream>#include<vector>#include<cmath>#include<map&原创 2020-08-15 18:20:11 · 116 阅读 · 0 评论 -
计蒜客 392 小朋友排队
题目这道题让我学会了如何求逆序对中某一个数要交换多少次。首先,一个数在求逆序对中的要交换的次数是前面比这个数大的个数+后面比这个数小的个数(假设要求从小到大排列)那我们就直接用树状数组维护了。不懂怎么求的看看代码就懂了。#include<cstdio>#include<algorithm>#include<cstring>#include<iostream>#include<vector>#include<cmath>原创 2020-08-10 18:44:46 · 83 阅读 · 0 评论 -
二维偏序 poj 2352 luogu 3431
这两题都是二维偏序,二维偏序的题怎么去做呢?回忆一下二维偏序,可以化为这样一个问题:设一个点为(x,y),问(1 ~ x-1,1 ~ y-1)(即一个点的左下方)有多少个点?那我们一般怎么做呢,就是固定一维(x或y)然后排序,在另一维统计答案。这么做的正确性看看题,手动模拟一下就知道了(严格证明我不知道)。poj 2352:很明显题目已经固定了y这一维,然后我们统计x就可以了。#include<cstdio>#include<algorithm>#include<原创 2020-08-10 17:36:20 · 290 阅读 · 0 评论