Fishermen Gym - 101964E (二分+差分求前缀和)

博客参考:https://www.cnblogs.com/Tianwell/p/11778494.html

主要是思想:

1、首先,l以上的所有鱼都不肯被捕捉

2、如果从捕鱼人来看,要两重循环,先循环捕鱼人在循环鱼

换一种思考,从鱼的角度,计算每条鱼可以被捕捉的x区间[L,R],在计算前缀和即可

需要注意:lower_bound(a,a+n,x)-a;寻找的是a中第一个大于等于x的值

                  upper_bound(a,a+n,x) - a;  寻找的是第一个大于x的值  此函数采用的是二分查找

3、sum[L]++;   sum[R]--;    

 左区间+1说明从此点开始之后的捕鱼人皆可捕到这条鱼,右区间-1,说明过了此点,这条鱼将不再被该点后的捕鱼人捕到。

for (int i=1;i<=m;i++){

     sum[i]+=sum[i-1];

}

posted @ 2020-10-23 19:24  吉吉的奥利奥  阅读(144)  评论(0编辑  收藏  举报