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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

KD树学习小结

發布時間:2023/12/20 编程问答 80 豆豆
生活随笔 收集整理的這篇文章主要介紹了 KD树学习小结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

幾個月后的UPD:

學習完下面之后,實戰中的總結:

0.比賽中正解就是kdtree的題目很少很少

1.幾類優先考慮kdtree的題目:

  k(維度) >= 3 的題目

  二維平面上涉及區間標記的題目

2. 二維平面上的題目, n >= 5W 謹慎使用kdtree

? ? ?非強制在線考慮cdq套數據結構(不涉及標記的話基本考慮樹狀數組)

? ? ?強制在線考慮樹狀數組套主席樹(該方法需要提前確定空間夠不夠O(nlogn2))

  幾種方法的常數比較:cdq套樹 < 樹套樹 < kdtree

? 編程復雜度也是cdq最小,后面兩個差不多

3.非寫kdtree不可的題目,常數上的幾個優化

 <0>快速讀入,快速輸出的話,不超過50W的個數基本沒必要

 <1>重構kdtree的參數選擇,插入多查詢少的情況,最優參數是接近 0.5 + x / (x + y) 的

  ? ?x是插入個數,y是查詢個數

? ? ? ? ? 插入少查詢多的話,最優參數其實是更接近 0.7 + x / (x + y) 的, 查詢再多也不建議參數低于0.7

  ? ?當然最優參數的話,有時間可以自己去測試調整

 <2>其實update函數那里吧兩個 if 直接寫成?max / min 未必時間會差一點,可以自己嘗試測試時間

?

學習資料在這里

?

對于k維KDTree,實際時間復雜度為O(N*N^(1-1/k))

build實現類似spaly,不斷選一維從中間劃分,可以循環選取維度,也可以rand % k

求最近點的query,重點在于其中的估價函數

求區間和的query,則和線段樹類似

?

例題:

1) bzoj 2648求最近點

1 /*為了維持樹的平衡,可以一開始把所有點都讀進來build 2 然后打flag標記該點是否被激活*/ 3 #include <bits/stdc++.h> 4 5 using namespace std; 6 7 const int N = 5e5 + 5; 8 9 const int inf = 1 << 30; 10 11 int n, m; 12 13 int ql, qr, ans, tot, nowD; 14 //nowD = rand() & 1 ? 15 struct Node { 16 int d[2]; 17 18 bool operator < (const Node &a) const { 19 if (d[nowD] == a.d[nowD]) return d[!nowD] < a.d[!nowD]; 20 return d[nowD] < a.d[nowD]; 21 } 22 }pot[N]; 23 24 struct node { 25 int min[2], max[2], d[2]; 26 node *c[2]; 27 28 node() { 29 min[0] = min[1] = max[0] = max[1] = d[0] = d[1] = 0; 30 c[0] = c[1] = NULL; 31 } 32 33 node(int x, int y); 34 35 void update(); 36 37 38 }t[N], Null, *root; 39 40 node::node(int x, int y) { 41 min[0] = max[0] = d[0] = x; 42 min[1] = max[1] = d[1] = y; 43 c[0] = c[1] = &Null; 44 } 45 46 inline void node::update() { 47 if (c[0] != &Null) { 48 if (c[0] -> max[0] > max[0]) max[0] = c[0] -> max[0]; 49 if (c[0] -> max[1] > max[1]) max[1] = c[0] -> max[1]; 50 if (c[0] -> min[0] < min[0]) min[0] = c[0] -> min[0]; 51 if (c[0] -> min[1] < min[1]) min[1] = c[0] -> min[1]; 52 } 53 if (c[1] != &Null) { 54 if (c[1] -> max[0] > max[0]) max[0] = c[1] -> max[0]; 55 if (c[1] -> max[1] > max[1]) max[1] = c[1] -> max[1]; 56 if (c[1] -> min[0] < min[0]) min[0] = c[1] -> min[0]; 57 if (c[1] -> min[1] < min[1]) min[1] = c[1] -> min[1]; 58 } 59 } 60 61 inline void build(node *&o, int l, int r, int D) { 62 int mid = l + r >> 1; 63 nowD = D; 64 nth_element(pot + l, pot + mid, pot + r + 1); 65 o = new node(pot[mid].d[0], pot[mid].d[1]); 66 67 if (l != mid) build(o -> c[0], l, mid - 1, !D); 68 if (r != mid) build(o -> c[1], mid + 1, r, !D); 69 o -> update(); 70 } 71 72 inline void insert(node *o) { 73 node *p = root; 74 int D = 0; 75 while (1) { 76 if (o -> max[0] > p -> max[0]) p -> max[0] = o -> max[0]; 77 if (o -> max[1] > p -> max[1]) p -> max[1] = o -> max[1]; 78 if (o -> min[0] < p -> min[0]) p -> min[0] = o -> min[0]; 79 if (o -> min[1] < p -> min[1]) p -> min[1] = o -> min[1]; 80 81 if (o -> d[D] >= p -> d[D]) { 82 if (p -> c[1] == &Null) { 83 p -> c[1] = o; 84 return; 85 } else p = p -> c[1]; 86 } else { 87 if (p -> c[0] == &Null) { 88 p -> c[0] = o; 89 return; 90 } else p = p -> c[0]; 91 } 92 D ^= 1; 93 } 94 } 95 96 inline int dist(node *o) { 97 int dis = 0; 98 if (ql < o -> min[0]) dis += o -> min[0] - ql; 99 if (ql > o -> max[0]) dis += ql - o -> max[0]; 100 if (qr < o -> min[1]) dis += o -> min[1] - qr; 101 if (qr > o -> max[1]) dis += qr - o -> max[1]; 102 return dis; 103 } 104 105 inline void query(node *o) { 106 int dl, dr, d0; 107 d0 = abs(o -> d[0] - ql) + abs(o -> d[1] - qr); 108 if (d0 < ans) ans = d0; 109 if (o -> c[0] != &Null) dl = dist(o -> c[0]); 110 else dl = inf; 111 if (o -> c[1] != &Null) dr = dist(o -> c[1]); 112 else dr = inf; 113 114 if (dl < dr) { 115 if (dl < ans) query(o -> c[0]); 116 if (dr < ans) query(o -> c[1]); 117 } else { 118 if (dr < ans) query(o -> c[1]); 119 if (dl < ans) query(o -> c[0]); 120 } 121 } 122 123 int main() { 124 ios::sync_with_stdio(false); 125 cin >> n >> m; 126 for (int i = 1; i <= n; i ++) 127 cin >> pot[i].d[0] >> pot[i].d[1]; 128 build(root, 1, n, 0); 129 130 for (int x, y, z; m --; ) { 131 cin >> x >> y >> z; 132 if (x == 1) { 133 t[tot].max[0] = t[tot].min[0] = t[tot].d[0] = y; 134 t[tot].max[1] = t[tot].min[1] = t[tot].d[1] = z; 135 t[tot].c[0] = t[tot].c[1] = &Null; 136 insert(&t[tot ++]); 137 } else { 138 ans = inf, ql = y, qr = z; 139 query(root), printf("%d\n", ans); 140 } 141 } 142 return 0; 143 } View Code

3種寫法可選

<1>插入的時候采用替罪羊樹的方法來維護,子樹太偏就直接重構

<2>一開始直接把所有點扔進kdtree,用flag來標記該點是否被激活

<3>直接插入不重構。事實上本題沒有出極端數據導致樹會特別偏,所以可過。這種寫法需要稍稍注意常數

?

2) bzoj 4066 二維平面,單點修改,區間查詢,強制在線

1 #include <bits/stdc++.h> 2 3 using namespace std; 4 5 const int inf = 1e9; 6 7 int n, m, tot, nowD; 8 9 struct node { 10 int Max[2], Min[2], d[2]; 11 int sum, siz, val; 12 node *c[2]; 13 14 node() { 15 Max[0] = Max[1] = -inf; 16 Min[0] = Min[1] = inf; 17 sum = val = siz = 0; 18 c[0] = c[1] = NULL; 19 d[0] = d[1] = 0; 20 } 21 22 void update(); 23 }Null, nodes[200010], *temp[200010]; 24 25 node *root = &Null; 26 27 inline void node::update() { 28 siz = c[0] -> siz + c[1] -> siz + 1; 29 sum = c[0] -> sum + c[1] -> sum + val; 30 if (c[0] != &Null) { 31 if (c[0] -> Max[0] > Max[0]) Max[0] = c[0] -> Max[0]; 32 if (c[0] -> Max[1] > Max[1]) Max[1] = c[0] -> Max[1]; 33 if (c[0] -> Min[0] < Min[0]) Min[0] = c[0] -> Min[0]; 34 if (c[0] -> Min[1] < Min[1]) Min[1] = c[0] -> Min[1]; 35 } 36 if (c[1] != &Null) { 37 if (c[1] -> Max[0] > Max[0]) Max[0] = c[1] -> Max[0]; 38 if (c[1] -> Max[1] > Max[1]) Max[1] = c[1] -> Max[1]; 39 if (c[1] -> Min[0] < Min[0]) Min[0] = c[1] -> Min[0]; 40 if (c[1] -> Min[1] < Min[1]) Min[1] = c[1] -> Min[1]; 41 } 42 } 43 44 inline bool cmp(const node *a, const node *b) { 45 return a -> d[nowD] < b -> d[nowD]; 46 } 47 48 inline void traverse(node *o) { 49 if (o == &Null) return; 50 temp[++ tot] = o; 51 traverse(o -> c[0]); 52 traverse(o -> c[1]); 53 } 54 55 inline node *build(int l, int r, int D) { 56 int mid = l + r >> 1; nowD = D; 57 nth_element(temp + l, temp + mid, temp + r + 1, cmp); 58 node *res = temp[mid]; 59 res -> Max[0] = res -> Min[0] = res -> d[0]; 60 res -> Max[1] = res -> Min[1] = res -> d[1]; 61 if (l != mid) res -> c[0] = build(l, mid - 1, !D); 62 else res -> c[0] = &Null; 63 if (r != mid) res -> c[1] = build(mid + 1, r, !D); 64 else res -> c[1] = &Null; 65 res -> update(); 66 return res; 67 } 68 69 int x, y, a, b, tmpD; 70 71 node **tmp; 72 73 inline void rebuild(node *&o, int D) { 74 tot = 0; 75 traverse(o); 76 o = build(1, tot, D); 77 } 78 79 inline void insert(node *&o, node *p, int D) { 80 if (o == &Null) {o = p; return;} 81 if (p -> Max[0] > o -> Max[0]) o -> Max[0] = p -> Max[0]; 82 if (p -> Max[1] > o -> Max[1]) o -> Max[1] = p -> Max[1]; 83 if (p -> Min[0] < o -> Min[0]) o -> Min[0] = p -> Min[0]; 84 if (p -> Min[1] < o -> Min[1]) o -> Min[1] = p -> Min[1]; 85 o -> siz ++, o -> sum += p -> sum; 86 insert(o -> c[p -> d[D] >= o -> d[D]], p, !D); 87 if (max(o -> c[0] -> siz, o -> c[1] -> siz) > int(o -> siz * 0.75 + 0.5)) tmpD = D, tmp = &o; 88 } 89 90 inline int query(node *o, int D) { 91 if (o == &Null) return 0; 92 if (x > o -> Max[0] || y > o -> Max[1] || a < o -> Min[0] || b < o -> Min[1]) return 0; 93 if (x <= o -> Min[0] && y <= o -> Min[1] && a >= o -> Max[0] && b >= o -> Max[1]) return o -> sum; 94 return (x <= o -> d[0] && y <= o -> d[1] && a >= o -> d[0] && b >= o -> d[1] ? o -> val : 0) 95 + query(o -> c[1], !D) + query(o -> c[0], !D); 96 } 97 98 int main() { 99 ios::sync_with_stdio(false); 100 cin >> m; 101 node *ttt = &Null; 102 for (int t, ans = 0; ; ) { 103 cin >> t; 104 if (t == 3) break; 105 if (t == 1) { 106 cin >> x >> y >> a; 107 x ^= ans, y ^= ans, n ++; 108 nodes[n].sum = nodes[n].val = a ^ ans, nodes[n].siz = 1; 109 nodes[n].Max[0] = nodes[n].Min[0] = nodes[n].d[0] = x; 110 nodes[n].Max[1] = nodes[n].Min[1] = nodes[n].d[1] = y; 111 nodes[n].c[0] = nodes[n].c[1] = &Null; 112 tmp = &(ttt), insert(root, &nodes[n], 0); 113 if (*tmp != &Null) rebuild(*tmp, tmpD); 114 } else { 115 cin >> x >> y >> a >> b; 116 x ^= ans, y ^= ans, a ^= ans, b ^= ans; 117 if (x > a) swap(x, a); 118 if (y > b) swap(y, b); 119 ans = query(root, 0); 120 printf("%d\n", ans); 121 } 122 } 123 return 0; 124 } View Code

正直寫法,子樹size過大就要Rebuild

判斷rebuild的系數取的0.75,注意rebuild不是在回溯過程中當前子樹不平衡就立刻重構

而是回溯過程中找到最靠近根的需要重構的子樹根節點,然后對這棵樹進行重構

詳情看代碼

?

不正直寫法,新節點先存在數組里,查詢時遍歷該數組+查詢kdtree

當數組size大于K時,把數組里的點放進kdtree并重構整顆kdtree

K取10000即可,可過

?

3) bzoj4154?二維平面,區間覆蓋,單點查詢

1 #include <bits/stdc++.h> 2 3 using namespace std; 4 5 const int N = 1e5 + 5; 6 7 const int Mod = 1e9 + 7; 8 9 int nowD, x[2], y[2], z; 10 11 struct node { 12 int Max[2], Min[2], d[2]; 13 int val, lazy; 14 node *c[2]; 15 16 node() { 17 c[0] = c[1] = NULL; 18 } 19 20 void pushup(); 21 22 void pushdown(); 23 24 bool operator < (const node &a) const { 25 return d[nowD] < a.d[nowD]; 26 } 27 }Null, nodes[N]; 28 29 node *root = &Null; 30 31 inline void node::pushup() { 32 if (c[0] != &Null) { 33 if (c[0] -> Max[0] > Max[0]) Max[0] = c[0] -> Max[0]; 34 if (c[0] -> Max[1] > Max[1]) Max[1] = c[0] -> Max[1]; 35 if (c[0] -> Min[0] < Min[0]) Min[0] = c[0] -> Min[0]; 36 if (c[0] -> Min[1] < Min[1]) Min[1] = c[0] -> Min[1]; 37 } 38 if (c[1] != &Null) { 39 if (c[1] -> Max[0] > Max[0]) Max[0] = c[1] -> Max[0]; 40 if (c[1] -> Max[1] > Max[1]) Max[1] = c[1] -> Max[1]; 41 if (c[1] -> Min[0] < Min[0]) Min[0] = c[1] -> Min[0]; 42 if (c[1] -> Min[1] < Min[1]) Min[1] = c[1] -> Min[1]; 43 } 44 } 45 46 inline void node::pushdown() { 47 if (c[0] != &Null) c[0] -> val = c[0] -> lazy = lazy; 48 if (c[1] != &Null) c[1] -> val = c[1] -> lazy = lazy; 49 lazy = -1; 50 } 51 52 inline node *build(int l, int r, int D) { 53 int mid = l + r >> 1; nowD = D; 54 nth_element(nodes + l, nodes + mid, nodes + r + 1); 55 node *res = &nodes[mid]; 56 if (l != mid) res -> c[0] = build(l, mid - 1, !D); 57 else res -> c[0] = &Null; 58 if (r != mid) res -> c[1] = build(mid + 1, r, !D); 59 else res -> c[1] = &Null; 60 res -> pushup(); 61 return res; 62 } 63 64 inline int query(node *o) { 65 if (o == &Null) return -1; 66 if (o -> lazy != -1) o -> pushdown(); 67 if (x[0] > o -> Max[0] || y[0] > o -> Max[1] || x[0] < o -> Min[0] || y[0] < o -> Min[1]) return -1; 68 if (x[0] == o -> d[0]) return o -> val; 69 return max(query(o -> c[0]), query(o -> c[1])); 70 } 71 72 inline void modify(node *o) { 73 if (o == &Null) return; 74 if (o -> lazy != -1) o -> pushdown(); 75 if (x[0] > o -> Max[0] || y[0] > o -> Max[1] || x[1] < o -> Min[0] || y[1] < o -> Min[1]) return; 76 if (x[0] <= o -> Min[0] && y[0] <= o -> Min[1] && x[1] >= o -> Max[0] && y[1] >= o -> Max[1]) { 77 o -> val = o -> lazy = z; 78 return; 79 } 80 if (x[0] <= o -> d[0] && y[0] <= o -> d[1] && x[1] >= o -> d[0] && y[1] >= o -> d[1]) o -> val = z; 81 modify(o -> c[0]), modify(o -> c[1]); 82 } 83 84 int n, m, k, a[N], c[N], d[N]; 85 86 int cnt, st[N], en[N], dfn[N], dep[N]; 87 88 vector <int> e[N]; 89 90 void dfs(int u) { 91 st[u] = ++ cnt, dfn[cnt] = u; 92 for (int v : e[u]) 93 dep[v] = dep[u] + 1, dfs(v); 94 en[u] = cnt; 95 } 96 97 int main() { 98 ios::sync_with_stdio(false); 99 int T, ans; 100 for (cin >> T; T --; ) { 101 cin >> n >> m >> k, ans = cnt = 0; 102 for (int i = 1; i <= n; i ++) 103 e[i].clear(); 104 for (int u, i = 2; i <= n; i ++) { 105 cin >> u; 106 e[u].push_back(i); 107 } 108 dfs(1); 109 for (int i = 1; i <= n; i ++) { 110 nodes[i].Min[0] = nodes[i].Max[0] = nodes[i].d[0] = i; 111 nodes[i].Min[1] = nodes[i].Max[1] = nodes[i].d[1] = dep[dfn[i]]; 112 nodes[i].val = 1, nodes[i].lazy = -1; 113 } 114 root = build(1, n, 0); 115 for (int u, v, w, i = 1; i <= k; i ++) { 116 cin >> u >> v >> w; 117 if (w == 0) { 118 x[0] = st[u], y[0] = dep[u]; 119 ans = (ans + 1ll * i * query(root) % Mod) % Mod; 120 } else { 121 x[0] = st[u], x[1] = en[u]; 122 y[0] = dep[u], y[1] = dep[u] + v; 123 z = w, modify(root); 124 } 125 } 126 cout << ans << endl; 127 } 128 return 0; 129 } View Code

重點在于觀察到修改的是一定距離以內的子節點

所以考慮轉換到二維平面,一維為dfs序,一維為dep

通過子樹區間+深度區間限制,即可得到修改的點集

二維平面上區間覆蓋+單點查詢,kdtree即可

?

4) bzoj3489 求區間內最大的只出現過一次的數

1 #include <bits/stdc++.h> 2 3 using namespace std; 4 5 const int N = 1e5 + 5; 6 7 const int Mod = 1e9 + 7; 8 9 int nowD, ans, x[3], y[3]; 10 11 int n, m, a[N], b[N], c[N], d[N]; 12 13 struct node { 14 int Max[3], Min[3], d[3]; 15 int val, maxv; 16 node *c[2]; 17 18 node() { 19 c[0] = c[1] = NULL; 20 val = maxv = 0; 21 } 22 23 void pushup(); 24 25 bool operator < (const node &a) const { 26 return d[nowD] < a.d[nowD]; 27 } 28 }Null, nodes[N]; 29 30 node *root = &Null; 31 32 inline void node::pushup() { 33 if (c[0] != &Null) { 34 if (c[0] -> Max[1] > Max[1]) Max[1] = c[0] -> Max[1]; 35 if (c[0] -> Max[2] > Max[2]) Max[2] = c[0] -> Max[2]; 36 if (c[0] -> Min[0] < Min[0]) Min[0] = c[0] -> Min[0]; 37 if (c[0] -> Min[2] < Min[2]) Min[2] = c[0] -> Min[2]; 38 if (c[0] -> maxv > maxv) maxv = c[0] -> maxv; 39 } 40 if (c[1] != &Null) { 41 if (c[1] -> Max[1] > Max[1]) Max[1] = c[1] -> Max[1]; 42 if (c[1] -> Max[2] > Max[2]) Max[2] = c[1] -> Max[2]; 43 if (c[1] -> Min[0] < Min[0]) Min[0] = c[1] -> Min[0]; 44 if (c[1] -> Min[2] < Min[2]) Min[2] = c[1] -> Min[2]; 45 if (c[1] -> maxv > maxv) maxv = c[1] -> maxv; 46 } 47 } 48 49 inline node *build(int l, int r) { 50 int mid = l + r >> 1; nowD = rand() % 3; 51 nth_element(nodes + l, nodes + mid, nodes + r + 1); 52 node *res = &nodes[mid]; 53 if (l != mid) res -> c[0] = build(l, mid - 1); 54 else res -> c[0] = &Null; 55 if (r != mid) res -> c[1] = build(mid + 1, r); 56 else res -> c[1] = &Null; 57 res -> pushup(); 58 return res; 59 } 60 61 inline int calc(node *o) { 62 if (y[0] < o -> Min[0] || x[1] > o -> Max[1] || x[2] > o -> Max[2] || y[2] < o -> Min[2]) return -1; 63 return o -> maxv; 64 } 65 66 inline void query(node *o) { 67 if (o -> val > ans && y[0] >= o -> d[0] && x[1] <= o -> d[1] && x[2] <= o -> d[2] && y[2] >= o -> d[2]) ans = o -> val; 68 int dl, dr; 69 if (o -> c[0] != &Null) dl = calc(o -> c[0]); 70 else dl = -1; 71 if (o -> c[1] != &Null) dr = calc(o -> c[1]); 72 else dr = -1; 73 if (dl > dr) { 74 if (dl > ans) query(o -> c[0]); 75 if (dr > ans) query(o -> c[1]); 76 } else { 77 if (dr > ans) query(o -> c[1]); 78 if (dl > ans) query(o -> c[0]); 79 } 80 81 } 82 83 int main() { 84 ios::sync_with_stdio(false); 85 cin >> n >> m; 86 for (int i = 1; i <= n; i ++) { 87 cin >> a[i]; 88 b[i] = d[a[i]]; 89 d[a[i]] = i; 90 } 91 for (int i = 1; i <= n; i ++) d[i] = n + 1; 92 for (int i = n; i; i --) { 93 c[i] = d[a[i]]; 94 d[a[i]] = i; 95 } 96 for (int i = 1; i <= n; i ++) { 97 nodes[i].Min[0] = nodes[i].d[0] = b[i]; 98 nodes[i].Max[1] = nodes[i].d[1] = c[i]; 99 nodes[i].Max[2] = nodes[i].Min[2] = nodes[i].d[2] = i; 100 nodes[i].val = nodes[i].maxv = a[i]; 101 } 102 root = build(1, n); 103 for (int l, r; m --; ) { 104 cin >> l >> r; 105 l = (l + ans) % n + 1; 106 r = (r + ans) % n + 1; 107 if (l > r) swap(l, r); 108 y[0] = l - 1; 109 x[1] = r + 1; 110 x[2] = l, y[2] = r; 111 ans = 0, query(root); 112 cout << ans << endl; 113 } 114 cout << endl; 115 return 0; 116 } View Code

考慮a[i]上一次出現,和下一次出現位置分別pre[i], suc[i]

即變成pre[i], i, suc[i]在[0, l - 1], [l, r], [r + 1, n + 1]之間的數的最大值

3維KDtree即可,注意也要使用ans與區間最值的關系來優化

注意到3維有不需要的變量,不需要維護,40s時限跑了39s+...

?

簡單總結:

1) 解決求最值的問題,kdtree其實就是優化暴力,所以一般都需要估價函數優化才可以

2) 非最值問題,其實感覺更像線段樹,但由于奇妙的原因,所以一次更新覆蓋到的區間可能達到O(sqrt(n))個

3) 由于本質是暴力,所以常數比較重要,inline,子樹非空才更新,估價函數,無用信息不更新...各種優化,一般而言10W已經是極限

4) 板子題不說, KDtree的題目需要從題中找到k維平面,然后區間修改和區間查詢就完事了

5) 非強制在線題目,并不優先考慮kdtree,可以考慮樹套樹,kdtree不強制在線可以考慮排序降維

?

其他例題

5) bzoj4520 給N個點,求第K遠點對

solution:可以看到k比較小,所以所有點建好kdtree,對每個點查詢一下,維護出一個大小為k的堆

把n個點的堆進行合并,和并出大小為2k的堆,即得到答案

?

6) hdu 5992

可以考慮裸的3維kdtree,能過

考慮到n比較大,不強制在線,可以按價格排序,帶插入的kdtree,需要重構

這個題我打訓練賽寫后一種排序重構寫法T到自閉

然后把那個重構的參數調整成了0.95就過了...

后來仔細考慮了一下,這個題的特點在于N很大,M不大

20W個插入,只有2W個查詢

如果正常的把參數設為0.75的話,實際效率是接近O(N^(3/2))的

但參數設的比較偏的話,會減少重構次數,查詢的復雜度會增加

但實際總復雜度更接近O(M*N(1/2)),所以就能A了

所以通過這個題,我們推薦重構參數設為 M/(N + M) + 0.5

轉載于:https://www.cnblogs.com/ytytzzz/p/9625618.html

總結

以上是生活随笔為你收集整理的KD树学习小结的全部內容,希望文章能夠幫你解決所遇到的問題。

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

日本性生活一级片 | 黄色网址中文字幕 | 操久| av在线电影网站 | 99精品国产免费久久久久久下载 | 亚洲国产精品一区二区久久hs | 亚洲精品国产精品国自产 | 日韩精品视频免费 | 天天综合导航 | 97视频人人澡人人爽 | 91最新网址 | 97成人在线免费视频 | 91最新在线 | 亚洲精品乱码久久久一二三 | 日韩资源视频 | 亚洲欧洲美洲av | 亚洲成a人片在线观看网站口工 | 国产麻豆视频网站 | 天天曰夜夜爽 | 在线观看国产永久免费视频 | 天天爽综合网 | 国产打女人屁股调教97 | 午夜神马福利 | 国产手机视频在线播放 | 黄色国产在线观看 | 在线观看国产v片 | a天堂最新版中文在线地址 久久99久久精品国产 | 亚洲精品综合一区二区 | 片网址| 91少妇精拍在线播放 | 嫩草伊人久久精品少妇av | 精品一区91 | 精品国产一区二区三区四 | 蜜桃传媒一区二区 | 开心丁香婷婷深爱五月 | 国产精品尤物 | 亚洲欧美偷拍另类 | 久久字幕精品一区 | 国内免费久久久久久久久久久 | 日韩视频免费看 | 欧美一级免费片 | 国产无区一区二区三麻豆 | 97av精品| 免费日韩一级片 | 日韩性xxxx| 国产经典三级 | 黄色免费电影网站 | 久草在线国产 | 国产视频网站在线观看 | 国产 日韩 中文字幕 | 在线看欧美 | 天天干,天天插 | 在线午夜av | 中文字幕在线视频免费播放 | 国产精品自产拍在线观看 | 精品国产伦一区二区三区观看说明 | 免费成人av电影 | 麻豆视频在线免费看 | 亚洲精品免费在线 | 98超碰在线| 久久国产精品区 | 久久精品免费电影 | 在线 日韩 av | 日韩色在线观看 | 成人免费在线播放视频 | 日本精品视频在线播放 | 99视频精品全部免费 在线 | 日韩视频二区 | 国产理论片在线观看 | 成人黄色大片网站 | 国内成人精品视频 | 国产黄色精品网站 | 日本护士撒尿xxxx18 | 国产亚洲精品久久久久久久久久 | 精品福利av | 精品国产色 | 婷婷国产在线 | 欧美少妇的秘密 | 免费日韩三级 | 精品麻豆 | 免费三级骚| 国产精品久久久免费 | 免费观看黄色12片一级视频 | 国产中文欧美日韩在线 | 国产精品大全 | 亚洲国产黄色 | 99免费看片| 国产中文字幕国产 | 99免费在线视频观看 | 日韩午夜一级片 | 激情动态| 日韩av黄| 日韩av电影网站在线观看 | 欧美精品一区在线 | 五月婷在线 | 成人在线免费小视频 | 久久伊人婷婷 | 99精品久久精品一区二区 | 91日韩在线 | 久久不卡国产精品一区二区 | 色网址99 | 久久久久久久久久久久久久电影 | 婷婷av电影| 久久久久久久久电影 | 中日韩男男gay无套 日韩精品一区二区三区高清免费 | 毛片一级免费一级 | 国产成在线观看免费视频 | av福利在线免费观看 | 天天做天天看 | 天堂久色 | 欧美国产日韩在线视频 | 69国产在线观看 | 国产在线小视频 | 久久avav| 国产资源精品 | 久草在线视频看看 | 亚洲三级黄色 | 久久免视频 | 一区二区亚洲精品 | 久久a v视频 | 欧美一二三区在线播放 | 精品国产欧美一区二区三区不卡 | 99在线视频播放 | 麻豆果冻剧传媒在线播放 | 麻豆91精品视频 | 日韩伦理片一区二区三区 | 欧美日韩免费在线观看视频 | 国产午夜视频在线观看 | 91天堂影院 | 欧美污在线观看 | 国产a国产 | 久草免费在线观看视频 | 午夜精品一区二区三区免费 | 亚洲精选视频在线 | 97人人精品 | 国产成人精品久久亚洲高清不卡 | 超碰在线个人 | 久久噜噜少妇网站 | 亚洲一级片在线观看 | 在线观看91视频 | 五月婷婷一区 | 久艹视频免费观看 | 欧美久久久久久久久久久久久 | 久久久久久毛片精品免费不卡 | 国产麻豆精品久久 | 亚洲成人第一区 | 美女久久网站 | 亚洲精品一区二区三区四区高清 | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 亚洲一级特黄 | 国产精品99久久久久久有的能看 | 日韩精品不卡在线 | 欧美一二区在线 | 国产午夜麻豆影院在线观看 | 国产黄色片免费 | 国产91大片 | 日日草夜夜操 | 欧美伦理一区 | 国产在线播放一区二区 | 夜色成人网 | 狠狠狠色狠狠色综合 | 亚洲欧洲精品一区二区 | 夜色成人av | 欧美日韩高清一区二区三区 | 国产精品 中文字幕 亚洲 欧美 | 国产精品99蜜臀久久不卡二区 | 天天搞夜夜骑 | 国产精品久久久久aaaa九色 | 国产精品va在线 | 亚洲天堂香蕉 | 日韩激情在线视频 | 九九久 | 欧美亚洲精品一区 | 国产一级一片免费播放放a 一区二区三区国产欧美 | 丝袜精品视频 | av高清一区| 中文字幕色在线视频 | 国产精品黄色影片导航在线观看 | 国产91亚洲精品 | 2020天天干夜夜爽 | 久久福利剧场 | 国产日韩在线视频 | 国产一区二区在线视频观看 | 高潮久久久久久 | 日韩中文字幕免费在线播放 | 久久精品视频在线免费观看 | 丁香视频全集免费观看 | 成人四虎影院 | 久久一区二区三区日韩 | 久久男人免费视频 | 国产高清免费观看 | 91在线中字 | 涩涩网站免费 | 免费日韩一区二区 | aⅴ精品av导航 | 99久久久国产免费 | 久久99国产精品视频 | 91桃色免费观看 | 国产在线色 | 国产精品成人自产拍在线观看 | 香蕉久久国产 | 国产成人精品一区二 | 久久综合9988久久爱 | 国产精品一区二区三区久久 | 安徽妇搡bbbb搡bbbb | 丁香六月五月婷婷 | 欧美久久成人 | 久久99久久99精品免费看小说 | 久久久久日本精品一区二区三区 | 国产精品videossex国产高清 | 精品国产一区在线观看 | 日韩动态视频 | 亚洲好视频 | 日韩精品专区在线影院重磅 | 精品一区免费 | 亚洲第一中文字幕 | 日日干天天爽 | 中文字幕一区二区三区久久蜜桃 | 97在线观看免费观看高清 | 亚洲国产精品va在线看黑人动漫 | 色狠狠综合天天综合综合 | 99视频精品免费观看, | 日本精品视频在线 | 久久综合亚洲鲁鲁五月久久 | 欧美淫视频 | 国产日韩欧美视频在线观看 | 久久久久久久久久久久影院 | 九色自拍视频 | www狠狠操 | 亚洲最快最全在线视频 | 中文字幕在线免费看线人 | www.五月天婷婷.com | 亚洲精品网站在线 | 91大神精品视频在线观看 | 特级毛片在线观看 | 午夜免费电影院 | 91女子私密保健养生少妇 | 日日射天天射 | 欧美在线视频二区 | 久久久99精品免费观看 | www.久久免费视频 | 天天操天天射天天添 | 久久精品99国产精品日本 | 97高清视频 | 色综合久久久久网 | 91免费视频网站在线观看 | 操操综合 | 五月婷婷六月综合 | 日韩中文字幕免费电影 | 国产精品三级视频 | 国产一级片免费观看 | 亚洲精品免费在线播放 | 天天综合网 天天综合色 | 最近中文字幕免费大全 | 免费在线观看成人av | 国产福利小视频在线 | 亚洲精品tv久久久久久久久久 | 婷婷亚洲五月色综合 | 中文资源在线播放 | 国产超碰在线 | 久久精品资源 | 日韩欧美一区二区三区在线 | 九九视频在线 | av在线亚洲天堂 | 在线观看久久久久久 | 在线观看免费版高清版 | 91在线中文 | 91看片淫黄大片在线播放 | 91传媒在线观看 | 日韩影视大全 | 国产精品一区二区果冻传媒 | 免费能看的av | 91精品国产高清自在线观看 | 国产视频一区在线播放 | 国产精品一区二区62 | 亚洲视频免费在线观看 | 国产一区二区免费看 | 国内精品久久久久影院男同志 | 91九色porny在线 | 免费看黄色毛片 | 日本性高潮视频 | 亚洲精品视频免费在线 | 99视频免费在线观看 | av一级片在线观看 | 国产在线视频资源 | 久久久国产高清 | 国产91在线播放 | 在线视频黄 | 人人舔人人 | 日本久久久精品视频 | 国产另类xxxxhd高清 | 亚洲女在线| 日韩高清不卡一区二区三区 | 免费三级影片 | 中日韩男男gay无套 日韩精品一区二区三区高清免费 | av电影免费 | 欧美激情视频一二区 | 成 人 a v天堂| 久久草草热国产精品直播 | 在线中文字幕电影 | 亚洲一二区精品 | 7799av| 激情导航| 国产精品色视频 | 69热国产视频 | 亚洲成熟女人毛片在线 | 欧美性做爰猛烈叫床潮 | 亚洲国产欧洲综合997久久, | 99精品视频在线观看免费 | 日韩一片| 日韩免费观看视频 | www.888av | 激情视频免费在线 | 99色亚洲| 91精品国产91久久久久 | av超碰在线| 五月激情天 | 精品久久一二三区 | 97超碰成人在线 | 国产又粗又猛又爽 | 99九九视频 | 中文超碰字幕 | 国产玖玖在线 | 天天做天天爱天天综合网 | 国产在线精品一区二区三区 | 99久久久久免费精品国产 | av电影 一区二区 | 香蕉视频久久久 | 日韩av中文字幕在线免费观看 | 日韩精品播放 | 91人人人| 久久艹国产 | 最近最新中文字幕 | 婷婷成人在线 | 免费精品人在线二线三线 | 精品视频国产一区 | 久久综合久久八八 | 狠狠狠色狠狠色综合 | 五月婷婷激情 | 日韩av在线一区二区 | 天天爱天天| 成人av片免费看 | 免费看一级| 美女黄频网站 | 久久久久久久久久久福利 | 亚洲精品国产第一综合99久久 | 2019天天干天天色 | 在线观看视频在线观看 | 精品国产一区二区在线 | 中文字幕婷婷 | 欧美久久99 | 日韩有码在线观看视频 | av在线网站观看 | 国产亚洲在| 成人黄大片视频在线观看 | 黄网站色成年免费观看 | 日精品 | 欧美日比视频 | 91在线视频免费播放 | 天天综合网久久综合网 | 天天操导航 | 狠狠的操狠狠的干 | 国产亚洲精品精品精品 | 日韩久久久久久久久久久久 | 91一区二区三区在线观看 | 波多野结衣在线观看一区二区三区 | 日韩在线观看视频在线 | 久久天堂影院 | 免费看特级毛片 | 国产在线视频一区二区 | 亚洲一区二区黄色 | 毛片网站免费 | 日韩欧美亚州 | 成人国产精品一区二区 | 中文字幕资源网在线观看 | 亚洲天堂毛片 | 日韩av一区二区在线影视 | 久久国产精品小视频 | 人人爽人人舔 | 欧美性久久久 | 日韩精品一区二区三区在线视频 | 久久久福利视频 | 免费色视频网站 | 日日夜夜草 | 精品亚洲午夜久久久久91 | 久久精品网站免费观看 | 亚洲v欧美v国产v在线观看 | 久久久精品综合 | 久草视频手机在线 | 狠狠色狠狠色 | 欧美一区二区在线 | 99精品视频观看 | 美女视频网站久久 | 色欧美成人精品a∨在线观看 | 婷婷射五月| 免费视频二区 | 亚洲精品午夜视频 | 久久综合久色欧美综合狠狠 | 日韩欧美国产视频 | 亚洲mv大片欧洲mv大片免费 | 在线小视频 | 欧美日韩精品影院 | 国产福利av在线 | 中文字幕观看av | 国产精品免费在线播放 | 91精品一区二区三区蜜桃 | 久精品视频在线观看 | free. 性欧美.com | 久久久香蕉视频 | 超碰av免费| 999成人精品| 国产一区二区播放 | 麻豆一二三精选视频 | 国产看片免费 | 免费看黄色毛片 | 最新中文字幕在线资源 | 久久久久久久久久久久影院 | 亚洲国产精品电影在线观看 | 久草网视频在线观看 | 99久久综合国产精品二区 | 99精品在线观看 | 日日操日日干 | 黄色亚洲大片免费在线观看 | 亚洲视频免费在线 | 久久久久久久免费观看 | 在线看国产日韩 | 色综合久久综合 | 亚洲欧洲精品久久 | 91精品久久久久久综合乱菊 | 一区二区三区四区精品 | 毛片基地黄久久久久久天堂 | 黄色亚洲精品 | 综合久久五月天 | 在线观看国产高清视频 | 亚洲精品99 | 久久国产午夜精品理论片最新版本 | 国产精品久久久久av免费 | 丝袜美女在线观看 | 色婷在线 | 丁香六月在线 | 日本激情视频中文字幕 | 在线99 | av中文字幕网 | 欧美精品一区二区三区一线天视频 | 欧美片网站yy| 免费91在线观看 | 亚洲国产一区在线观看 | 日韩av二区| 色婷婷综合成人av | 中文字幕免费观看全部电影 | 男女全黄一级一级高潮免费看 | 97在线免费视频 | 日本性生活免费看 | 精品久久久久免费极品大片 | 欧美精品一区二区在线观看 | 99热999 | 香蕉视频国产在线 | 激情五月婷婷激情 | 国产精品video爽爽爽爽 | 深爱激情五月网 | 日韩v在线| 久久综合成人网 | 91亚洲网 | 中文字幕人成人 | 久久国产精品免费观看 | 视频在线观看入口黄最新永久免费国产 | 国产福利一区二区三区视频 | 久久综合狠狠综合久久激情 | 国产一级a毛片视频爆浆 | 精品产品国产在线不卡 | 国外成人在线视频网站 | 国产精品成人自产拍在线观看 | 九九色在线观看 | 亚洲最大免费成人网 | 少妇bbbb搡bbbb搡bbbb | 激情综合色播五月 | 国产精彩在线视频 | 日韩一区二区三区高清在线观看 | 亚洲春色综合另类校园电影 | 久久人人爽爽 | 色综合国产 | 91在线精品播放 | 国产精品毛片一区二区在线看 | 狠狠干婷婷 | 国产精品亚洲综合久久 | 在线小视频你懂得 | 成人午夜电影在线观看 | 欧美最新另类人妖 | 热re99久久精品国产66热 | 一本一本久久aa综合精品 | 最近2019中文免费高清视频观看www99 | 91高清一区| 亚洲丝袜一区 | 欧美日韩aa | 色中射 | 成人av一区二区三区 | 欧美精品少妇xxxxx喷水 | av大全在线播放 | 久久国产免 | 精品av网站 | av免费在线观 | 久久国产精品99精国产 | 日韩一区在线免费观看 | 久免费视频 | 激情网站网址 | 一区二区久久久久 | 怡红院久久| 91亚洲国产成人久久精品网站 | 91免费高清在线观看 | 国产精品亚州 | 中文字幕亚洲精品在线观看 | 日韩精品一区二区在线视频 | 亚洲成av人片在线观看 | 高清免费在线视频 | 夜夜夜草 | 国产h在线播放 | 成人免费亚洲 | 欧美另类xxxx| 黄色aa久久 | 久久99国产精品自在自在app | 日韩视频免费播放 | 激情五月婷婷激情 | 天天做天天爱天天综合网 | 中文字幕日韩精品有码视频 | 欧美色图东方 | 五月婷婷久久综合 | 久久久久久久久久久久电影 | 国产日产精品久久久久快鸭 | 99精品视频在线看 | 五月婷网 | 国产黄色成人 | 91免费版在线观看 | 国产精品久久一区二区三区, | 久久99热这里只有精品国产 | 天天爱天天射 | 久久综合导航 | 欧美日韩精品在线 | 国产一级片一区二区三区 | 久久ww| aaa黄色毛片 | 成年人视频在线观看免费 | 91精品蜜桃| 91亚色在线观看 | 国产精品久久久久999 | 久久久一本精品99久久精品 | 久久任你操 | 2021国产在线 | 成年人在线观看免费视频 | 久久精品日韩 | 亚洲免费在线看 | 久久精品黄 | 亚洲激情网站免费观看 | 日韩高清成人 | 欧美精品亚洲二区 | 亚洲日本一区二区在线 | 国产一级黄色片免费看 | 天天操夜夜叫 | 久草在线最新视频 | 国产剧情在线一区 | 日日夜夜精品视频 | 欧美精品在线一区 | av一级网站 | 精品国产中文字幕 | 99精品国产99久久久久久福利 | 97视频免费在线看 | 97人人爽人人 | 91九色视频 | 天堂av在线网 | 天天操偷偷干 | 香蕉影院在线播放 | 黄在线免费看 | 国产精品99蜜臀久久不卡二区 | 九九九在线观看视频 | 深爱激情五月婷婷 | 欧美做受xxx | 国产精品久久久久久久免费大片 | 国产婷婷 | 成人全视频免费观看在线看 | 中文字幕在线不卡国产视频 | 91av视频免费观看 | 日韩在线网| 成人黄性视频 | 五月婷婷操 | 国产精品久久久免费 | 激情av在线播放 | 国产视频在线观看一区 | 蜜桃视频色 | 97国产大学生情侣白嫩酒店 | 国产中的精品av小宝探花 | 国产精品美女视频网站 | 国产xxxx性hd极品 | 免费看三级 | 久久免费在线 | 国产精彩视频 | 国产黄在线免费观看 | 深爱激情综合网 | 日韩黄色在线电影 | 国产日本三级 | 香蕉免费在线 | 毛片网在线播放 | 一区二区三区在线观看 | 久久精品美女 | 亚洲精品国产成人 | 色综合久久天天 | 天天操夜操 | 国产精品免费一区二区三区在线观看 | av免费线看 | 四虎在线免费观看 | 成人av免费网站 | 国产黄大片在线观看 | 国产美女精品在线 | 亚洲女欲精品久久久久久久18 | 亚洲精品欧美精品 | 草久久久久 | 69av在线视频 | 99精品视频观看 | 在线免费视频a | 91人人澡人人爽人人精品 | 九九热免费观看 | 久久伊人八月婷婷综合激情 | 亚洲精品久久在线 | 久久国产精品免费视频 | 国产精品久久久久一区二区三区共 | 999在线精品 | 婷婷丁香色综合狠狠色 | 在线观看中文 | 欧美日韩国产在线一区 | 美女精品网站 | 在线视频 影院 | 午夜精品一区二区三区在线 | 91成人免费观看视频 | 国产一级a毛片视频爆浆 | 中文字幕一区二区三区乱码不卡 | 久久女同性恋中文字幕 | 欧美在线观看视频一区二区 | 国产色就色 | 亚洲美女精品区人人人人 | 激情久久久久久久久久久久久久久久 | 91大神在线看 | 中文字幕人成乱码在线观看 | 91在线免费播放视频 | 九九久久精品视频 | www.色午夜| 久久精品亚洲国产 | 五月天电影免费在线观看一区 | 99久久99久久综合 | 国产精品久久久久久久久久三级 | 天天天天天天天操 | 国产偷v国产偷∨精品视频 在线草 | 国产精品11 | 天天做天天爱天天综合网 | 国产一区二区在线免费 | 国产手机免费视频 | 粉嫩高清一区二区三区 | 激情婷婷丁香 | 福利电影久久 | 亚洲涩涩网站 | 欧美亚洲一区二区在线 | 国产精品免费观看国产网曝瓜 | 精品国产成人av在线免 | 亚洲国产影院av久久久久 | 欧美另类调教 | 91香蕉嫩草 | 97色狠狠| 丁香综合激情 | 日批在线观看 | 日韩三级免费观看 | 黄色av播放 | 国产成人精品av在线 | 欧美大荫蒂xxx | 国内丰满少妇猛烈精品播 | 手机成人免费视频 | 四虎国产精品免费观看视频优播 | 天天爽天天搞 | 成人av网页 | 激情综合中文娱乐网 | 四虎永久国产精品 | 一区二区三区视频网站 | 欧美另类高潮 | 国产免费午夜 | av黄色亚洲 | 黄色亚洲在线 | 狠狠色丁香久久婷婷综合_中 | 色在线免费观看 | 性色xxxxhd | 手机看片午夜 | 欧美性久久久久久 | 亚洲精品视频 | 在线日韩三级 | 中文字幕色站 | 成人av资源网 | 欧美福利久久 | 激情电影影院 | 国产成人一区二区三区电影 | 免费一级片在线 | 日韩成人精品一区二区 | 在线观看久久 | 国产精品久久久久久久久久久久午夜 | 欧美日韩3p | 九9热这里真品2 | 国产日韩精品久久 | 91成人精品一区在线播放 | 亚洲精品字幕 | 亚洲国产美女精品久久久久∴ | 色婷婷久久一区二区 | 日本韩国精品在线 | 久久精品网站视频 | 久草在线视频在线 | 69xxxx欧美| 91人人射 | 亚洲精品国偷拍自产在线观看蜜桃 | 久草91视频 | 激情www| 91精品国产成人 | 色综合天天射 | 青草视频免费观看 | 久久精品视频3 | 欧美日韩性视频在线 | 久久伊人婷婷 | 999久久久久久久久久久 | 国产精品久久嫩一区二区免费 | 欧美在线18 | 久久久99精品免费观看app | 久草爱 | 天天色官网 | 五月综合激情网 | 国产精品嫩草69影院 | 久久99精品久久久久久久久久久久 | 亚洲片在线资源 | 久久久九色精品国产一区二区三区 | 日韩中文字幕免费在线观看 | 日韩午夜在线 | 四虎影视精品永久在线观看 | 973理论片235影院9 | 免费精品国产 | 91福利视频免费观看 | 久久精品国产亚洲精品2020 | 伊人天天色 | 日韩视频图片 | 亚洲精品 在线视频 | 精品日韩中文字幕 | 视频二区| 97成人精品视频在线观看 | 亚洲天堂在线观看完整版 | 亚洲视频h | 日韩精品欧美专区 | 91人人爽久久涩噜噜噜 | 日韩一级电影在线 | 狠日日| av中文字幕网址 | 一级黄色片在线观看 | 国产黄色大片 | 日韩二区三区在线 | 欧美婷婷色 | 五月婷婷香蕉 | 五月香视频在线观看 | 日本视频高清 | 狠狠狠狠狠狠 | 中文字幕国产亚洲 | 国产一区免费在线观看 | 亚洲人成人天堂h久久 | 成年人免费观看国产 | 国产91全国探花系列在线播放 | 五月婷婷丁香激情 | 久久精品五月 | 中文字幕亚洲综合久久五月天色无吗'' | 日本中文字幕在线播放 | 午夜黄色 | 日韩在线观看视频一区二区三区 | 中文字幕在线免费观看 | 亚洲女同videos | 日日骑 | 久久免费片| av在线播放不卡 | 亚洲精品18日本一区app | 国产麻豆电影在线观看 | 最近久乱中文字幕 | 久久久不卡影院 | 久久视频在线观看中文字幕 | 久久69精品| 丁香婷婷激情国产高清秒播 | 亚洲三级毛片 | 97在线观看免费高清完整版在线观看 | 欧美大片在线看免费观看 | 国产黄在线播放 | 麻豆视频免费入口 | av动图| 亚洲va欧美va人人爽春色影视 | 91在线亚洲 | 久久免费播放 | 亚洲精品永久免费视频 | 能在线看的av | 狠狠色丁香久久婷婷综合五月 | 又黄又爽又刺激视频 | 久久精品—区二区三区 | 国产高清视频免费观看 | 中文字幕在线日 | 99视频在线精品免费观看2 | 成人精品亚洲 | 日韩黄色av网站 | 亚洲国产三级在线观看 | 国产精品久久久久久久久大全 | 国产精品久久久久久久av电影 | 成人黄色大片在线观看 | 欧美一级片在线播放 | 国产原创av片| 嫩嫩影院理论片 | 91成人免费视频 | 亚洲精品欧美成人 | 日韩色综合网 | 国产精品国产三级国产专区53 | 国内精品久久久 | 在线激情网 | 天天天天天天操 | 亚洲第一久久久 | 午夜神马福利 | 九九99靖品 | 日本成人中文字幕在线观看 | 99久久99久久免费精品蜜臀 | 国产精品国产亚洲精品看不卡15 | 国产精品国产亚洲精品看不卡 | 亚洲欧美成人网 | 亚洲一区二区视频 | 国产va饥渴难耐女保洁员在线观看 | 日韩av影视在线 | av韩国在线| av黄色av | 国内精品久久久 | 国产丝袜 | 亚洲 中文字幕av | 91在线亚洲 | 伊人www22综合色 | av中文字幕第一页 | 亚洲欧美精品在线 | 久久精品久久99精品久久 | 98久9在线 | 免费 | 国产男女无遮挡猛进猛出在线观看 | 国产一级精品在线观看 | 亚洲国内精品 | 91视频麻豆 | 六月天综合网 | 久久视频免费观看 | 国产精品视屏 | 99 国产精品| 美女黄频在线观看 | 亚州激情视频 | 视频在线观看91 | 麻花豆传媒mv在线观看网站 | 国产亚洲观看 | 91精品国产乱码在线观看 | 天天添夜夜操 | 天天天天天天天操 | 婷婷精品在线 | 久久久亚洲成人 | 欧美一级免费片 | 日日干天天爽 | 成人久久免费视频 | 国产精品国产自产拍高清av | 精品久久一区二区 | 欧美日韩亚洲在线观看 | 国产一二三区在线观看 | 国产精品久久电影网 | 狠狠操影视| 免费人成网ww44kk44 | 有码中文字幕在线观看 | 日韩精品视频第一页 | 在线免费观看一区二区三区 | 亚洲国产精品人久久电影 | 99久久精品日本一区二区免费 | 国产99久久99热这里精品5 | 日韩午夜视频在线观看 | 国产最新在线视频 | 国产99免费视频 | 国产又粗又猛又爽又黄的视频先 | 又黄又爽又无遮挡的视频 | 久久蜜桃av| 久久99久久99精品免观看软件 | 国产成人久 | 国产群p视频 | 九九日韩| 久久九九网站 | 国产精品九九九 | 91系列在线| 免费av成人在线 | 天天爽天天射 | 久久色中文字幕 | 黄色a一级片 | 欧美日韩视频在线观看免费 | 三级av黄色 | 五月婷婷综合在线视频 | 色播五月婷婷 | 日本精品久久久久中文字幕5 | 亚洲成人高清在线 | 天天射天天拍 | av短片在线 | 在线精品视频免费播放 | 国产精品久久99综合免费观看尤物 | 丁香花中文在线免费观看 | 久久99热久久99精品 | 亚洲一区二区视频在线播放 | 久草com| 伊人久久国产精品 | 久草在线在线视频 | 精品一区在线 | 91在线视频观看 | 中文字幕免费观看视频 | 国产视频精品久久 | 伊人久久国产精品 | 九九日九九操 | 91大神电影 | 国产一级淫片免费看 | 九月婷婷色 | a在线视频v视频 | 首页国产精品 | 精品国自产在线观看 | 免费的黄色av | 激情综合网五月婷婷 | 国产1区2 | 欧美色一色 | 狠狠干激情 | 国产美女搞久久 | 欧洲一区二区三区精品 | 狠狠的干 | 精品国产乱码久久久久久1区2匹 | 久久久久综合精品福利啪啪 | 日韩免费成人av | 国产亚洲精品久久久久久无几年桃 | 九九久久成人 | 国产精品一区二区视频 | 日韩大片在线观看 | 国产精品激情在线观看 | 伊人天天狠天天添日日拍 | 久草在线网址 | 天天天综合网 | 亚洲精品永久免费视频 | 国产免费一区二区三区最新 | 韩国精品在线 | 超碰在线98| 中文字幕第一页在线 | 五月婷婷伊人网 | 麻豆传媒视频在线 | 欧美极品少妇xbxb性爽爽视频 | 99精品视频观看 | 91麻豆产精品久久久久久 | 色99中文字幕 | 五月激情电影 | 免费久久片 | 久久综合九色综合欧美狠狠 | 激情网在线视频 | 麻豆精品视频 | 国产精品欧美精品 | 欧美,日韩 | 成x99人av在线www| 在线观看不卡视频 | 国产精品久久久久久久免费大片 | 最新在线你懂的 | 亚洲精品乱码久久 | 成人av电影在线观看 | 国产日产精品一区二区三区四区的观看方式 | 国产精华国产精品 | 97超碰人人澡 | 狠狠久久伊人 | 中文免费观看 | 久久综合久久综合久久 | 亚洲v欧美v国产v在线观看 | 久久久久久久99精品免费观看 | 免费观看黄色12片一级视频 | 黄色小说在线免费观看 | 欧美色插 | 久久一区二区三区日韩 | www.天天操.com | 亚洲精品在线观看中文字幕 | 人人搞人人搞 | 精品欧美一区二区在线观看 | 探花视频在线版播放免费观看 | 97在线观视频免费观看 | 成人免费电影 | 国产精品入口久久 | 国产精品原创在线 | 911在线| 亚洲亚洲精品在线观看 | 手机看国产毛片 | 91tv国产成人福利 | 午夜精品久久 | 欧美久久久久久久久久久 | 久热香蕉视频 | 国产亚洲va综合人人澡精品 | 国产精品精 | 国产一二区视频 | 国产精品电影一区 | 蜜桃av人人夜夜澡人人爽 | 欧美韩日精品 | 狠狠狠狠干 | 国产日韩欧美中文 | 国产999精品 | 欧美成年性 | 欧美最猛性xxxxx(亚洲精品) | 日韩精品视频免费专区在线播放 |