随笔分类 - 链表
摘要:2333: [SCOI2011]棘手的操作 Description 有N个节点,标号从1到N,这N个节点一开始相互不连通。第i个节点的初始权值为a[i],接下来有如下一些操作: U x y: 加一条边,连接第x个节点和第y个节点 A1 x v: 将第x个节点的权值增加v A2 x v: 将第x个节点
阅读全文
摘要:3 分析:约瑟夫环问题,可以用链表模拟做,也可以套用公式,比较水.
阅读全文
摘要:题目描述 给定一个长度为偶数的排列 p,你每次可以选取 p 排列中相邻的两个元素,假如分别是 x 和 y,那 么把 x 和 y 加入一个序列 q 的末尾,并将 x 和 y 从排列 p 中删除。重复上述过程,直到 p 中没有元素, 显然最终 q 序列也是一个排列。例如 p = (1, 3, 2, 4)
阅读全文
摘要:题目链接:传送门 分析:每次操作都会花费大量时间,显然我们只需要关注每个元素的左边是啥,右边是啥就够了,那么用双向链表,l[i]表示i左边的数,r[i]表示i右边的数,每次操作模拟一下数组的变化就好了. 不过这样有一个问题:第4个操作似乎无法很高效地进行,如果真的按照它说的那样模拟翻转,恐怕复杂度和
阅读全文
摘要:题目链接:传送门 分析:涉及到大量元素移动的题,如果用数组来保存,每一次修改操作一定会超时,解决这个问题的方法就是用链表,记录每个元素的下一个元素是啥,插入元素的过程:假设有i,j,我们要在i,j之间插入k,那么k的下一个就是i的下一个,i个下一个就变成了k,这道题遇到[或者]移动当前要插入的位置就
阅读全文