jloi2013一些想法
不保证对错……
3192: [JLOI2013]删除物品
维护两个splay。每次找到最大的数将其旋转到根,给左子树打上reverse标记后接到另一个splay的最左端,ans+=左子树的节点数,然后将第一个splay中最大的数删去,右节点提到根,变更时维护每个数的节点编号这样就能O(1)找到最大的数。
3191: [JLOI2013]卡牌游戏
递推,设F[n]1,2,...,n为n个人从第一个人开始各个人胜负的概率,F[n]=∑(1/m * Ronate(F[n-1],x[i] ) ).边界F[1]1=1
3190: [JLOI2013]赛车
按位置排序。
- 位置从前到后,一个车(记作第R辆)能成为第一的必要条件是比前面的车都要快。如不成立,不用讨论2。
- 在剩下的赛车中,记T为被后面的车超过的最短时间( Min{(P[R]-P[k])/(v[r]-v[k]) | k>R} ),T'为超过所有前面车至少需要多少时间,则T'=Max{(P[k]-P[R])/(v[k]-v[r]) | k<R}。T'<=T即可。O(N^2)勉强可过
Ex:可以看作(v[k],p[k])这样的点,每一个点找上方斜率(非负)最小的点和下方斜率最大的点比较斜率。