首页 > TAG信息列表 > Rotations
luoguP3521 [POI2011]ROT-Tree Rotations【线段树】
你要写热,就不能只写热。 要写酷暑,写骄阳,写他人耳闻便生恐的炙烤和炎灼。 要写白日出门一刻便肤色黝黑,背心透彻。 写求雨心切,写出行伞遮。 写夜晚不停的风扇和蝉聒。 写鸡蛋落地便熟,流水转眼耗涸。 再写千家万户空调响,西瓜冰可乐。 直至最后,才猛然起身,把浑身上下的黏腻腻,涓涓水冲P3521 [POI2011]ROT-Tree Rotations (线段树合并)
对于一个非叶节点,不管是否要交换子树,其左右子树内部的逆序对数都不会受影响(内部的顺序并不会影响外部产生的逆序对数),受影响的是跨左右子树的情况,所以我们考虑统计这一部分的逆序对数。节点x的左右子树根节点为p,q,u+=size[t[p].rc] * size[t[q].lc],交换后 v+=size[t[p].lc]*size[t[qP3521 [POI2011]ROT-Tree Rotations 题解
一道线段树合并的题。 首先我们发现,如果我们交换了两棵子树,影响到的逆序对数量只会是这两棵子树交换之后数列改变的逆序对数量,对前面的数列和后面的数列并没有影响,对这两棵子树内部也没有影响,因为逆序对只关注相对位置及数的大小。 据此我们先建树,然后对于每个点整一棵值域线段树洛谷 P3521 [POI2011]ROT-Tree Rotations
Description 洛谷传送门 Solution 线段树合并 显然,两棵树的交换与他们的子树无关,所以从下往上处理即可。 我们考虑对于每个子节点建一只权值线段树。然后不断向上合并。 注意:每个点都是一只完整的权值线段树,也就是说左子树权值小于右子树权值。 所以逆序对个数就很明显了。 不交luogu P3521 [POI2011]ROT-Tree Rotations
题面传送门 考虑两颗子树如果交换,那么其实对其它子树与这两颗子树的贡献是没有影响的。 那么在线段树合并时判断一下是否要交换即可。 代码实现: #include<cstdio> #define beg(x) int cur=s.h[x] #define end cur #define go cur=tmp.z #define l(now) f[now].l #define r(now) f1007. Minimum Domino Rotations For Equal Row (M)
Minimum Domino Rotations For Equal Row (M) 题目 In a row of dominoes, A[i] and B[i] represent the top and bottom halves of the ith domino. (A domino is a tile with two numbers from 1 to 6 - one on each half of the tile.) We may rotate the ith domino, so thaCF1361F Johnny and New Toy 和 BZOJ2212 Tree Rotations 和 PKUWC2018 Minimax
Johnny and New Toy Johnny has a new toy. As you may guess, it is a little bit extraordinary. The toy is a permutation \(P\) of numbers from \(1\) to \(n\), written in one row next to each other. For each \(i\) from \(1\) to \(n - 1\) betweenLuoguP3521 [POI2011]ROT-Tree Rotations
LuoguP3521 [POI2011]ROT-Tree Rotations 题目 链接 题解 考虑对于一个子树有三种可能的逆序对: 1.在左子树中 2.在右子树中 3.跨过左右子树 显然对于交换左右子树的操作,只有第3种会受影响,且只有当前这个节点有关 所以对每个子树开个权值线段树即可,可以用线段树合并实现 #include<LeetCode 1007 Minimum Domino Rotations For Equal Row
思路 只存在三种情况:相同的数是A[0]/B[0]/null。然后分别将A[0],B[0]作为target,同时遍历A和B数组。如果位置i的A和B的值与A[0],B[0]都不等,那么说明不可能完成该任务;否则相应的rotationA++或者rotationB++。最后取一个最小值(贪心)返回即可。 复杂度 时间复杂度O(n) 空间复杂度O1007. Minimum Domino Rotations For Equal Row
In a row of dominoes, A[i] and B[i] represent the top and bottom halves of the i-th domino. (A domino is a tile with two numbers from 1 to 6 - one on each half of the tile.) We may rotate the i-th domino, so that A[i] and B[i] swap values. ReturnBZOJ 2212: [Poi2011]Tree Rotations(线段树合并)
传送门 解题思路 线段树合并,考虑交换两个子树时,对除这两棵子树外的其余点的逆序对不会造成影响,所以我们只需要贪心的使这两棵子树产生的逆序对最小。而考虑时我们也只需要考虑两棵子树间的逆序对数,不需要考虑每棵子树内部逆序对数,这样就非常好算了,可以线段树合并,合并的同时统计