1,HDU5195 经鉴定水题,现场没做出来,唉
http://acm.hdu.edu.cn/showproblem.php?pid=5195
2,HDU5196
http://acm.hdu.edu.cn/showproblem.php?pid=5196
题解:Problem C - DZY Loves Inversions
考虑如何计算一个区间中有多少个子区间的逆序对数小于等于K。这样做两遍就能算出恰好等于K的了。
对于i(1≤i≤n),我们计算ri表示[i,ri]的逆序对数小于等于K,且ri的值最大。显然ri单调不降,我们可以通过用两个指针扫一遍,利用树状数组计算出r数组。
对于每个询问L,R,我们要计算的是∑i=LR[min(R,ri)−i+1]
由于ri具有单调性,那我们直接在上面二分即可,然后记一个前缀和。总复杂度是O((n+q)logn)。离线的话的还可以做到O(nlogn+q),都是非常优秀的。
UPD: 比赛中过了pretest的同学很遗憾都在k=0的时候挂了,导致似乎没有人过Final Test。其实只要稍微注意一下这个边界情况,就可以避免FST了。
3,CSU2069 经鉴定水题,本人姿势不够优美,超慢。。
http://acm.csu.edu.cn/OnlineJudge/problem.php?cid=2069&pid=7
4,CSU1555 水题,与poj2828 BuyTickets一模一样
http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1555
5,CSU 线段树维护区间最大最小值,枚举右边界,二分左边界,
1553http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1553