8.24

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_37891604/article/details/82025884

poj 1990 MooFest

由于是求dis(i,j)*max(v[i],v[j]),所以将v从小到大排序,则目前处理的v是当前最大的。

那么对于任一的一点i,i之前的牛的音量值肯定小于v[i],但是坐标的值可能比x[i]大也可能比x[i]小,因此我们应该分成两部分来考虑,就是坐标是i的左边和右边首先考虑左边的情况,假设左边比小于等于v[i]的牛有三头坐标分别为a b c,那么左边的值就是v[i]*(x[i]-a)+v[i]*(x[i]-b)+v[i]*(x[i]-c) => v[i]*(3*x[i]-(a+b+c))那么我们假设左边小于v[i]的牛有countLeft头,总的坐标为totalLeft,那么左边的值为v[i]*(countLeft*x[i]-totalLeft);接下来考虑右边的情况,由于我们已经按照v的值排序,那么我们能够很好的计算出小于等于v[i]的音量值的总的坐标之后,我们设为totalDis,那么根据左边求出的小于等于v[i]的个数为countLeft,那么右边的个数为i-countLeft,那么同理右边的坐标之和为totalDis-totalLeft , 那么右边的值为v[i]*(totalDis-totalLeft-(i-countLeft)*x[i]);那么对于排序后的第i头牛来说比它小的音量的牛的值为v[i]*(countLeft*x[i]-totalLeft)+v[i]*(totalDis-totalLeft-(i-countLeft)*x[i]); 我们已经知道了公式,现在我们只要去求countLeft和totalLeft即可,由于我们已经按照v的值排序, 那么我们只要对坐标建立两个树状数组即可。一个用来存储个数,一个用来存储

坐标之和,那么对于第i头牛来说我们就能够在O(logn)的时间内求出countLeft和totalLeft

HDU 1556 Color the ball(树状数组)

区间更新,单点查询的裸题了,随便搞搞就过了。、

HDU 3874 Necklace(树状数组+离线处理)

求区间内不同数字的和。和以前做的求区间内不同数字的个数一样。就是个离线处理。

POJ 3368 Frequent Values(RMQ)

求非降序列中某段区间内出现次数最多的数的出现次数。由于是非降所以相同的数字都会排在一起。 由于a[n]是升序排列的,所以给a数组游程编码为(v,num)其中v是a[i]的值,num是v这个相同的值出现的次数。用RMQ维护一个数组d[j]=num,表示从左到右出现的所有值中第j个出现的值连续出现了num次。然后给每一个a[i]建立num[i], left[num[i]] , right[num[i]],分别表示: a[i]的值在所有出现的值中是在第num[i]个出现的(num[i]就是分析1中a[i]值的出现次数在RMQ中的编号j) 与a[i]值相同的连续值最左边的那个是位于left[num[i]]位置,最右边的那个是位于right[num[i]]位置,并且。

对于一个查询[L,R],首先求出L,和R分别属于个num[],如果num[L]==num[R],那么ans=R-L+1

扫描二维码关注公众号,回复: 2950743 查看本文章

否则,与L相同的值出现了right[num[L]]-L+1次,与R相同的值出现了R-left[num[R]]+1次,在L与R中间(如果有的话)的值最多出现了。GetMax(num[L]+1,num[R]-1)次最终结果就是 MAX(right[num[L]]-L+1 ,R-left[num[R]]+1 ,GetMax(num[L]+1,num[R]-1))。

POJ 3264 Balanced Lineup(简单RMQ

这个就是板子求区间内最大值有最小值的差。

HDU 3183 A Magic Lamp

贪心,删除m个数后剩下的数最小。比如176832,删除一位使得剩下的数值最小。结果是删除7而不是删除8所以可知并不总是删除最大的那个数字。 一种可行的贪心策略是:对于n位数构成的数删除m位,每次总是删除这样的a[i]:它是第一个a[i]>a[i+1]的数,如果不存在则就删除a[n]。坑点就是把n==m时就都删除输出0,不能有前导零。

POJ 2019 Cornfields(简单二维RMQ)

二维RMQ,求矩形内最大值与最小值的差。

HDU 2888 Check Corners(简单二维RMQ)

和上一题一样。

牛客比赛可以说很爽了

 

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/qq_37891604/article/details/82025884