要用记忆话搜索,find太慢
if (a[x] && *arrar[x] == x) it = arrar[x]; else it = find(l.begin(),l.end(),x),arrar[x] = it,a[x] = 1;
arrar是数组,和it一样都是listiterator类型,a是bool数组