codeforces706E】的更多相关文章

BUPT2017 wintertraining(15) #6B 题意 q次操作,每次把两个给定子矩阵交换,求最后的矩阵.(2 ≤ n, m ≤ 1000, 1 ≤ q ≤ 10 000) 题解 用R[i]和D[i]记录编号i的右方和下方的编号.交换两个子矩阵只要修改四周的R和D即可.为了方便查找给定位置的编号,每行每列都需要头结点,也就是给一个编号. 代码 #include <cstdio> #include <iostream> #define N 1005*1005 using…
好精妙的一道题啊 传送门:here 大致题意:有一个$ n*m$的矩阵,q次询问每次交换给定两个无交矩阵的对应元素,求操作后的最终矩阵? 数据范围:$ n,m<=1000, q<=10000$ 模拟赛的时候考到类似的,当时很快想到对每行维护一个$ treap/splay$的优秀做法, 然后感觉复杂度一千万$ *log$甚至比暴力慢(事实证明确实如此) 正解其实又好写又快速,不过对我这种数据结构做傻的菜鸡来说考场上确实是想不到啊.... $ solution:$ 对于每个元素维护两个指针R(右边…