日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

简析平衡树(三)——浅谈Splay

發布時間:2023/11/27 生活经验 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 简析平衡树(三)——浅谈Splay 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

原本以為\(Treap\)已經很難了,學習了\(Splay\),我才知道,沒有最難,只有更難。(強烈建議先去學一學\(Treap\)再來看這篇博客)

簡介

\(Splay\)是平衡樹中的一種,除了平衡樹所共有的作用之外,它還可以維護區間翻轉,這也是它能成為\(LCT\)輔助樹的原因(不過\(LCT\)并不是這篇博客所探討的內容)。

因此,這篇博客將分為三個部分,第一個部分講講\(Splay\)與其他平衡樹的不同之處,另外兩個部分則分別借助兩道模板題,來講講\(Splay\)兩方面的作用。

\(Splay\)與其他平衡樹的不同之處

\(splay\)這個單詞在百度翻譯上的解釋是張開。而在這里,則是指伸展(其實伸展張開差不多)。

\(Splay\)最重要的操作自然就是伸展操作了。

而伸展操作,則是建立于類似于\(Treap\)\(Rotate\)旋轉操作上的。

\(Rotate\)操作在簡析平衡樹(二)中已經介紹過了,這里就直接貼代碼了:

inline void Rotate(int x,int &k)//好吧,兩個Rotate操作還是有點區別的,因為Splay還要記錄每個節點的父親,這里的Rotate是要將x節點向上旋轉一位,而k則是要旋轉到的目標位置
{int fa=node[x].Father,grandpa=node[fa].Father,d=Which(x);//我們用fa記錄當前節點的父親,grandpa記錄當前節點的祖父,d記錄當前節點是父親的哪一個兒子if(fa^k) node[grandpa].Son[Which(fa)]=x;//如果當前節點的父親不是目標位置,那么更新當前節點祖父的兒子為當前節點else k=x;//否則說明已到達目標位置node[x].Father=grandpa,node[fa].Son[d]=node[x].Son[d^1],node[node[x].Son[d^1]].Father=fa,node[x].Son[d^1]=fa,node[fa].Father=x,PushUp(fa),PushUp(x);//這個與Treap中的操作差不多,先將當前節點的父親更新為當前節點的祖父,并將當前節點原先父親這一位的兒子更新為當前節點與這個方向相反的兒子,并將當前節點原先的父親更新為當前節點的兒子,最后記得更新節點信息
}

\(Splay\)的主要功能,就是通過不斷地\(Rotate\),使某一節點旋轉至目標位置。

我們可以對\(Splay\)每次的旋轉操作進行分類討論:

第一種情況,\(fa\)即為目標位置,此時只要上旋\(x\)即可到達目標位置。

第二種情況,\(x\),\(fa\),\(grandpa\)在同一直線上,且\(fa\)不為目標位置。此時,我們需要將\(fa\)上旋,同時帶動\(x\)上旋,然后再上旋一遍x。

第三種情況,\(x\),\(fa\),\(grandpa\)不在同一直線上,且\(fa\)不為目標位置。此時,我們直接將\(x\)上旋,將\(x\)的父親更新為它的祖父\(grandpa\),然后再上旋一遍\(x\)即可。

具體代碼實現如下:

inline void Splay(int x,int &k)//將x一直旋轉到目標位置k
{for(int fa=node[x].Father;x^k;fa=node[x].Father)//重復循環,直至x為k{if(fa^k) Rotate(Which(fa)^Which(x)?x:fa,k);//如果fa不是目標位置,若x,fa,grandpa在同一直線上,我們需要將fa上旋,否則,直接將x上旋Rotate(x,k);//歸納可以得出,不管什么情況下都要將x上旋}
}

講完了\(Splay\)與其他平衡樹的不同之處,后面的就很簡單了。

模板1:【洛谷3369】【模板】普通平衡樹

這應該是我第三次用到這個模板了,每學一種平衡樹,都要過一次這個模板。

借助這個模板,我們主要研究的是\(Splay\)作為平衡樹的必有功能:\(BST\)的功能。

不得不說,在插入和查詢這兩方面,\(Splay\)\(BST\)還是十分像的,唯一區別是,每次插入/查詢結束后,都要用\(Splay\)操作將當前操作的點旋轉到根。

為什么要這么做呢?

因為這樣就使得\(Splay\)的形狀在不停地變化,即使在某一時刻成了一條鏈,下一刻一定又會變成其他形狀,就很難被卡掉了。

插入/查詢代碼如下:

inline void Insert(int &x,int val,int fa)//插入一個數
{if(!x)//如果當前節點為空 {node[x=++tot].Val=val,node[x].Cnt=node[x].Size=1,node[x].Father=fa,node[x].Son[0]=node[x].Son[1]=0,Splay(x);//將元素插入這個節點,并將其旋轉到根return;}if(node[x].Val==val) ++node[x].Cnt,PushUp(x),PushUp(node[x].Father),Splay(x);//如果當前元素等于插入元素,就將當前元素的出現次數加1,并將當前節點旋轉到根else if(node[x].Val>val) Insert(node[x].Son[0],val,x);//否則,如果當前元素大于插入元素,就將插入元素插入至當前元素的左子樹(遵循BST的基本性質嘛)else Insert(node[x].Son[1],val,x);//否則,插入當前元素的右子樹
}
inline int get_rank(int val)//詢問值為val的數的排名
{int x=rt,rk=0;while(x)//只要當前節點不是空節點{if(node[x].Val==val) {rk+=node[node[x].Son[0]].Size,Splay(x);return rk+1;}//若當前元素與查詢元素值相等,那么將它旋轉到根節點,并返回答案else if(node[x].Val>val) x=node[x].Son[0];//否則,如果當前元素大于插入元素,就訪問當前元素的左子樹else rk+=node[node[x].Son[0]].Size+node[x].Cnt,x=node[x].Son[1];//否則,更新排名,并訪問右子樹}                                                                  
}
inline int get_val(int rk)//詢問排名為rk的數的值
{int x=rt;while(x){if(node[node[x].Son[0]].Size>=rk) x=node[x].Son[0];//如果當前節點左子樹大小大于等于rk,說明答案在左子樹else if(node[node[x].Son[0]].Size+node[x].Cnt>=rk) {Splay(x);return node[x].Val;}//否則,如果當前節點左子樹大小加上當前節點存在個數大于等于rk,說明當前元素就是答案,那么將它旋轉到根節點,并返回答案else rk-=node[node[x].Son[0]].Size+node[x].Cnt,x=node[x].Son[1];//否則,更新排名,并訪問右子樹}
}

插入/查詢操作還挺基礎的,而刪除操作就略顯麻煩了。

首先,需要查詢一下要刪除元素的排名,目的是將這個元素旋到根。

然后分類討論即可。

具體代碼如下:

inline void Delete(int x)//刪除一個值為x的元素
{get_rank(x);//先通過查詢,將它旋轉到根if(--node[rt].Cnt) return;//如果當前節點存在個數大于1,則將其存在個數減少1即可if(!node[rt].Son[0]&&!node[rt].Son[1]) rt=0;//如果當前元素沒有兒子,說明這棵Splay只有一個節點,將rt修改為0即可else if(!node[rt].Son[1]) rt=node[rt].Son[0],node[rt].Father=0,PushUp(rt);//如果當前元素沒有右兒子,那么直接將根修改為當前元素的左兒子即可else if(!node[rt].Son[0]) rt=node[rt].Son[1],node[rt].Father=0,PushUp(rt);//類似的,如果當前元素沒有左兒子,那么直接將根修改為當前元素的右兒子即可else//否則,說明當前元素既有左兒子又有右兒子,那么就把當前元素的前驅作為新的根 {int pre=node[rt].Son[0],k=rt;//用k來存儲現在的根,用pre來求當前元素的前驅while(node[pre].Son[1]) pre=node[pre].Son[1];//由于當前元素是根節點,所以左子樹中最右邊的一個節點就是當前元素的前驅Splay(pre),node[node[k].Son[1]].Father=rt,node[rt].Son[1]=node[k].Son[1],PushUp(rt);//將這個前驅旋轉至根,將原來的根的右兒子的父親改為現在的根,再將現在的根的右兒子改為原來的根的右兒子,最后更新根節點的信息}
}

最后,照常貼一份代碼:

#include<bits/stdc++.h>
#define max(x,y) ((x)>(y)?(x):(y))
#define min(x,y) ((x)<(y)?(x):(y))
#define LL long long
#define swap(x,y) (x^=y,y^=x,x^=y)
#define tc() (A==B&&(B=(A=ff)+fread(ff,1,100000,stdin),A==B)?EOF:*A++)
#define pc(ch) (pp_<100000?pp[pp_++]=(ch):(fwrite(pp,1,100000,stdout),pp[(pp_=0)++]=(ch)))
#define N 100000
int pp_=0;char ff[100000],*A=ff,*B=ff,pp[100000];
using namespace std;
int n,rt=0,tot=0;
struct splay
{int Son[2],Cnt,Val,Size,Father;
}node[N+5];
inline void read(int &x)
{x=0;int f=1;char ch;while(!isdigit(ch=tc())) f=ch^'-'?1:-1;while(x=(x<<3)+(x<<1)+ch-'0',isdigit(ch=tc()));x*=f;
}
inline void write(int x)
{if(x<0) pc('-'),x=-x;if(x>9) write(x/10);pc(x%10+'0');
}
inline void PushUp(int x)
{node[x].Size=node[node[x].Son[0]].Size+node[node[x].Son[1]].Size+node[x].Cnt;
}
inline int Which(int x)
{return node[node[x].Father].Son[1]==x;
}
inline void Rotate(int x)
{int fa=node[x].Father,grandpa=node[fa].Father,d=Which(x),dd=Which(fa);node[fa].Son[d]=node[x].Son[d^1],node,node[node[fa].Son[d]].Father=fa,node[x].Son[d^1]=fa,node[fa].Father=x,node[x].Father=grandpa;if(grandpa) node[grandpa].Son[dd]=x;PushUp(x),PushUp(fa);
}
inline void Splay(int x)
{for(int fa=node[x].Father;fa=node[x].Father;Rotate(x))if(node[fa].Father) Rotate(Which(fa)==Which(x)?fa:x);rt=x;
}
inline void Insert(int &x,int val,int fa)
{if(!x) {node[x=++tot].Val=val,node[x].Cnt=node[x].Size=1,node[x].Father=fa,node[x].Son[0]=node[x].Son[1]=0,Splay(x);return;}if(node[x].Val==val) ++node[x].Cnt,PushUp(x),PushUp(node[x].Father),Splay(x);else if(node[x].Val>val) Insert(node[x].Son[0],val,x);else Insert(node[x].Son[1],val,x);
}
inline int get_rank(int val)
{int x=rt,rk=0;while(x){if(node[x].Val==val) {rk+=node[node[x].Son[0]].Size,Splay(x);return rk+1;}else if(node[x].Val>val) x=node[x].Son[0];else rk+=node[node[x].Son[0]].Size+node[x].Cnt,x=node[x].Son[1];}                                                                  
}
inline int get_val(int rk)
{int x=rt;while(x){if(node[node[x].Son[0]].Size>=rk) x=node[x].Son[0];else if(node[node[x].Son[0]].Size+node[x].Cnt>=rk) {Splay(x);return node[x].Val;}else rk-=node[node[x].Son[0]].Size+node[x].Cnt,x=node[x].Son[1];}
}
inline int get_pre(int val)
{int x=rt,pre;while(x){if(node[x].Val<val) pre=node[x].Val,x=node[x].Son[1];else x=node[x].Son[0];}return pre;
}
inline int get_nxt(int val)
{int x=rt,nxt;while(x){if(node[x].Val>val) nxt=node[x].Val,x=node[x].Son[0];else x=node[x].Son[1];}return nxt;
}
inline void Delete(int x)
{get_rank(x);if(--node[rt].Cnt) return;if(!node[rt].Son[0]&&!node[rt].Son[1]) rt=0;else if(!node[rt].Son[1]) rt=node[rt].Son[0],node[rt].Father=0,PushUp(rt);else if(!node[rt].Son[0]) rt=node[rt].Son[1],node[rt].Father=0,PushUp(rt);else {int pre=node[rt].Son[0],k=rt;while(node[pre].Son[1]) pre=node[pre].Son[1];Splay(pre),node[node[k].Son[1]].Father=rt,node[rt].Son[1]=node[k].Son[1],PushUp(rt);}
}
int main()
{register int i;for(read(n),i=1;i<=n;++i){int op,x;read(op),read(x);switch(op){case 1:Insert(rt,x,0);break;case 2:Delete(x);break;case 3:write(get_rank(x)),pc('\n');break;case 4:write(get_val(x)),pc('\n');break;case 5:write(get_pre(x)),pc('\n');break;case 6:write(get_nxt(x)),pc('\n');break;}}return fwrite(pp,1,pp_,stdout),0;
}

模板2:【洛谷3391】【模板】文藝平衡樹

這個模板主要體現了\(Splay\)\(維護區間翻轉\)的功能,而這也是\(Treap\)和替罪羊樹做不到的。

初始化時,我們用中序遍歷到的順序為\(2\sim n+1\)的節點分別表示序列中第\(1\sim n\)個元素,并同時在一頭一尾加入兩個節點,防止越界。

然后,如果要翻轉某個區間\([l,r]\),我們就找到這個區間的前后兩個元素\(l-1\)\(r+1\),由于中序遍歷到的順序為\(i+1\)的節點表示序列中第\(i\)個元素,也就是說我們要找到中序遍歷到的順序為\(l\)\(r+2\)的節點。

找到這兩個節點后,我們將順序為\(l\)的節點旋轉至根,并將順序為\(r+2\)的節點旋轉至根的右兒子。

我們可以發現,由于\(BST\)的性質,根的右兒子的左子樹中每個節點被中序遍歷到的順序一定大于根節點且小于根節點的右子樹,也就是說大于\(l\)且小于\(r+2\),在\([l+1,r+1]\)的范圍內,而它們所表示的序列中的元素就是第\(l\sim r\)個元素,因此,我們只需要給根的右兒子的左兒子打一個標記表示它被翻轉了即可。

注意,在每次操作到一個節點時,必須先下推翻轉標記,才能繼續操作。

而下推操作很簡單,只要交換左右兒子即可。

代碼如下:

#include<bits/stdc++.h>
#define max(x,y) ((x)>(y)?(x):(y))
#define min(x,y) ((x)<(y)?(x):(y))
#define LL long long
#define swap(x,y) (x^=y,y^=x,x^=y)
#define tc() (A==B&&(B=(A=ff)+fread(ff,1,100000,stdin),A==B)?EOF:*A++)
#define pc(ch) (pp_<100000?pp[pp_++]=(ch):(fwrite(pp,1,100000,stdout),pp[(pp_=0)++]=(ch)))
#define N 100000
int pp_=0;char ff[100000],*A=ff,*B=ff,pp[100000];
using namespace std;
int n,m,rt;
struct splay
{int Son[2],Size,Father,flag;
}node[N+5];
inline void read(int &x)
{x=0;int f=1;char ch;while(!isdigit(ch=tc())) f=ch^'-'?1:-1;while(x=(x<<3)+(x<<1)+ch-'0',isdigit(ch=tc()));x*=f;
}
inline void write(int x)
{if(x<0) pc('-'),x=-x;if(x>9) write(x/10);pc(x%10+'0');
}
inline void PushUp(int x)
{node[x].Size=node[node[x].Son[0]].Size+node[node[x].Son[1]].Size+1;
}
inline void PushDown(int x)//下推翻轉標記
{if(node[x].flag) swap(node[x].Son[0],node[x].Son[1]),node[node[x].Son[0]].flag^=1,node[node[x].Son[1]].flag^=1,node[x].flag=0;//如果當前節點有翻轉標記,那么交換其左右兒子,更新其左右兒子的翻轉標記,然后清空當前節點的翻轉標記
}
inline void Build(int l,int r,int &x)//一個建樹的過程,是不是很像線段樹?
{node[x=l+r>>1].Size=1;//先記錄當前節點的編號和子樹大小if(l<x) Build(l,x-1,node[x].Son[0]),node[node[x].Son[0]].Father=x;//如果當前節點左邊還有元素,那么就繼續對其左兒子建樹if(x<r) Build(x+1,r,node[x].Son[1]),node[node[x].Son[1]].Father=x;//如果當前節點右邊還有元素,那么就繼續對其右兒子建樹PushUp(x);//更新節點信息
}
inline int Which(int x)//判斷當前節點是父親的哪一個兒子
{return node[node[x].Father].Son[1]==x;
}
inline void Rotate(int x,int &k)//旋轉操作
{int fa=node[x].Father,grandpa=node[fa].Father,d=Which(x);if(fa^k) node[grandpa].Son[Which(fa)]=x;else k=x;node[x].Father=grandpa,node[fa].Son[d]=node[x].Son[d^1],node[node[x].Son[d^1]].Father=fa,node[x].Son[d^1]=fa,node[fa].Father=x,PushUp(fa),PushUp(x); 
}
inline void Splay(int x,int &k)//不斷將一個元素旋轉至目標位置
{for(int fa=node[x].Father;x^k;fa=node[x].Father){if(fa^k) Rotate(Which(fa)^Which(x)?x:fa,k);Rotate(x,k);}
}
inline int get_val(int pos)//求出中序遍歷到的順序為pos的節點的值
{int x=rt;while(x){PushDown(x);//先下推標記,然后再操作if(node[node[x].Son[0]].Size==pos) return x;//如果當前節點中序遍歷到的順序等于pos,就返回當前節點的值if(node[node[x].Son[0]].Size>pos) x=node[x].Son[0];//如果當前節點左子樹被中序遍歷到的順序大于pos,就訪問當前節點的左子樹else pos-=node[node[x].Son[0]].Size+1,x=node[x].Son[1];//否則,更新pos,訪問右子樹}
}
inline void rever(int x,int y)//翻轉一個區間,具體操作見上面的解析
{int l=get_val(x-1),r=get_val(y+1);Splay(l,rt),Splay(r,node[rt].Son[1]),node[node[node[rt].Son[1]].Son[0]].flag^=1;
}
int main()
{register int i;int x,y;for(read(n),Build(1,n+2,rt),read(m);m;--m) read(x),read(y),rever(x,y);for(i=1;i<=n;++i) write(get_val(i)-1),pc(' ');//由于我們用中序遍歷到的順序為2~n+1的節點來表示序列中第1~n個元素,所以輸出時將答案減1return fwrite(pp,1,pp_,stdout),0;
}

轉載于:https://www.cnblogs.com/chenxiaoran666/p/Splay.html

總結

以上是生活随笔為你收集整理的简析平衡树(三)——浅谈Splay的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

久久久久久国产精品 | 精品久久久久久久久久久久久久久久久久 | 91免费高清观看 | 久久综合色影院 | 午夜视频一区二区三区 | 欧美综合色| 日韩黄色大片在线观看 | 亚洲最大的av网站 | 综合国产视频 | av在线之家电影网站 | 国产亚洲一区二区三区 | 天天干,天天射,天天操,天天摸 | 日韩精品免费一线在线观看 | 婷婷久操 | 2024国产精品视频 | 日韩免 | 免费91麻豆精品国产自产在线观看 | a级片久久久| 国产无遮挡又黄又爽馒头漫画 | 日韩精品一区二区三区不卡 | 中文字幕在线影视资源 | 探花视频在线观看 | 久久精品国产免费 | 色天天综合网 | 五月综合激情网 | 日韩美女黄色片 | 日韩欧美视频一区二区 | 欧美性大胆 | 色婷婷色| 日韩欧美视频一区二区三区 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | aaa黄色毛片| 免费中文字幕在线观看 | 欧美污污网站 | 亚洲视频大全 | 在线观看亚洲国产精品 | 欧美,日韩 | 天天干夜夜爽 | 久久精品国产精品 | 日本不卡一区二区三区在线观看 | 五月婷婷综合激情 | 色婷婷在线播放 | 中文字幕第一页在线视频 | 国产成人精品999 | 久久成年人网站 | 尤物97国产精品久久精品国产 | 超碰在线天天 | 99re久久精品国产 | 992tv人人网tv亚洲精品 | 欧美ⅹxxxxxx | 国产成人精品一区在线 | 91九色在线视频观看 | 国产欧美最新羞羞视频在线观看 | 色先锋av资源中文字幕 | 9色在线视频 | 玖玖视频国产 | 日韩免费电影 | 91九色性视频 | 91在线公开视频 | 白丝av在线 | 国产精品18久久久久白浆 | 久久久久成 | 国产精久久久久久妇女av | 日韩在线影视 | 欧美精品三级 | 国产精品手机在线观看 | 婷婷爱五月天 | 亚洲毛片在线观看. | 天天摸夜夜操 | 人人草人人做 | 97超碰人人看| 久久夜靖品 | 精品电影一区 | 日韩理论片中文字幕 | 国产精品久久久久久久毛片 | 免费看片网页 | 亚洲一区二区三区四区在线视频 | 极品嫩模被强到高潮呻吟91 | 国产最新视频在线观看 | 国产原创在线观看 | 亚洲一级片免费观看 | 99久e精品热线免费 99国产精品久久久久久久久久 | 97精品国产97久久久久久久久久久久 | 五月天色综合 | 成年人在线观看 | 视频国产| 久久99亚洲精品久久 | 精品 激情| 99综合视频 | 国产精品破处视频 | 黄色毛片视频 | 婷婷av色综合| 九九免费在线观看 | 毛片一二区| 国产无吗一区二区三区在线欢 | 久久99精品波多结衣一区 | 日韩精品中文字幕有码 | 午夜少妇一区二区三区 | 久久久午夜精品福利内容 | 最近中文字幕高清字幕在线视频 | 天天草天天摸 | 国产视频观看 | 亚洲精品9 | 亚洲精品h | 国产精品第一页在线 | 中文字幕一区二区三区久久 | 亚洲美女视频在线观看 | 欧美精品999 | 91av在线播放视频 | 亚洲精品777 | 五月天综合网站 | 狠狠躁天天躁综合网 | 色小说av | 99久久影视 | 日韩黄色免费看 | 精品一区二区免费 | 午夜久久电影网 | 久久艹艹| 国产精品第7页 | 精品久久免费看 | 国产精品激情偷乱一区二区∴ | 国产精品ssss在线亚洲 | 91大神在线看 | 欧洲av不卡 | 少妇bbbb | 在线直播av | 久久精品久久久久电影 | 国产精品99久久久久的智能播放 | 日韩日韩日韩日韩 | 日韩精品一区二区三区在线视频 | 天天爱av导航 | 午夜成人免费影院 | 成人羞羞视频在线观看免费 | 热久久免费国产视频 | 亚洲精品中文字幕在线观看 | 亚洲观看黄色网 | 久久精品国产精品亚洲 | a久久久久 | 亚洲人视频在线 | 91九色网站| 啪啪av在线 | 日韩免费小视频 | 日韩欧美一区二区三区视频 | 国语自产偷拍精品视频偷 | 日韩成人黄色av | 五月天婷亚洲天综合网精品偷 | 丁香六月网 | 超碰在线cao | 最近高清中文字幕 | 久久字幕 | 最近中文字幕国语免费高清6 | 美女免费视频一区二区 | 中文字幕一区二区三区久久 | 日韩欧美精品在线观看视频 | 亚洲精品视频二区 | 欧美激情视频三区 | 免费黄色看片 | 久久久久久片 | 亚洲成人黄色在线 | av中文字幕av | 久久看片网站 | www.黄色在线 | 黄色三级久久 | 在线免费观看的av网站 | 久久久久国产一区二区 | 国产精品成久久久久 | 日韩美女久久 | 亚洲精品自拍视频在线观看 | 精品国产综合区久久久久久 | 首页国产精品 | 波多野结衣在线观看视频 | 久久婷婷国产色一区二区三区 | 国产视频精品免费播放 | 一区二区激情 | 免费看av片网站 | 中文字幕一区av | www最近高清中文国语在线观看 | 精品久久久久一区二区国产 | 国产色视频123区 | 69中文字幕 | 97成人资源 | 国产91精品在线播放 | 六月丁香激情网 | 亚洲精品自拍视频在线观看 | 国产综合香蕉五月婷在线 | 91热这里只有精品 | 久久久久久久99精品免费观看 | 精品久久久久久久久久久久久久久久久久 | 日韩电影在线看 | 欧美日韩在线视频一区 | av在线网站大全 | 在线 高清 中文字幕 | 久久五月天色综合 | 91电影福利| mm1313亚洲精品国产 | 国产精品99久久久久的智能播放 | 天天射网| 国产高清在线永久 | 亚洲综合激情网 | 久久久首页 | 国产97超碰 | 欧美一级高清片 | 射九九| 久久综合狠狠综合久久激情 | 欧美成人aa | 在线播放国产一区二区三区 | 国产不卡免费视频 | 99精品偷拍视频一区二区三区 | 午夜视频在线观看一区二区三区 | 日本女人逼 | 国产精品一区在线观看 | 一区二区三区高清在线 | 在线影视 一区 二区 三区 | 精品一区二区在线免费观看 | 久久精品99国产精品亚洲最刺激 | 91成人精品视频 | 国产高清免费 | 国产精品一区二区三区99 | 久久精品成人热国产成 | 中文字幕人成人 | 国产一线天在线观看 | 91视频久久久久 | 亚洲片在线 | 天天干天天操天天 | 热久久99这里有精品 | 中文字幕av日韩 | 欧美一二区在线 | 久久久国产精品成人免费 | 久久国产手机看片 | 亚洲三级视频 | 黄色app网站在线观看 | 午夜手机电影 | 午夜视频久久久 | 国产黄色片免费看 | 精品视频123区在线观看 | 精品一区中文字幕 | 就操操久久 | 欧美日韩一区二区三区在线免费观看 | 中文字幕免费观看 | 天天色天天操综合网 | 8x成人在线| 久在线观看 | 九色91在线 | 91av国产视频 | 99色精品视频 | 日韩精品久久一区二区 | 91传媒在线播放 | 最近中文字幕高清字幕在线视频 | 天天艹天天干天天 | 69国产在线观看 | 日韩婷婷 | 天天操夜夜想 | 日本在线观看中文字幕无线观看 | 久草免费在线视频观看 | 国产黄色免费在线观看 | 在线色资源 | 国产午夜亚洲精品 | 一区二区免费不卡在线 | 中文字幕在线观看完整版电影 | 正在播放国产91 | 一区二区精品 | 久久久久激情电影 | 日韩精品在线免费观看 | 中文字幕在线视频免费播放 | 日韩中文字幕在线看 | 99亚洲国产精品 | 91精品麻豆 | 亚洲欧美在线视频免费 | 国产一区欧美一区 | 日韩精品电影在线播放 | 亚洲黄色在线观看 | 国产一区二区在线视频观看 | 天天操天天艹 | 91精品久久久久久久久久入口 | 国产精品毛片一区视频 | 国产在线视频不卡 | 97偷拍在线视频 | 在线成人高清电影 | 黄色一级免费电影 | 国产91丝袜在线播放动漫 | 久久精品国产一区二区三 | 午夜久久成人 | 久久久久综合精品福利啪啪 | 欧美坐爱视频 | 91精品国产电影 | 成人sm另类专区 | 奇米影音四色 | 天天干天天草天天爽 | 亚洲欧美久久 | 亚洲自拍偷拍色图 | 国产精品一区二区三区在线免费观看 | 国产精品久久99 | 精品欧美一区二区精品久久 | 黄色网址中文字幕 | 麻豆影音先锋 | 99久久一区 | 黄色网在线免费观看 | 久久精品爱爱视频 | 国产精品一区二区在线观看免费 | 久久精品看 | 国产高清av免费在线观看 | 日韩动态视频 | 国产一二区在线观看 | 狠狠天天 | 蜜臀av夜夜澡人人爽人人桃色 | 国产精品乱码在线 | 免费黄色小网站 | 精品一区中文字幕 | 日韩一级电影网站 | 人人干,人人爽 | 亚洲天天草 | 在线观看视频免费播放 | 久久久精品国产免费观看一区二区 | 奇米影音四色 | 福利视频第一页 | 免费久久99精品国产婷婷六月 | 国产成人精品女人久久久 | 97av视频在线观看 | 欧美激情综合五月 | 久久精品一区二区三区国产主播 | 国产精品久久久久久久久久三级 | 亚洲欧美日本一区二区三区 | 国产精品一区二区三区四区在线观看 | 色综合在| 狠狠狠操 | 中文字幕字幕中文 | 国产精品免费视频观看 | 狠狠久久伊人 | 久久综合狠狠 | 五月婷婷激情网 | 久久蜜桃av| 黄色的视频 | 91免费版在线观看 | 国产精品2020 | 永久免费av在线播放 | www久草 | 免费观看mv大片高清 | 欧美日韩国产在线精品 | 免费看片亚洲 | 在线播放国产精品 | 奇米影视999 | 国产精品久久久久久久久久久久久 | 中文字幕免费高清在线 | 午夜免费福利片 | 激情久久综合 | 永久中文字幕 | 色国产在线| 视频一区二区三区视频 | 成人av电影在线观看 | 成人免费看黄 | 激情视频综合网 | 欧美精品资源 | 99国产成+人+综合+亚洲 欧美 | 国产精品九九九九九九 | av免费在线免费观看 | 精品亚洲网 | 免费亚洲精品 | 久久99国产精品久久99 | 中文字幕 在线看 | 欧美精品久久久久久久久久白贞 | 丝袜美腿av | 久草网站在线 | av在线电影免费观看 | 国产一区二区三区四区在线 | 黄网在线免费观看 | 日韩av免费网站 | 成人毛片一区二区三区 | 日韩欧美电影 | 亚洲精品 在线视频 | 成年免费在线视频 | 国产黄色精品在线 | 中文在线免费视频 | 黄色1级大片 | 久久久久福利视频 | 成人91视频| 日韩午夜视频在线观看 | 欧美亚洲精品在线观看 | 欧美大jb| 一区二区三区不卡在线 | 国产成人三级在线播放 | 国产一区在线观看视频 | 成人在线免费小视频 | 久久五月婷婷综合 | 久久久久久久久久网 | 久久高清片 | 久久国产美女视频 | 超碰在线cao | 成人av免费在线 | 99热只有精品在线观看 | 在线免费观看视频一区 | 18做爰免费视频网站 | 国产伦精品一区二区三区照片91 | 国产黄网站在线观看 | 特级黄色片免费看 | 色综合天天色综合 | 亚洲另类久久 | 成年人免费电影 | 国产小视频在线 | 久久欧洲视频 | 亚洲精品一区二区久 | 日本在线观看一区二区三区 | 麻豆手机在线 | 91精品国自产在线观看欧美 | 国产精品中文字幕av | 色九九在线 | 91av电影在线观看 | 欧美日韩一区三区 | 久久精品国产99 | 免费观看www7722午夜电影 | 一级黄色片毛片 | 超碰在线人人爱 | 免费97视频| av黄色免费看 | 国产精品亚 | 国产精品com | 丁香婷婷激情啪啪 | 97超视频 | 五月婷婷综合久久 | 久久国产美女视频 | 91av在线看| 最新av网址在线 | 国产做aⅴ在线视频播放 | 国产成人精品一区二区三区网站观看 | 久久网址 | 久久久久久网站 | 亚洲毛片视频 | 不卡日韩av | 麻豆精品视频在线 | 最新av免费在线 | wwwwww色| 久草新在线 | 久久99亚洲精品久久久久 | 欧美午夜性生活 | 91人人澡人人爽人人精品 | 日日夜夜网站 | 韩国av永久免费 | 久久精品视频99 | 五月婷婷六月综合 | 国产一级性生活 | 久久精品首页 | 国产精品国产三级国产不产一地 | 国精产品999国精产品视频 | 欧美日韩亚洲第一 | 国产精品久久久久av免费 | 成人亚洲精品国产www | 国产黄色在线看 | 国产精品美女久久 | 看片一区二区三区 | 国产精品久久久久久久妇 | 久久视频网址 | 午夜在线看片 | 国产精品手机在线 | 天天干亚洲 | 99在线高清视频在线播放 | 一区二区日韩av | 男女精品久久 | 天天草综合| 国产精品毛片久久蜜 | 国内小视频 | 国产系列 在线观看 | 国产精品成人免费一区久久羞羞 | 国产美女搞久久 | 高清av免费一区中文字幕 | 亚洲精品高清一区二区三区四区 | 亚洲高清不卡av | 日韩av不卡在线播放 | 成人国产精品免费观看 | 中文字幕一区三区 | 91在线视频播放 | 尤物97国产精品久久精品国产 | 特黄免费av| av电影免费 | 亚洲五月婷婷 | 久久官网| 国产99久久久久久免费看 | 97av色| 久久新视频 | 亚洲精品免费看 | 久久只精品99品免费久23小说 | a级片韩国 | 中文字幕在线视频一区二区 | 亚洲一级片在线看 | 久久草网站 | 蜜臀av免费一区二区三区 | 久久久久久黄色 | 欧美a级片免费看 | 亚洲aⅴ在线观看 | www.亚洲精品视频 | 亚洲自拍av在线 | 超碰在线人| 波多野结衣亚洲一区二区 | 91视频在线自拍 | 欧美一区二区精美视频 | 99国产精品视频免费观看一公开 | 国产一级二级在线观看 | 国产一级视频在线 | 久久综合狠狠综合久久狠狠色综合 | www日韩高清 | 天天操天天添 | 在线精品在线 | 丁香六月综合网 | 午夜精品久久久久久久99水蜜桃 | 九九九在线 | 成人app在线免费观看 | 国产一区二区三区久久久 | av观看久久久 | 日日夜夜噜噜噜 | 国产原创在线 | 一级黄色免费网站 | 久久美女精品 | 人人爱人人射 | 国产成人精品一区二区在线 | 久久久www成人免费毛片 | 久久女同性恋中文字幕 | 久久avav | av超碰在线| 国产精品18久久久久久久久 | www好男人| 欧美日韩裸体免费视频 | 久艹视频在线观看 | 欧美精品色 | 午夜成人免费影院 | 超碰免费97| 亚洲天堂香蕉 | 久操97| 欧美性受极品xxxx喷水 | 色狠狠狠 | 久久免费国产精品1 | 亚洲精品美女久久 | 在线观看日本高清mv视频 | 色网站在线 | 久久亚洲人 | 二区三区在线视频 | 国产午夜小视频 | 91手机在线看片 | 97色视频在线| 久草网免费 | 日黄网站| 国产护士hd高朝护士1 | 国产色一区 | 97在线看片| 国产成人精品午夜在线播放 | 成人免费观看在线视频 | 最新av中文字幕 | 国产精品免费在线视频 | 国产精品岛国久久久久久久久红粉 | 日日干天天插 | 久草在线中文888 | 欧美大片第1页 | 国产精品久久久久永久免费观看 | 蜜桃久久久 | 91精品国自产在线观看 | 97超碰国产精品女人人人爽 | 国产原创中文在线 | 国产无限资源在线观看 | 国产在线久草 | 精品91| 国产男女爽爽爽免费视频 | 九九免费视频 | 在线观看免费视频你懂的 | 女人18片毛片90分钟 | 岛国av在线免费 | 亚洲免费婷婷 | 久久99婷婷 | 91亚洲视频在线观看 | 天天爱天天操 | 特级毛片网站 | 成人av电影网址 | 亚洲视频电影在线 | 国产视频九色蝌蚪 | 久久久91精品国产一区二区三区 | 成人av免费在线观看 | 99精品在线观看视频 | 日韩欧美国产精品 | 91av看片 | 欧美日韩性生活 | 国产精品成人一区二区 | 人人射人人插 | 激情av在线资源 | 久热免费 | 国内精品久久久久久久97牛牛 | 国产黄色一级片在线 | 美女久久久久久久 | 婷婷综合导航 | 欧美大荫蒂xxx | 色婷婷www | 免费观看的黄色片 | 天天在线免费视频 | 日本久久电影网 | 亚洲色图 校园春色 | 久久黄页| 天天射天天干天天 | 香蕉网在线| 国产精品一区久久久久 | 操高跟美女 | 伊人五月天 | 国产成人精品久久久久蜜臀 | 91在线入口 | 国产精品一区二区三区电影 | 欧美日韩国产页 | 天天射天 | 国产黄色视 | 天天曰夜夜操 | 日韩成人黄色av | 久久国产精品99久久久久久丝袜 | 天天操天天摸天天爽 | 中文字幕在线观看一区二区三区 | 黄色片网站大全 | 99精彩视频在线观看免费 | 91插插视频 | 国产区 在线 | 久久第四色 | 99re中文字幕| 在线观看视频一区二区 | 日韩高清免费无专码区 | 日韩欧美在线中文字幕 | 日韩欧美高清一区二区 | 日韩欧美视频一区二区三区 | 久久成人视屏 | 在线免费观看视频 | 91新人在线观看 | 欧美成人高清 | 日日碰狠狠添天天爽超碰97久久 | 日韩影视在线 | 国产在线观看午夜 | 日日碰狠狠添天天爽超碰97久久 | 亚洲美女精品 | 精品国精品自拍自在线 | 日韩视频一区二区三区 | 黄色av一区二区 | 91丝袜美腿 | 在线午夜 | 又黄又爽的免费高潮视频 | 国产99久久九九精品免费 | 91精品国产综合久久婷婷香蕉 | 麻豆免费视频 | 在线观看日韩 | 天天操天天添 | 久久午夜精品影院一区 | 久久国产精品免费视频 | 久久久久免费电影 | 国产精品久久久久免费 | 国产字幕在线观看 | 天天干夜夜爱 | 国产一区二区三区免费在线观看 | 91成人网在线观看 | bbbb操bbbb | 欧美国产日韩一区二区三区 | 国产精品第一 | 国产 精品 资源 | 色视频国产直接看 | 国产高清一区二区 | 国产免费美女 | 国产精品视频99 | 成人一级片免费看 | 日韩欧美在线国产 | 欧美最猛性xxxx | 精品亚洲欧美无人区乱码 | 黄色片网站大全 | 国语黄色片 | 欧美精品中文在线免费观看 | 久久精品美女 | 久久神马影院 | 亚洲资源片| 国产美女免费视频 | 亚洲成人动漫在线观看 | 中文字幕免费观看视频 | 精品影院| 日本一区二区免费在线观看 | 亚洲 欧洲av | 天天干天天综合 | 日本高清免费中文字幕 | 欧美激情视频久久 | 国产精品美女久久久久久2018 | 毛片网在线播放 | 日韩av二区| 成人av直播 | 成人午夜网 | 亚洲视频每日更新 | 精品视频久久 | 精品中文字幕在线观看 | 99这里都是精品 | 免费在线观看中文字幕 | 在线观看岛国片 | 激情六月婷婷久久 | 欧美日韩在线看 | 欧美激情xxxx性bbbb | 亚洲国产剧情 | 久久人人爽人人爽人人片av免费 | 精品久久久久久久久久 | 久久国产91 | 激情五月激情综合网 | 国产伦精品一区二区三区无广告 | 毛片二区 | 中文字幕亚洲欧美日韩 | 91在线91拍拍在线91 | 97在线视频免费看 | 国产成人一区三区 | 超碰在线人人 | 国产成人一区三区 | 欧美精品中文 | 国产护士hd高朝护士1 | av片一区二区 | 国产亚洲精品久久久久久大师 | 日韩91av| 国产一区免费看 | 亚洲精品高清一区二区三区四区 | 婷婷精品 | 中文字幕在线观看网站 | 一区二区三区免费看 | 国产69久久久欧美一级 | 久久av中文字幕片 | 精品福利视频在线观看 | 狠狠色狠狠色综合日日小说 | 亚洲国产精品推荐 | 激情五月在线观看 | 日本精品在线看 | 中文在线免费观看 | 五月婷在线观看 | 少妇激情久久 | 97国产精品免费 | 天堂av在线| 亚洲一级特黄 | 色播99| 9i看片成人免费看片 | 中文字幕在线国产精品 | 久久久久久美女 | 成人国产精品一区二区 | 视频三区在线 | 国产手机在线观看视频 | 激情五月播播久久久精品 | 精品字幕| 天天天干 | 欧美视频国产视频 | 国产美女精品视频免费观看 | 久久天天综合网 | 亚洲国产视频直播 | 开心色停停 | 成人av视屏 | 91爱爱视频 | 国产91欧美 | 99久久精品免费看 | 水蜜桃亚洲一二三四在线 | 亚洲一级在线观看 | 免费网站在线观看人 | 99r在线观看 | 亚洲免费视频观看 | 久草视频视频在线播放 | 丁香激情五月婷婷 | 亚洲精品乱码久久久久v最新版 | 黄色aaa毛片| 在线黄色av电影 | 日本中文字幕在线免费观看 | 国产精品美女视频网站 | 人人添人人澡人人澡人人人爽 | 午夜精品福利一区二区 | 久久久久久久久久免费 | 中文字幕在线一区观看 | 五月婷婷,六月丁香 | 97国产| 午夜在线免费观看 | 欧美日韩中字 | 亚洲精品在线免费 | 一本一道久久a久久精品 | 国产男女免费完整视频 | 91成人区 | 91色国产在线 | 日韩av一卡二卡三卡 | 欧亚日韩精品一区二区在线 | 18国产精品白浆在线观看免费 | 在线看一区 | 婷婷国产视频 | 97超碰色偷偷 | 91成人久久 | 福利视频导航网址 | 久久久免费观看完整版 | 久久成人在线视频 | 国产一区二区久久精品 | 久久成人精品视频 | 波多野结衣精品 | 夜色资源网 | 97香蕉久久超级碰碰高清版 | 香蕉视频免费看 | 国产成人亚洲精品自产在线 | 91传媒在线观看 | 欧美一区二区伦理片 | 99视频在线 | 国产精品麻豆视频 | 天天操操操操操操 | 久草在线免费看视频 | 亚洲国产激情 | 久久福利精品 | 国产精品永久久久久久久www | 十八岁免进欧美 | 国内精品久久久久久久影视简单 | 免费福利在线播放 | 黄色软件在线看 | 久久伊人操 | 欧美日韩一区二区视频在线观看 | 一区久久久 | 婷婷色婷婷 | 亚洲精品久久久蜜桃 | 国产精品久久久av久久久 | 99国产在线视频 | 超级碰视频 | 天天干天天做天天操 | 一级性视频 | 国产超碰在线观看 | 日韩免费一级电影 | 亚洲理论影院 | 99热只有精品在线观看 | 日批网站免费观看 | 国产精品av一区二区 | 97理论电影 | 久久人网 | 午夜神马福利 | jizz欧美性9 国产一区高清在线观看 | 日韩综合视频在线观看 | 99亚洲国产 | 99精品欧美一区二区三区黑人哦 | 激情网站网址 | 美女天天操 | 精久久久久 | 狠狠地操 | 国产亚洲久一区二区 | 免费 在线 中文 日本 | 精品久久久精品 | 九九精品视频在线观看 | 91高清免费看 | 精品在线观看一区二区 | 美女黄频网站 | 午夜美女视频 | 黄色资源在线观看 | 黄色99视频 | 国产成免费视频 | 91精品视频免费在线观看 | 亚洲激情小视频 | 色婷婷久久久 | 国产精品久久麻豆 | 亚洲日本欧美在线 | 久免费| 精品黄色在线观看 | 狠狠综合网 | 日韩毛片久久久 | www.激情五月.com | 综合网天天 | 国产中文字幕一区 | 久久国产精品影视 | 六月色婷 | 欧美亚洲国产精品久久高清浪潮 | 高清视频一区二区三区 | 亚洲性视频 | 国产成人精品午夜在线播放 | 狠狠操夜夜操 | 丁香激情婷婷 | 久久第四色| 91人人视频在线观看 | 少妇bbw搡bbbb搡bbbb | 亚洲黄色免费在线 | 久久这里只有精品久久 | 国产精品久久在线观看 | www.亚洲精品在线 | 日韩av电影网站在线观看 | 丁香婷婷综合激情 | 久久视频精品在线 | 午夜婷婷在线播放 | a√资源在线 | 国产成人精品一区二区在线 | 亚洲视频aaa | 国产成人免费高清 | 四虎永久国产精品 | 激情五月亚洲 | 在线观看精品黄av片免费 | 欧美精品久久久久性色 | 91九色精品| 伊人国产视频 | 四虎国产 | 成人av在线亚洲 | 久久久久高清 | 亚洲黄色一级视频 | 在线观看免费黄色 | 狠狠色噜噜狠狠狠狠 | 亚洲精品玖玖玖av在线看 | 国产在线观看一 | 91在线公开视频 | 成人影片在线播放 | 亚洲高清视频一区二区三区 | 91av在线视频播放 | 视频在线亚洲 | 久草在线久草在线2 | 国产精品成人av在线 | 97超级碰碰碰碰久久久久 | 激情综合国产 | 五月婷网| 美女黄频在线观看 | 日韩av手机在线观看 | 精品久久综合 | 欧美日韩一区二区三区视频 | 国产精品美女免费视频 | 亚洲日韩中文字幕在线播放 | 人人揉人人揉人人揉人人揉97 | 亚洲男人天堂2018 | 久久久久免费精品国产 | 国产精品国内免费一区二区三区 | 久久精品9| 中文国产字幕在线观看 | 亚洲黄色成人 | 91一区二区在线 | 欧美另类成人 | 国产精品一区久久久久 | 天天狠狠 | 国产精品中文字幕在线播放 | 欧美成年网站 | 亚洲aaa级| 亚州欧美视频 | 亚洲精品小区久久久久久 | av软件在线观看 | 国产午夜精品理论片在线 | 偷拍久久久 | 免费在线成人 | 99热精品国产一区二区在线观看 | 新av在线| 国产视频1| 国产成人性色生活片 | 精品成人在线 | 外国av网| 久久不色| 五月天六月丁香 | 亚洲做受高潮欧美裸体 | 久久视频在线观看中文字幕 | 丁香九月激情综合 | 免费黄色网址网站 | 久久高清国产视频 | 日日夜夜噜噜噜 | 夜添久久精品亚洲国产精品 | 国产极品尤物在线 | 337p西西人体大胆瓣开下部 | 亚洲免费一级电影 | 探花在线观看 | 狠狠色伊人亚洲综合网站色 | 国产高清不卡一区二区三区 | 亚洲最新毛片 | 日韩av一区二区三区 | 香蕉免费在线 | 日韩极品视频在线观看 | 超碰av在线免费观看 | 一区二区不卡高清 | 久久精品波多野结衣 | 国产精品久久久久久av | 久久亚洲人 | 久久99国产精品久久99 | 久久综合久久综合这里只有精品 | 久久久久久久久久久久久久免费看 | 少妇bbw撒尿 | 亚洲精品在线一区二区三区 | 免费看毛片网站 | 免费观看完整版无人区 | 91久色蝌蚪 | 日韩av看片 | 97在线观视频免费观看 | 国产九九九精品视频 | 日韩精品视频免费专区在线播放 | 最近最新中文字幕 | 天天操福利视频 | 一本色道久久综合亚洲二区三区 | 国产录像在线观看 | 亚洲精品久 | 日韩在线观看网站 | 免费特级黄毛片 | 91视频国产高清 | 在线观看亚洲精品 | 成人h动漫精品一区二 | 午夜精品av在线 | 日本 在线 视频 中文 有码 | 黄色app网站在线观看 | 91av在线视频免费观看 | 国产丝袜 | 91麻豆精品国产 | 超碰999| 亚洲视频 一区 | 国产品久精国精产拍 | 亚洲精品欧美精品 | 91激情视频在线播放 | www.夜夜骑.com| 精品一区二区精品 | 国产在线观看你懂得 | 中文字幕 国产专区 | 天堂在线成人 | 天天干,天天操,天天射 | 欧美激情h | 91在线国产观看 | 国产午夜小视频 | 久久久黄色av | 免费的黄色的网站 | 亚洲欧洲中文日韩久久av乱码 | 免费在线看v | 久草在线一免费新视频 | 91传媒视频在线观看 |