令[ n ][ñ][n]表示集合而C(n,k)表示来自的元素的所有组合的集合,没有重复。让是在元组。我们说一个置换 集合避免如果存在整数无k-元组使得 k [ n ] p = p 1 p 2。。。p k k C (n ,k )π :[ n ] → [ n ] [ n ] p i 1 < i 2 < 。。。< 我ķ π (我1){ 1 ,。。。,n }{1个,。。。,ñ}\{1,...,n\}ķķk[ n ][ñ][n]p = p1个p2。。。pķp=p1个p2。。。pķp= p_1p_2...p_kkkkC(n,k)C(n,k)C(n,k)π:[n]→[n]π:[n]→[n]\pi:[n]\rightarrow [n][n][n][n]pppi1<i2<...<iki1<i2<...<iki_1<i_2<...<i_kπ(i1)=p1,π(i2)=p2,...,π(ik)=pk.π(i1)=p1,π(i2)=p2,...,π(ik)=pk.\pi(i_1) …
订单维护问题(或“维护列表中的订单”)是为了支持以下操作: singleton:创建一个包含一个项目的列表,并返回指向它的指针 insertAfter:给定一个指向项目的指针,在其后插入一个新项目,并返回指向该新项目的指针 delete:给定指向项目的指针,将其从列表中删除 minPointer:给定两个指向同一列表中项目的指针,则返回更靠近列表前面的那个 我知道此问题的三种解决方案可以在摊销时间内执行所有操作。它们都使用乘法。O(1)O(1)O(1) Athanasios K. Tsakalidis:维护广义链表中的顺序 Dietz,P.,D. Sleator,两种用于维护列表顺序的算法 Michael A. Bender,Richard Cole,Erik D. Demaine,Martin Farach-Colton和Jack Zito,“维护列表中顺序的两种简化算法” 是否可以在摊销时间内以列表形式维护订单,而无需使用A C 0以外的任何算术运算?O(1)O(1)O(1)AC0AC0AC^0