首页 > TAG信息列表 > LNOI2019
P5501 [LnOI2019]来者不拒,去者不追 题解
题面 首先进行一个转化:每个询问区间 \([l,r]\) 中一对 \((i,j)\),如果 \(a_i< a_j\) 会造成 \(a_i\) 的贡献。最后再加一个区间和就是答案。 考虑这是一个区间每对数的贡献,并且具有可减性,上莫队二次离线那一套。考虑一个位置 \(x\) 对一个区间 \([l,r]\) 的贡献 \(f(x,[l,r])\),拆成P5501 [LnOI2019]来者不拒,去者不追
来者不拒,去者不追 考虑莫队,挪动指针往区间 \([l,r]\) 中加入一个数 \(x\),产生的贡献就是 \(比 x 大的数之和 + 比 x 小的数的个数\times x +x\) 然后这样是 \(O(n\sqrt m \log n\)) 的 发现如果不加最后那个 \(x\) 的话就是可差分的(等于对 \([1,r]\) 的贡献减去对 \([1,l]\) 的洛谷 P5501 [LnOI2019]来者不拒,去者不追
题目描述 给定长度为 \(n\) 的序列 \(a\),给出 \(m\) 个询问。 对于每个询问,给出一个区间 \([l,r]\),求 \[\sum_{i=l}^{r}{\left(1+\sum_{j=l}^{r}{[a_j<a_i]}\right)a_i} \]数据范围:\(1\le n,m\le 5\times 10^5\),\(a_i\le 10^5\),\(1\le l \le r \le n\)。 时间范围:\(3000\operat魂酥的LNOI2019滚粗记
Day -??? 高一下终于开始了 在开学文化课考试的水题之下混了个(成绩)前排 于是我便油然而生一种自信 我!要!进!省!队! 讲句真话我这么想的时候连自己都觉得自己是个十足的沙雕 我又不是zwz神犇凭啥学半年就想混进省队? 但偏偏就有那么一股意志神奇地推着我开始了停课生活 尽管没跟任何人[LnOI2019]东京夏日相会
这题做法真多。 做法一:直接圆上撒点,跑最小圆覆盖\(O(n*B)\),其中B为撒点数。 做法二:先对所有圆心跑最小圆覆盖,然后将最小圆的圆心与输入圆的靠外的交点作为点,跑最小圆覆盖,多迭代几次。复杂度玄学。 做法三:观察到x,y都是可以三分的,三分套三分,\(O(n log^2 C)\),C为值域。可能可以搞成一洛谷[LnOI2019]长脖子鹿省选模拟赛t1 -> 快速多项式变换
快速多项式 做法:刚拿到此题有点蒙,一开始真没想出来怎么做,于是试着去自己写几个例子。 自己枚举几种情况之后就基本看出来了,其实本题中 n 就是f(m)在m进制下的位数,每项的系数就是f(m)在m进制下对应的数字。 然后。。。 code: #include <iostream> #include <cstdio> #include <cstr