[BZOJ4994] [Usaco2017 Feb]Why Did the Cow Cross the Road III(树状数组)


传送门

1.每个数的左右位置预处理出来,按照左端点排序,因为左端点是从小到大的,我们只需要知道每条线段包含了多少个前面线段的右端点即可,可以用树状数组

2.如果 ai < bj < bi, 也就是说在两个i之间只有一个j那么对答案的贡献为1,所以可以用树状数组,当第一次出现一个数的时候,那个位置+1,当第二次出现的时候,第一次出现的位置再1,也就是把它对答案的贡献去掉,同样是树状数组统计答案

#include <cstdio>#include <iostream>#define N 200001int n, ans;int sum[N], vis[N];inline int read()inline int query(int x)inline void add(int x, int d)int main()std::cout << ans;return 0;}

  



上一篇:[BZOJ4989] [Usaco2017 Feb]Why Did the Cow Cross the Road(树状数组)

下一篇:[BZOJ4776] [Usaco2017 Open]Modern Art(差分 + 思维?)


树状数组
Copyright © 2002-2019 k262电脑网 www.k262.cn 皖ICP备2020016292号
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!QQ:251442993 热门搜索 网站地图