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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

莫队——三种题型

發(fā)布時間:2023/12/4 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 莫队——三种题型 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

普通莫隊

P3901 數(shù)列找不同

Thinking

一定是用可以用莫隊來寫題,這點是不用質(zhì)疑的,所以那就簡單了,只需要判斷每次詢問的區(qū)間是否滿足r?l+1==numr - l + 1 == numr?l+1==num就行了。

Coding1Coding_1Coding1?

莫隊寫法

#include <bits/stdc++.h> #define mp make_pair #define pb push_backusing namespace std;typedef long long ll; typedef unsigned long long ull; typedef pair<int, int> pii;const double pi = acos(-1.0); const double eps = 1e-7; const int inf = 0x3f3f3f3f;inline ll read() {ll f = 1, x = 0;char c = getchar();while(c < '0' || c > '9') {if(c == '-') f = -1;c = getchar();}while(c >= '0' && c <= '9') {x = (x << 1) + (x << 3) + (c ^ 48);c = getchar();}return f * x; }const int N = 1e6 + 10;int n, m, a[N], num[N], ans[N], block, sum, k;struct Node {int l, r, id;// bool operator < (const Node & t) const {// return r < t.r;// } }query[N];bool cmp1(Node x, Node y) {return ((x.l / block) == (y.l / block)) ? x.r < y.r : x.l < y.l; }//按照塊排序bool cmp2(Node x, Node y) {return ((x.l / block) != (y.l / block)) ? x.l < y.l : ((x.l / block) & 1) ? x.r < y.r : x.r > y.r; }//按照塊的奇偶排序void add(int x) {num[a[x]]++;if(num[a[x]] == 1) sum++;// sum += 2 * num[a[x]] - 1; }void del(int x) {num[a[x]]--;if(num[a[x]] == 0) sum--;// sum -= 2 * num[a[x]] + 1; }int main() {// freopen("in.txt", "r", stdin);// freopen("out.txt", "w", stdout);// ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);n = read(), m = read();for(int i = 1; i <= n; i++) a[i] = read();block = sqrt(n);for(int i = 1; i <= m; i++) {query[i].l = read(), query[i].r = read();query[i].id = i;}sort(query + 1, query + 1 + m, cmp2);int l = 0, r = 0;for(int i = 1; i <= m; i++) {while(r > query[i].r) del(r--);while(r < query[i].r) add(++r);while(l < query[i].l) del(l++);while(l > query[i].l) add(--l);ans[query[i].id] = (sum == query[i].r - query[i].l + 1);}for(int i = 1; i <= m; i++)puts(ans[i] ? "Yes" : "No");return 0; }

Coding2Coding_2Coding2?

樹狀數(shù)組寫法。

#include <bits/stdc++.h> #define mp make_pair #define pb push_backusing namespace std;typedef long long ll; typedef unsigned long long ull; typedef pair<int, int> pii;const double pi = acos(-1.0); const double eps = 1e-7; const int inf = 0x3f3f3f3f;inline ll read() {ll f = 1, x = 0;char c = getchar();while(c < '0' || c > '9') {if(c == '-') f = -1;c = getchar();}while(c >= '0' && c <= '9') {x = (x << 1) + (x << 3) + (c ^ 48);c = getchar();}return f * x; }const int N = 1e6 + 10;int n, m, a[N], pos[N], tree[N], ans[N];struct Node {int l, r, id;bool operator < (const Node & t) const {return r < t.r;} }query[N];void add(int x, int value) {while(x < N) {tree[x] += value;x += x & (-x);} }int ask(int x) {int ans = 0;while(x) {ans += tree[x];x -= x & (-x);}return ans; }int main() {// freopen("in.txt", "r", stdin);// freopen("out.txt", "w", stdout);// ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);n = read(), m = read();for(int i = 1; i <= n; i++) a[i] = read();for(int i = 1; i <= m; i++) {query[i].l = read(), query[i].r = read();query[i].id = i;}sort(query + 1, query + 1 + m);int l = 1;for(int i = 1; i <= m; i++) {for(int j = l; j <= query[i].r; j++) {if(pos[a[j]])add(pos[a[j]], -1);pos[a[j]] = j;add(j, 1);}l = query[i].r + 1;ans[query[i].id] = (ask(query[i].r) - ask(query[i].l - 1) == query[i].r - query[i].l + 1);}for(int i = 1; i <= m; i++)puts(ans[i] ? "Yes" : "No");return 0; }

D. Tree and Queries

Thinking

利用dfsdfsdfs序的特性,同一顆子樹上的節(jié)點會連成一片,所以很好的將一個樹上問題轉(zhuǎn)換成了區(qū)間問題,這個時候就可以用上莫隊來寫了。

Coding

#include <bits/stdc++.h> #define mp make_pair #define pb push_backusing namespace std;typedef long long ll; typedef unsigned long long ull; typedef pair<int, int> pii;const double pi = acos(-1.0); const double eps = 1e-7; const int inf = 0x3f3f3f3f;inline ll read() {ll f = 1, x = 0;char c = getchar();while(c < '0' || c > '9') {if(c == '-') f = -1;c = getchar();}while(c >= '0' && c <= '9') {x = (x << 1) + (x << 3) + (c ^ 48);c = getchar();}return f * x; }const int N = 1e5 + 10;int head[N], to[N << 1], nex[N << 1], cnt = 1; int a[N], n, m, block, sum[N], ans[N], Ans[N]; int pre[N], suc[N], rk[N], num;struct Node {int l, r, id, minn;Node(int _l = 0, int _r = 0, int _id = 0, int _minn = 0) :l(_l), r(_r), id(_id), minn(_minn) {} }ask[N];bool cmp(Node a, Node b) {return ((a.l / block) != (b.l / block)) ? a.l < b.l : ((a.l / block) & 1) ? a.r < b.r : a.r > b.r; }void add_edge(int x, int y) {to[cnt] = y;nex[cnt] = head[x];head[x] = cnt++; }void dfs(int rt, int f) {pre[rt] = ++num;rk[num] = rt;for(int i = head[rt]; i; i = nex[i]) {if(to[i] == f) continue;dfs(to[i], rt);}suc[rt] = num; }void add(int x) {Ans[++sum[a[x]]]++; }void del(int x) {Ans[sum[a[x]]--]--; }int main() {// freopen("in.txt", "r", stdin); // freopen("out.txt", "r", stdout);// ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);n = read(), m = read();block = sqrt(n);for(int i = 1; i <= n; i++) a[i] = read();for(int i = 1; i < n; i++) {int x = read(), y = read();add_edge(x, y);add_edge(y, x);}dfs(1, 0);for(int i = 1; i <= m; i++) {int x = read(), y = read();ask[i] = Node(pre[x], suc[x], i, y);}sort(ask + 1, ask + 1 + m, cmp);int l = 0, r = 0;for(int i = 1; i <= m; i++) {while(r < ask[i].r) add(rk[++r]);while(r > ask[i].r) del(rk[r--]);while(l > ask[i].l) add(rk[--l]);while(l < ask[i].l) del(rk[l++]);ans[ask[i].id] = Ans[ask[i].minn];}for(int i = 1; i <= m; i++) printf("%d\n", ans[i]);return 0; }

D. Powerful array

Thinking

同樣是一個區(qū)間問題,我們考慮用莫隊如何維護(hù)。

假設(shè)當(dāng)前數(shù)字xxx出現(xiàn)的次數(shù)是nnn次,有sum1=n2xsum_1 = n ^ {2} xsum1?=n2x

我們假設(shè)其增加一則變成了sum2=(n+1)2x=n2x+(2n+1)xsum_2 = (n + 1) ^ {2} x = n ^ {2} x + (2 n + 1)xsum2?=(n+1)2x=n2x+(2n+1)x,其增量是(n<<1∣1)x(n << 1 | 1)x(n<<11)x

我們再假設(shè)其減一則變成了sum3=(n?1)2x=n2x?(2(n?1)+1)xsum_3 = (n - 1) ^ {2} x = n ^ {2}x - (2(n - 1) + 1)xsum3?=(n?1)2x=n2x?(2(n?1)+1)x,其減少量是((n?1)<<1∣1)x((n - 1) << 1 | 1)x((n?1)<<11)x

由此我們就推出了答案變換的公式了。

Coding

/*Author : lifehappy */ #pragma GCC optimize(2) #pragma GCC optimize(3) #include <bits/stdc++.h> #define mp make_pair #define pb push_backusing namespace std;typedef long long ll; typedef unsigned long long ull; typedef pair<int, int> pii;const double pi = acos(-1.0); const double eps = 1e-7; const int inf = 0x3f3f3f3f;inline ll read() {ll f = 1, x = 0;char c = getchar();while(c < '0' || c > '9') {if(c == '-') f = -1;c = getchar();}while(c >= '0' && c <= '9') {x = (x << 1) + (x << 3) + (c ^ 48);c = getchar();}return f * x; }const int N = 1e6 + 10;int n, m, block, a[N]; ll num[N], ans[N], now;struct Node {int l, r, id;bool operator < (const Node & t) const {return (l / block) != (t.l / block) ? l < t.l : ((l / block) & 1) ? r < t.r : r > t.r;} }ask[N];void add(int x) {now += (num[a[x]]++ << 1 | 1) * a[x]; } void del(int x) {now -= (--num[a[x]] << 1 | 1) * a[x]; }int main() {// freopen("in.txt", "r", stdin);// freopen("out.txt", "r", stdout);// ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);n = read(), m = read();for(int i = 1; i <= n; i++) a[i] = read();block = sqrt(n);for(int i = 1; i <= m; i++) {ask[i].l = read(), ask[i].r = read();ask[i].id = i;}sort(ask + 1, ask + 1 + m);int l = 1, r = 0;for(int i = 1; i <= m; i++) {while(r < ask[i].r) add(++r);while(r > ask[i].r) del(r--);while(l < ask[i].l) del(l++);while(l > ask[i].l) add(--l);ans[ask[i].id] = now;}for(int i = 1; i <= m; i++) printf("%lld\n", ans[i]);return 0; }

P1533 可憐的狗狗

Thinking

權(quán)值線段樹加莫隊。

題目給的數(shù)據(jù)表意不明,所以我們最好還是給aia_iai?離散化后,再進(jìn)行權(quán)值的插入刪除操作。

這里的權(quán)值標(biāo)記的是第iii只夠是否在區(qū)間里,如果在就標(biāo)記為111,否則就刪去這個點變成000,對每個區(qū)間都完成了相應(yīng)的操作,接下來我們就是要去查詢第KKK大的是什么,這里通過樹狀數(shù)組的前綴和性質(zhì)對其進(jìn)行二分,得到第kkk大的ididid,然后通過這個得到答案。

Coding

/*Author : lifehappy */ #pragma GCC optimize(2) #pragma GCC optimize(3) #include <bits/stdc++.h> #define mp make_pair #define pb push_backusing namespace std;typedef long long ll; typedef unsigned long long ull; typedef pair<int, int> pii;const double pi = acos(-1.0); const double eps = 1e-7; const int inf = 0x3f3f3f3f;inline ll read() {ll f = 1, x = 0;char c = getchar();while(c < '0' || c > '9') {if(c == '-') f = -1;c = getchar();}while(c >= '0' && c <= '9') {x = (x << 1) + (x << 3) + (c ^ 48);c = getchar();}return f * x; }const int N = 3e5 + 10;int a[N], b[N], id[N], n, m, block; int tree[N], ans[N];struct Node {int l, r, k, id;Node(int _l = 0, int _r = 0, int _k = 0, int _id = 0) : l(_l), r(_r), k(_k), id(_id) {}void input() {l = read(), r = read(), k = read();}bool operator < (const Node & t) const {return (l / block) != (t.l / block) ? l < t.l : ((l / block) & 1) ? r < t.r : r > t.r;} }ask[N];void update(int x, int value) {while(x <= n) {tree[x] += value;x += x & (-x);} }int query(int x) {int ans = 0;while(x) {ans += tree[x];x -= x & (-x);}return ans; }int find(int value) {int l = 1, r = n;while(l < r) {int mid = l + r >> 1;if(query(mid) < value) l = mid + 1;else r = mid;}return l; }void del(int x) {if(id[x]) update(id[x], -1);//if(id[x])是為了放置樹狀數(shù)組死循環(huán)而加上了的。 }void add(int x) {if(id[x]) update(id[x], 1); }int main() {// freopen("in.txt", "r", stdin);// freopen("out.txt", "w", stdout);// ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);n = read(), m = read(), block = sqrt(n);for(int i = 1; i <= n; i++) a[i] = b[i] = read();sort(b + 1, b + 1 + n);for(int i = 1; i <= n; i++) id[i] = lower_bound(b + 1, b + 1 + n, a[i]) - b;for(int i = 1; i <= m; i++) {ask[i].input();ask[i].id = i;}sort(ask + 1, ask + 1 + m);int l = 0, r = 0;for(int i = 1; i <= m; i++) {while(r > ask[i].r) del(r--);while(r < ask[i].r) add(++r);while(l < ask[i].l) del(l++);while(l > ask[i].l) add(--l);ans[ask[i].id] = find(ask[i].k);}for(int i = 1; i <= m; i++) printf("%d\n", b[ans[i]]);return 0; }

Chika and Friendly Pairs

Thinking

這題與上一題的思想有異曲同工之處,離散化后莫隊,通過插入,刪除,區(qū)間查詢操作,來得到我們最后的答案。

Coding

/*Author : lifehappy */ #pragma GCC optimize(2) #pragma GCC optimize(3) #include <bits/stdc++.h> #define mp make_pair #define pb push_backusing namespace std;typedef long long ll; typedef unsigned long long ull; typedef pair<int, int> pii;const double pi = acos(-1.0); const double eps = 1e-7; const int inf = 0x3f3f3f3f;inline ll read() {ll f = 1, x = 0;char c = getchar();while(c < '0' || c > '9') {if(c == '-') f = -1;c = getchar();}while(c >= '0' && c <= '9') {x = (x << 1) + (x << 3) + (c ^ 48);c = getchar();}return f * x; }void print(ll x) {if(x < 10) {putchar(x + 48);return ;}print(x / 10);putchar(x % 10 + 48); }const int N = 3e4 + 10;int a[N], b[N], tree[N], n, m, k, block, all; ll sum, ans[N];struct Node {int l, r, id;bool operator < (const Node & t) const {return (l / block) != (t.l / block) ? l < t.l : ((l / block) & 1) ? r < t.r : r > t.r; } }ask[N];void update(int x, int value) {while(x <= n) {tree[x] += value;x += x & (-x);} }int query(int x) {int ans = 0;while(x) {ans += tree[x];x -= x & (-x);}return ans; }void del(int x) {//刪除點,以及對答案進(jìn)行的影響操作。//我們不難發(fā)現(xiàn)出了這個點外在區(qū)間[b[x] - k, b[x] + k]里的點都會對答案進(jìn)行貢獻(xiàn)影響。//所以我們刪除這個點后查詢query(r - 1) - query(l - 1)就是對答案的減小影響。update(x, -1);int l = lower_bound(b + 1, b + 1 + all, b[x] - k) - b;//這個點應(yīng)該不用多說。int r = upper_bound(b + 1, b + 1 + all, b[x] + k) - b;//r是第一個大于b[x] + k的,所以r - 1是最后一個 <= b[x] + k的點。sum -= query(r - 1) - query(l - 1); }void add(int x) {update(x, 1);int l = lower_bound(b + 1, b + 1 + all, b[x] - k) - b;int r = upper_bound(b + 1, b + 1 + all, b[x] + k) - b;sum += query(r - 1) - query(l - 1) - 1; }int main() {// freopen("in.txt", "r", stdin);// freopen("out.txt", "w", stdout);// ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);n = read(), m = read(), k = read(), block = sqrt(n);for(int i = 1; i <= n; i++) a[i] = b[i] = read();sort(b + 1, b + 1 + n);all = unique(b + 1, b + 1 + n) - (b + 1);for(int i = 1; i <= n; i++) a[i] = lower_bound(b + 1, b + 1 + all, a[i]) - b;for(int i = 1; i <= m; i++) {ask[i].l = read(), ask[i].r = read();ask[i].id = i;}sort(ask + 1, ask + 1 + m);int l = 1, r = 0;for(int i = 1; i <= m; i++) {while(r > ask[i].r) del(a[r--]);while(r < ask[i].r) add(a[++r]);while(l > ask[i].l) add(a[--l]);while(l < ask[i].l) del(a[l++]);ans[ask[i].id] = sum;}for(int i = 1; i <= m; i++) print(ans[i]), putchar('\n');return 0; }

可修改莫隊

P1903 [國家集訓(xùn)隊]數(shù)顏色 / 維護(hù)隊列

Thinking

無非就是加了一個時間標(biāo)記變成了有三個條件束縛,分別對l,r,tl, r, tl,r,t三個變量進(jìn)行排序,接下來就是莫隊的基本操作了。

Coding

/*Author : lifehappy */ #pragma GCC optimize(2) #pragma GCC optimize(3) #include <bits/stdc++.h> #define mp make_pair #define pb push_backusing namespace std;typedef long long ll; typedef unsigned long long ull; typedef pair<int, int> pii;const double pi = acos(-1.0); const double eps = 1e-7; const int inf = 0x3f3f3f3f;inline ll read() {ll f = 1, x = 0;char c = getchar();while(c < '0' || c > '9') {if(c == '-') f = -1;c = getchar();}while(c >= '0' && c <= '9') {x = (x << 1) + (x << 3) + (c ^ 48);c = getchar();}return f * x; }void print(int x) {if(x < 10) {putchar(x + 48);return ;}print(x / 10);putchar(x % 10 + 48); }const int N = 1e6 + 10;int a[N], num[N], ans[N], n, q_time, c_time, block, m, sum;struct Change {int pos, pre, cur; }change[N];struct Query {int l, r, id, t;Query(int _l = 0, int _r = 0, int _id = 0, int _t = 0) : l(_l), r(_r), id(_id), t(_t) {}bool operator < (const Query & temp) const {return (l / block) != (temp.l / block) ? l < temp.l : (r / block) != (temp.r / block) ? r < temp.r : t < temp.t;} }ask[N];void add(int x) {sum += !num[a[x]]++; }void del(int x) {sum -= !--num[a[x]]; }int main() {// freopen("in.txt", "r", stdin);// freopen("out.txt", "w", stdout);// ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);n = read(), m = read();for(int i = 1; i <= n; i++) a[i] = read();for(int i = 1; i <= m; i++) {char op = getchar();while(op != 'Q' && op != 'R') op = getchar();if(op == 'Q') {q_time++;ask[q_time].l = read(), ask[q_time].r = read();ask[q_time].id = q_time, ask[q_time].t = c_time;}else {c_time++;change[c_time].pos = read(), change[c_time].cur = read();change[c_time].pre = a[change[c_time].pos];a[change[c_time].pos] = change[c_time].cur;//這點一定要注意把a(bǔ)[pos]變成我們要改變的,因為后面可能再次改變這個點,所以他的pre應(yīng)該是前一次已經(jīng)改變后的狀態(tài)。}}for(int i = c_time; i >= 1; i--) a[change[i].pos] = change[i].pre;//注意從后向前恢復(fù)原狀。block = ceil(exp((log(n) + log(q_time)) / 3));int l = 0, r = 0, t = 0;sort(ask + 1, ask + 1 + q_time);for(int i = 1; i <= q_time; i++) {while(r > ask[i].r) del(r--);while(r < ask[i].r) add(++r);while(l > ask[i].l) add(--l);while(l < ask[i].l) del(l++);while(t < ask[i].t) {t++;int pos = change[t].pos;if(l <= pos && pos <= r)//同時滿足在l , r之間才能進(jìn)行區(qū)間的篩選操作。del(pos);a[pos] = change[t].cur;//改變其值。if(l <= pos && pos <= r)add(pos);}while(t > ask[i].t) {int pos = change[t].pos;if(l <= pos && pos <= r)del(pos);a[pos] = change[t].pre;if(l <= pos && pos <= r)add(pos);t--;}ans[ask[i].id] = sum;}for(int i = 1; i <= q_time; i++) print(ans[i]), putchar('\n');return 0; }

樹上莫隊

SP10707 COT2 - Count on a tree II

Thinking

設(shè)定兩個數(shù)組pre,sucpre,sucpresuc數(shù)組,preipre_iprei?數(shù)組記錄的是節(jié)點iii第一次進(jìn)入dfsdfsdfs的時間戳,sucisuc_isuci?記錄的是節(jié)點iiidfsdfsdfs的時間戳。

如這個例子:

有節(jié)點權(quán)值及樹的形狀,滿足如下

105 2 9 3 8 5 7 7 1 2 1 3 1 4 3 5 3 6 3 7 4 8

有歐拉序的排列如下。

1 4 8 8 4 3 7 7 6 6 5 5 3 2 2 1

求2, 8的間的,不同的元素。

lca(2,8)==1!=2,!=8lca(2, 8) == 1 != 2, != 8lca(2,8)==1!=2,!=8,有pre[2]=15>pre[8]=3pre[2] = 15 > pre[8] = 3pre[2]=15>pre[8]=3,所以我們?nèi)^(qū)間suc[8],pre[2]suc[8], pre[2]suc[8],pre[2]也就是

{8 4 3 7 7 6 6 5 5 3 2}?,成對出現(xiàn)的舍棄,最后{8 4 2} + lca(2, 8)剛好是2?>82->82?>8的最短路。所以我們維護(hù)的東西就簡單了。

再看一種情況,求1, 8之間,顯然有pre[1]<pre[8],lca(1,8)=1=minid(pre[x],pre[y])pre[1] < pre[8], lca(1, 8) = 1 = min_{id}(pre[x], pre[y])pre[1]<pre[8],lca(1,8)=1=minid?(pre[x],pre[y]),所以選定區(qū)間pre[1],pre[8]pre[1], pre[8]pre[1],pre[8]即{1, 4, 8}得到了1?>81 -> 81?>8的最短路。所以我們只需要特判lcalcalca就行了。

Coding

/*Author : lifehappy */ #pragma GCC optimize(2) #pragma GCC optimize(3) #include <bits/stdc++.h> #define mp make_pair #define pb push_backusing namespace std;typedef long long ll; typedef unsigned long long ull; typedef pair<int, int> pii;const double pi = acos(-1.0); const double eps = 1e-7; const int inf = 0x3f3f3f3f;inline ll read() {ll f = 1, x = 0;char c = getchar();while(c < '0' || c > '9') {if(c == '-') f = -1;c = getchar();}while(c >= '0' && c <= '9') {x = (x << 1) + (x << 3) + (c ^ 48);c = getchar();}return f * x; }void print(ll x) {if(x < 10) {putchar(x + 48);return ;}print(x / 10);putchar(x % 10 + 48); }const int N = 1e5 + 10;int a[N], b[N], id[N], ans[N], num[N], n, m, block, sum; int fa[N], son[N], sz[N], dep[N], top[N], pre[N], suc[N], pos[N], tot; int head[N], to[N], nex[N], cnt = 1; bool flag[N];struct Node {int l, r, id, lca;bool operator < (const Node & t) const {return (l / block) != (t.l / block) ? l < t.l : (l / block) & 1 ? r < t.r : r > t.r;} }ask[N];void add(int x, int y) {to[cnt] = y;nex[cnt] = head[x];head[x] = cnt++; }void dfs1(int rt, int f) {pre[rt] = ++tot;pos[tot] = rt;sz[rt] = 1, fa[rt] = f;dep[rt] = dep[f] + 1;for(int i = head[rt]; i; i = nex[i]) {if(to[i] == f) continue;dfs1(to[i], rt);if(!son[rt] || sz[to[i]] > sz[son[rt]])son[rt] = to[i];sz[rt] += sz[to[i]];}suc[rt] = ++tot;pos[tot] = rt; }void dfs2(int rt, int tp) {top[rt] = tp;if(!son[rt]) return ;dfs2(son[rt], tp);for(int i = head[rt]; i; i = nex[i]) {if(to[i] == fa[rt] || to[i] == son[rt]) continue;dfs2(to[i], to[i]);} }int lca(int x, int y) {while(top[x] != top[y]) {if(dep[top[x]] < dep[top[y]]) swap(x, y);x = fa[top[x]];}return dep[x] < dep[y] ? x : y; }void add(int x) {sum += (++num[a[x]] == 1); }void del(int x) {sum -= (--num[a[x]] == 0); }void calc(int x) {if(!flag[x]) add(x);else del(x);flag[x] ^= 1; }int main() {// freopen("in.txt", "r", stdin);// freopen("out.txt", "w", stdout);// ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);n = read(), m =read(), block = sqrt(2 * n);for(int i = 1; i <= n; i++) a[i] = b[i] = read();sort(b + 1, b + 1 + n);int all = unique(b + 1, b + 1 + n) - (b + 1);for(int i = 1; i <= n; i++) a[i] = lower_bound(b + 1, b + 1 + all, a[i]) - b;for(int i = 1; i < n; i++) {int x = read(), y = read();add(x, y);add(y, x);}dfs1(1, 0);dfs2(1, 1);for(int i = 1; i <= m; i++) {int x = read(), y = read();if(pre[x] > pre[y]) swap(x, y);ask[i].id = i, ask[i].lca = lca(x, y);if(ask[i].lca == x) {ask[i].l = pre[x];ask[i].r = pre[y];ask[i].lca = 0;}else {ask[i].l = suc[x];ask[i].r = pre[y];}}sort(ask + 1, ask + 1 + m);int l = 1, r = 0;for(int i = 1; i <= m; i++) {while(r > ask[i].r) calc(pos[r--]);while(r < ask[i].r) calc(pos[++r]);while(l > ask[i].l) calc(pos[--l]);while(l < ask[i].l) calc(pos[l++]);//lca不在區(qū)間里,所以add后需要馬上del。if(ask[i].lca) calc(pos[pre[ask[i].lca]]);ans[ask[i].id] = sum;if(ask[i].lca) calc(pos[pre[ask[i].lca]]);}for(int i = 1; i <= m; i++) print(ans[i]), putchar('\n');return 0; } 創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的莫队——三种题型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

欧美超碰在线 | 色偷偷88888欧美精品久久久 | 91在线免费播放视频 | 久久国产精品久久精品国产演员表 | 久久这里只有精品首页 | 黄色资源在线观看 | 精品久久五月天 | 人人爽久久久噜噜噜电影 | 激情电影影院 | 精品免费久久久久久 | 精品久久久久久久久亚洲 | 91网免费观看 | 日韩av电影一区 | 99在线看| 国产经典av| 五月婷婷操 | 日韩一区二区三区免费视频 | 免费a级黄色毛片 | 久久在线一区 | 最新高清无码专区 | 精品国产黄色片 | 国产精品国产三级国产不产一地 | 免费福利视频网 | 婷婷色综合 | 91亚州| 蜜臀av免费一区二区三区 | 国产精品免费在线播放 | 国产精品成人一区 | 欧美日韩免费观看一区=区三区 | 国产精品99久久久精品免费观看 | 中文字幕在线免费播放 | 国产99久久精品 | 久久国产一二区 | 久久精品4| 69久久久久久久 | 91av视频网 | 国产网红在线观看 | 成人精品久久 | 成人在线免费观看视视频 | 久久精品2| 粉嫩av一区二区三区四区五区 | 97超碰人人澡人人爱学生 | 久久久久久久久久久久99 | 在线婷婷 | 精品免费久久久久 | 99夜色| www狠狠操 | 国产一级一片免费播放放 | 亚洲aaa级| 欧美日韩三级在线观看 | 91中文字幕在线观看 | 久久精品一级片 | 日韩特级黄色片 | 国产一区视频在线播放 | 亚洲理论在线观看电影 | 在线天堂8√ | 欧美日韩高清一区二区三区 | 日韩高清精品免费观看 | 精品在线观 | 婷婷视频在线观看 | 婷婷成人在线 | 91精品国产欧美一区二区成人 | 国产精品美女网站 | 六月天综合网 | 亚洲乱码久久 | 国产亚洲精品久久久久久久久久久久 | 国产丝袜在线 | 国产中文字幕三区 | 在线观看国产日韩欧美 | 手机在线看永久av片免费 | 尤物97国产精品久久精品国产 | 亚洲视频一区二区三区在线观看 | 国产在线一区二区 | 久久综合五月天婷婷伊人 | 成年人免费在线观看网站 | 亚洲精品国产综合99久久夜夜嗨 | 人人舔人人射 | 亚洲精品乱码久久久久久写真 | 免费福利片2019潦草影视午夜 | 国产精品2020| 日韩大片在线免费观看 | 在线观看免费黄色 | 亚州欧美视频 | 丁香综合av| 亚洲经典视频 | 四虎影视欧美 | 97视频免费在线观看 | 96看片| 日韩精品一区二区三区高清免费 | 99国产情侣在线播放 | 日韩免 | 久久久久久久国产精品影院 | 一区二区视频在线看 | 一区二区三区中文字幕在线观看 | 2022中文字幕在线观看 | 成人毛片一区 | 亚洲欧美日韩一区二区三区在线观看 | 国产精品国产亚洲精品看不卡 | 国产最新91 | 亚洲国产精品传媒在线观看 | 日韩成人在线一区二区 | 免费日韩av电影 | 在线国产一区二区 | 深夜国产福利 | 国色天香永久免费 | 国产精品美女久久久久久网站 | 国产成人精品一区二区在线观看 | 精品在线观看一区二区 | 亚洲精品国产精品99久久 | 日韩在线视频观看 | 91在线免费播放视频 | 亚州欧美视频 | 亚洲激情小视频 | 久久午夜电影 | 亚洲草视频| 国产午夜精品一区二区三区在线观看 | 久久久久激情视频 | 色网站国产精品 | 免费看久久久 | 久草免费在线视频观看 | 日本中文字幕免费观看 | 成人av一区二区三区 | 久久免费在线观看视频 | 亚洲精品久久久久久久蜜桃 | 日韩免费高清在线 | 日韩色综合 | 91av电影在线 | 久久久国产精品网站 | a级免费观看 | 男女视频久久久 | 在线观看a视频 | 国产精品黄网站在线观看 | 青青射| 国产精品自产拍在线观看桃花 | 成人黄色电影免费观看 | 国产一区二区三区免费在线观看 | 欧美日韩一区二区三区免费视频 | 天天插夜夜操 | 久草网站 | 中文字幕在线观看第一区 | 日韩高清一区在线 | 国产精品综合久久久久 | 99电影456麻豆 | 久久精品一二三区白丝高潮 | 日韩成人中文字幕 | 91毛片视频 | 最新中文在线视频 | 国产视频2区| 欧美一级片在线 | 国产在线视频一区二区三区 | www.伊人色.com | 成人va天堂 | 亚洲高清在线精品 | 99久久久国产精品免费观看 | 色综合天天天天做夜夜夜夜做 | 亚洲精品国产精品国 | 婷婷在线网站 | 丁香五月缴情综合网 | 草久草久 | 五月天色综合 | 国产成人黄色 | 日韩免费成人 | 成人久久18免费网站麻豆 | 久草青青在线观看 | 2018好看的中文在线观看 | 免费高清在线观看成人 | 国产精品无av码在线观看 | 91成熟丰满女人少妇 | 国产午夜麻豆影院在线观看 | 欧美日本三级 | 天天曰天天射 | 久久精品国产免费看久久精品 | 91成人国产| 在线免费色视频 | 亚洲资源在线 | 久久久麻豆视频 | 97日日| 国产精品黄色影片导航在线观看 | 丁香婷婷综合五月 | 久久久久久久看片 | 久久久久久久免费 | 国产亚洲在线观看 | 毛片在线播放网址 | 成人午夜网址 | 国产一级视屏 | 国产一级做a爱片久久毛片a | 久久视频在线视频 | 国产免费小视频 | 中文字幕免费观看 | 国产免费片 | 97精品超碰一区二区三区 | 麻豆视传媒官网免费观看 | 91成人精品视频 | 521色香蕉网站在线观看 | 一区二区精品在线视频 | 中文字幕在线观看一区二区三区 | 日韩大片在线看 | 黄色毛片视频免费观看中文 | www99久久 | 婷婷久久婷婷 | 久久精品一区二区三区国产主播 | 婷婷丁香六月天 | 91夫妻视频| 亚洲精品国产成人av在线 | 天天干天天做天天操 | 免费亚洲精品视频 | 最新中文字幕在线播放 | 久久久免费在线观看 | 国产精品永久免费观看 | 中文字幕丝袜一区二区 | 国内视频在线 | 天天射射天天 | 亚洲国产午夜视频 | 欧美日韩精品在线一区二区 | 久久夜色网 | 国产精品久久久久久久久久久不卡 | 色香com. | 日韩久久久久久久 | 久久免费视频7 | 日本精品中文字幕在线观看 | 国产va饥渴难耐女保洁员在线观看 | 国产精品久久久久永久免费观看 | 国产精品video爽爽爽爽 | 久久99热这里只有精品 | www在线观看国产 | 97视频免费在线观看 | 毛片网站免费在线观看 | 青青河边草免费观看完整版高清 | 久久综合网色—综合色88 | 女女av在线| 国产永久免费观看 | 韩国精品视频在线观看 | 成人永久视频 | 国产专区视频在线观看 | 日韩网站一区 | av在线等 | 亚洲午夜久久久久久久久电影网 | 久久这里精品视频 | 一级黄色在线视频 | 日韩有色 | 亚洲成人国产精品 | 不卡国产视频 | 国产精品一区二区在线 | 人人看人人艹 | 在线观看视频黄 | 91丨九色丨国产丨porny精品 | 日韩视频免费在线观看 | 99久久精品国产一区二区三区 | 久久欧美精品 | 日韩激情小视频 | 欧美va天堂va视频va在线 | 欧美乱熟臀69xxxxxx | av资源免费在线观看 | 夜夜操天天干, | 一区二区三区在线免费 | av片在线观看免费 | 精品国自产在线观看 | 久久只有精品 | 日韩av网站在线播放 | 伊人中文在线 | 国产精品久久久久毛片大屁完整版 | 免费看日韩 | 成年人在线播放视频 | 81国产精品久久久久久久久久 | 人人艹人人 | 久久99热久久99精品 | 日韩精品亚洲专区在线观看 | 西西大胆啪啪 | 国产精品1024 | 中文字幕二区在线观看 | 色停停五月天 | 91亚洲精品久久久蜜桃网站 | 欧美一级在线观看视频 | av超碰在线观看 | 91九色在线视频观看 | 最近的中文字幕大全免费版 | 成人a免费 | 亚洲精品综合一二三区在线观看 | 狠狠干夜夜爱 | 中文字幕专区高清在线观看 | 99久久精品久久久久久清纯 | 99视频在线免费看 | 五月香视频在线观看 | 欧美a级在线免费观看 | 国产日韩欧美自拍 | 激情久久五月天 | 9999在线视频| 一区二区激情 | 久久热亚洲 | a级片在线播放 | 国产成人精品福利 | 日韩精品不卡在线 | 97超碰资源站 | 丁香午夜| 狠狠操天天干 | 亚洲精品一区二区三区四区高清 | 亚洲精品动漫久久久久 | 韩国精品视频在线观看 | 久久国产精品99久久人人澡 | 亚洲最新av网址 | 免费特级黄色片 | 色天天中文 | 天天摸天天干天天操天天射 | 国产精品久久久久久久久免费 | av福利网址导航 | 在线看片日韩 | 在线精品视频免费观看 | 香蕉影院在线 | 欧美性高跟鞋xxxxhd | 91福利在线导航 | 日韩大陆欧美高清视频区 | 99成人在线视频 | 亚洲精选视频免费看 | 亚洲另类在线视频 | av在线电影网站 | 日本性xxx | 久久久www成人免费毛片 | 国产精品视频内 | 久久av影视 | 深爱激情五月网 | 在线免费中文字幕 | 人人澡人 | 婷婷综合导航 | 亚洲综合最新在线 | 国产精品久久一区二区无卡 | 在线免费看黄色 | 亚洲综合精品视频 | 欧美色综合天天久久综合精品 | 九九免费视频 | 日韩精品在线一区 | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 婷婷国产在线 | 欧美精品久久99 | 99爱爱| 狠狠干激情 | 欧美激情第十页 | 中文字幕av专区 | 国产伦精品一区二区三区… | 粉嫩一二三区 | 亚洲国产成人在线观看 | 黄色一级在线视频 | 久久爱资源网 | 亚洲闷骚少妇在线观看网站 | 国产九九九视频 | 中文字幕一区二区三区视频 | www.亚洲视频.com | 亚洲视频456| 99热网站| 国产精品久久久久久久久久东京 | 成人久久18免费网站麻豆 | 中文字幕在线网址 | 国产精品日韩欧美 | 久久久国产99久久国产一 | 精品日韩视频 | 97超碰国产在线 | 亚洲精品毛片一级91精品 | 99精品免费久久久久久久久日本 | 久久九九免费视频 | 最近最新最好看中文视频 | 激情综合网五月婷婷 | 国产亚洲精品久久久久动 | 日韩色视频在线观看 | 久久成人精品电影 | 少妇搡bbb | 亚洲日本韩国一区二区 | 国内小视频在线观看 | 国产中文字幕在线看 | 天天天射 | 久草免费在线观看视频 | 亚洲永久国产精品 | 久久调教视频 | 免费高清在线观看成人 | 深夜免费网站 | 在线a视频| 亚洲老妇xxxxxx| 五月天av在线 | 一区二区三区四区五区在线 | 欧美色图亚洲图片 | 欧美精品在线一区 | 超碰最新网址 | 欧美精品中文 | 日韩欧美一区二区不卡 | 欧美激情视频三区 | 在线 影视 一区 | 久久激五月天综合精品 | 亚洲电影院 | 精品毛片一区二区免费看 | 免费 在线 中文 日本 | 91九色免费视频 | 狠狠狠狠狠狠狠 | 日本韩国在线不卡 | 黄色国产大片 | 99精品电影 | 99久久久久免费精品国产 | 高清中文字幕 | 夜夜夜夜猛噜噜噜噜噜初音未来 | 人人爽人人舔 | av免费在线网站 | 国内精品久久久久影院男同志 | 国产黄影院色大全免费 | www色 | 免费久久精品视频 | 色婷婷中文 | 激情欧美在线观看 | 在线免费91 | 手机av在线不卡 | 欧美在线视频一区二区三区 | 免费看国产曰批40分钟 | 亚洲成人av免费 | 综合久久精品 | 97视频在线观看免费 | 丁香午夜婷婷 | 一区二区三区在线不卡 | 超碰免费公开 | 国产精品6999成人免费视频 | 日韩av专区 | 中文字幕一区二区三区在线视频 | 特级大胆西西4444www | 亚洲理论电影 | 麻豆国产网站 | 波多野结衣在线播放一区 | 狠狠干狠狠插 | 波多野结衣一区二区三区中文字幕 | 久久精品视频一 | 91精品国产自产在线观看 | 日韩欧美精品在线视频 | 奇米网网址 | 中文字幕在线字幕中文 | 91最新网址 | 国产精品乱码久久 | 中文字幕免费高清 | 在线观看韩国av | 91av九色 | 日韩精选在线 | 97视频在线观看播放 | 日韩亚洲欧美中文字幕 | 97干com| 黄污视频网站 | 日本乱码在线 | 日本久久片 | 五月天亚洲激情 | 91av在线免费播放 | 97精品欧美91久久久久久 | 国产成人精品一区二区在线观看 | 欧美精品久久久久久久免费 | 伊人亚洲综合网 | 亚洲天堂精品视频在线观看 | 免费三级网| 一区在线播放 | 欧美日性视频 | 亚洲最新av在线网址 | 国产一区二区在线免费播放 | 免费中文字幕 | 麻豆视频免费观看 | 久久精美视频 | 日韩久久久久久久 | 91av视频免费在线观看 | 69av在线播放| 久久国产欧美日韩精品 | 成人免费视频网站在线观看 | 亚洲电影免费 | 美女久久久久久久 | 亚洲成人中文在线 | 亚洲成人午夜在线 | 九色福利视频 | 国产成人无码AⅤ片在线观 日韩av不卡在线 | 日本精品久久久久影院 | 日韩久久一区二区 | 国产小视频福利在线 | 久久精品国产精品亚洲精品 | 国产99黄 | 综合色站 | 久久蜜臀一区二区三区av | 久久久久人人 | 国产高清在线 | 国产91在线免费视频 | 亚洲mv大片欧洲mv大片免费 | 色婷婷伊人| a√天堂中文在线 | 狠狠狠狠干| 亚洲四虎在线 | 美女网站视频免费黄 | 日产av在线播放 | 久久久精品视频网站 | 日韩av在线看 | 91男人影院 | 999久久久欧美日韩黑人 | 国产精品不卡在线观看 | 伊人官网| 一级精品视频在线观看宜春院 | 在线观看你懂的网址 | 99国产视频在线 | 黄网站色视频免费观看 | 免费中文字幕 | av看片在线 | 久久精品视频3 | 国产精品福利在线观看 | 久久免费99精品久久久久久 | 在线亚洲成人 | 一二三精品视频 | 免费热情视频 | 亚洲国产资源 | 国产区在线视频 | 亚洲精品国内 | 九九视频免费在线观看 | 久久久久国产精品免费网站 | 国产免费亚洲高清 | 91亚洲精品久久久蜜桃 | 亚洲精品视频在线观看免费视频 | 日韩高清一区在线 | 成人三级网站在线观看 | 精品国产一二三 | 麻豆精品国产传媒 | 美女网站在线观看 | 91在线一区二区 | 亚洲色图美腿丝袜 | 偷拍区另类综合在线 | 中文字幕在线观看1 | 丁香五香天综合情 | 久久免视频 | www.香蕉视频在线观看 | 日本精品视频免费 | 色多多在线观看 | 蜜臀aⅴ精品一区二区三区 久久视屏网 | 九九久久久久久久久激情 | 国产精品短视频 | 久久精品99国产精品酒店日本 | 久久色在线播放 | 久草在线视频网 | 亚洲成人影音 | 精品亚洲视频在线观看 | 国产成人a亚洲精品 | 在线观看91久久久久久 | 久久综合之合合综合久久 | 国产精品久久久久999 | 亚洲精品91天天久久人人 | 在线成人中文字幕 | 国产精品久久久久久麻豆一区 | 天天干天天草天天爽 | 黄色精品久久 | 亚洲成人av在线电影 | 免费视频一二三区 | 五月激情六月丁香 | 97精品国产97久久久久久免费 | 91麻豆产精品久久久久久 | 色视频在线免费观看 | 欧美91成人网 | 欧美国产不卡 | 成年人电影免费在线观看 | 91在线视频免费播放 | 天天草夜夜 | 91完整版在线观看 | 日韩在线免费电影 | 夜色资源网 | 日本高清中文字幕有码在线 | 久久美女免费视频 | 天天综合久久 | 91精品国产高清自在线观看 | 日韩在线高清视频 | 91人人爽人人爽人人精88v | 国内小视频在线观看 | 亚洲理论片在线观看 | 一二三四精品 | 精品久久久久久亚洲综合网站 | 91精品老司机久久一区啪 | 久久高视频 | 天天爽天天爽 | 亚洲精品黄色在线观看 | 久久久久久久网站 | 中文字幕免费在线 | 亚洲成a人片在线www | 亚洲精品国精品久久99热一 | 国产一级淫片在线观看 | 成人久久久精品国产乱码一区二区 | 久久免费在线视频 | 天天躁天天操 | 亚洲成人资源 | 午夜av在线播放 | 日韩电影中文字幕在线观看 | 天天射天天 | 精品一区二区三区久久久 | 欧美成人区 | 中文字幕资源在线观看 | 超碰在线97国产 | 蜜桃视频成人在线观看 | 国产丝袜在线 | 免费福利视频导航 | 中文永久字幕 | 国产精品久久久久永久免费观看 | 国产在线日韩 | av大全免费在线观看 | 黄色一级免费 | 在线导航福利 | 欧美国产大片 | 人人干人人草 | 伊人欧美| 丁香综合网 | 国产精品videoxxxx | 天天干,天天草 | 97视频免费在线看 | 国产美女网 | 欧美成人手机版 | 国产一区在线免费观看 | 亚洲免费观看视频 | 国产精品久久久久久久久久三级 | 亚洲无吗av | av免费在线播放 | 国产高清在线观看 | 又黄又爽又湿又无遮挡的在线视频 | 91在线国内视频 | 日韩电影一区二区三区 | 国产一区成人在线 | 91高清在线看 | 天天操狠狠操网站 | 亚洲高清在线精品 | 久久99偷拍视频 | 亚洲天堂自拍视频 | 五月天视频网站 | 亚洲激情在线观看 | 成人高清在线观看 | 国产精品九九九九九九 | 日韩黄色中文字幕 | av在线播放国产 | a在线一区 | 在线观看v片 | 久久精品视频观看 | 久久国产精品99国产 | 国产亚洲精品久 | 97视频播放 | 免费a现在观看 | 国产一区视频免费在线观看 | 国产亚洲欧美在线视频 | 在线视频app | 日本中出在线观看 | 久久视频在线观看免费 | 青春草国产视频 | 免费av网站在线 | 久久久久久久久影院 | 久久99亚洲精品 | 日韩午夜剧场 | 在线成人短视频 | 97精品国产一二三产区 | 成 人 黄 色 视频免费播放 | 国产999精品久久久久久麻豆 | 人人爱人人做人人爽 | 久久综合欧美 | 蜜臀av性久久久久蜜臀av | 欧美日韩免费在线视频 | 久久国产精品影视 | 9999国产| 精品久久久久久久久久久久久久久久久久 | 少妇性色午夜淫片aaaze | 日韩一区精品 | 精品一区二区免费视频 | 精品一区二区精品 | 国产主播大尺度精品福利免费 | 又爽又黄又无遮挡网站动态图 | 天天色天 | 欧美成天堂网地址 | 国产在线高清精品 | 色婷婷视频在线 | 一区二区视频在线看 | 久久8精品| 91喷水| 国内精品久久久久 | 99久久激情 | 亚洲精品456在线播放 | 久精品视频免费观看2 | 国产精品美女久久久久久 | 日韩不卡高清 | 91在线成人 | 日韩在线观看av | 亚洲自拍自偷 | 欧美一级视频免费 | 日韩成人精品 | 丁香六月婷婷激情 | 亚洲成年片 | 成人av av在线 | 激情网色 | 国产精品一区二区无线 | 亚洲最大成人免费网站 | 欧美激情精品久久久久久变态 | 香蕉视频在线视频 | 久久开心激情 | 国模精品在线 | 激情久久影院 | 亚洲高清免费在线 | 三级动态视频在线观看 | 亚洲黄色在线免费观看 | 国产亚洲一区 | 久久精品一区二区三 | 亚州视频在线 | 亚洲片在线 | 欧美亚洲精品一区 | 国产亚洲资源 | 日韩在线免费电影 | 一区二区三区日韩视频在线观看 | 五月婷婷在线视频 | 国产视频2 | 在线观看精品黄av片免费 | 欧美 日韩 成人 | 亚洲一区视频在线播放 | 天堂在线一区二区三区 | 五月天精品视频 | 国产精品午夜久久 | 免费看污黄网站 | 久久国产精品视频 | 免费精品国产va自在自线 | 亚州国产视频 | 九九爱免费视频 | a视频在线播放 | 天天躁日日躁狠狠躁av麻豆 | 国内精品国产三级国产aⅴ久 | 久久久免费 | 天天天天天天操 | 国产字幕av | 五月婷婷综合在线视频 | av在线播放观看 | 一本色道久久综合亚洲二区三区 | 中文字幕在线观看不卡 | 日韩精品在线观看av | 国产中文字幕网 | 热久在线| 久久人人97超碰com | 精品一区二区电影 | 国产粉嫩在线 | 在线观看成人 | 免费网站在线观看成人 | 婷婷激情影院 | 国产精品久久久网站 | 国产精品一区久久久久 | 99视频精品在线 | 中文字幕在线观看国产 | 在线高清av | 日日夜av| 成人在线观看资源 | 九九九热精品免费视频观看 | 色成人亚洲 | 手机av在线免费观看 | 蜜桃视频成人在线观看 | 麻豆av一区二区三区在线观看 | 国产成人精品免费在线观看 | japanesexxxhd奶水 国产一区二区在线免费观看 | 成人免费xxx在线观看 | 制服丝袜天堂 | 久久伦理电影 | 一区二区精品在线 | 欧美激情操 | 国产日韩欧美自拍 | 最近中文字幕在线播放 | 亚洲精品视频在线免费播放 | 超碰人人射 | 久久精品国产一区二区三 | 美女网站一区 | 一区二区三区手机在线观看 | 欧美日韩观看 | 婷婷视频在线播放 | 亚洲有 在线 | 国产录像在线观看 | 欧美精品在线一区二区 | 免费黄色一区 | 欧美色图亚洲图片 | 欧美一区二区三区在线观看 | 色.www| 亚洲视频播放 | 久久久亚洲精品 | 中文字幕中文字幕在线一区 | 久久精品老司机 | a精品视频| 国产免费视频一区二区裸体 | 精品在线视频一区二区三区 | 免费在线观看av网站 | 国产精品久久久久av | 久草香蕉在线视频 | 涩涩资源网 | 最新免费av在线 | 超碰人人超 | 九七人人干 | 亚洲高清在线观看视频 | av丁香| 精品国产aⅴ一区二区三区 在线直播av | 99在线播放| 三级免费黄 | av日韩在线网站 | zzijzzij日本成熟少妇 | 97成人资源 | 日韩毛片久久久 | 韩日精品中文字幕 | 精品国产免费一区二区三区五区 | 天天射天天射 | 欧美一区成人 | 久久婷婷亚洲 | 黄色三级在线 | 久久久久影视 | 狠狠地操| 97超碰影视 | 国产高清不卡av | 米奇狠狠狠888 | 国产精品免费观看久久 | 国产韩国日本高清视频 | av成人在线观看 | 日韩黄色免费电影 | 天堂激情网 | 91九色视频观看 | 亚洲午夜久久久久 | 久久艹中文字幕 | 久草精品在线观看 | 黄色国产精品 | 亚洲欧美日韩在线一区二区 | 日本中文字幕视频 | 久草在线免费色站 | 国产精品你懂的在线观看 | 欧美视频网址 | 亚洲一级免费电影 | 在线日本看片免费人成视久网 | 91网址在线观看 | 久久精品在线视频 | 蜜臀av一区二区 | 97色噜噜 | 西西444www高清大胆 | 成人久久18免费 | 国产高清视频在线 | 天堂av高清| 深爱综合网 | 日韩一区二区久久 | 精品国产aⅴ一区二区三区 在线直播av | 国产在线探花 | 高清不卡免费视频 | 久久免费电影 | 六月丁香久久 | 天堂av在线| 国产色秀视频 | 一区二区三区国 | 韩国av一区二区三区在线观看 | 97日日 | 国产毛片久久久 | 国产精品自产拍在线观看蜜 | 欧美日本不卡 | 97精品在线| 日韩精品不卡在线 | 久久国产精品视频观看 | 99国产免费网址 | www.黄色片网站 | 国产成人久久精品亚洲 | 中文字幕亚洲国产 | 美腿丝袜一区二区三区 | 91精品视屏 | 中文网丁香综合网 | 五月婷婷欧美视频 | 久久免费试看 | 欧美精品国产综合久久 | 国产精选在线 | 亚洲视频 在线观看 | a视频在线| 中文字幕乱码电影 | 日本三级吹潮在线 | 国产亚洲一区二区三区 | 亚洲国产精品99久久久久久久久 | 日韩在线首页 | 欧美在线一 | 日韩在线大片 | 99九九免费视频 | 久久国产视屏 | 精品久久久久久久久久久久 | 亚洲视频 一区 | 九色最新网址 | 精品一区二区在线免费观看 | 亚洲成人av片在线观看 | av三级av| 亚洲va在线va天堂va偷拍 | 国产中文字幕一区二区 | 免费午夜网站 | 少妇精品久久久一区二区免费 | 福利在线看片 | 国产色爽 | 99操视频| 激情五月av | 久久综合九色99 | 一级一片免费视频 | 天天操夜 | 在线电影 一区 | 99热国产精品 | 亚洲成av人片在线观看无 | 日韩,精品电影 | 午夜久久久久久久久久影院 | 精品国产区 | 青草视频免费观看 | 成人在线观看免费视频 | 日日夜夜91 | 国产欧美中文字幕 | 超碰人人干人人 | 91丨九色丨丝袜 | 日韩三级视频在线看 | 99在线视频播放 | 欧美视频国产视频 | 韩国av免费看| 国产色爽 | 国产黄影院色大全免费 | 久久精品一区二区三区国产主播 | 99 色 | 99国产精品免费网站 | 日韩一区二区三区在线观看 | 色综合久久天天 | 黄色字幕网| 亚洲精品视频在线免费 | 欧美一区二区三区免费观看 | 在线观看精品黄av片免费 | 97在线观看免费视频 | 国产成人综合图片 | 亚洲专区中文字幕 | 麻豆国产视频下载 | 国产午夜三级一区二区三桃花影视 | 婷婷午夜天 | 毛片基地黄久久久久久天堂 | 国产成人三级 | 国产精品一区二区三区视频免费 | 久久黄页 | 亚洲精品视频在线观看视频 | 又黄又刺激视频 | www久久国产 | 91精品爽啪蜜夜国产在线播放 | 91综合色| 久草在线手机观看 | 日韩av高清 | 欧美成人影音 | 成人福利av| 亚洲成a人片77777kkkk1在线观看 | 国产精品一区二区三区观看 | 丝袜护士aⅴ在线白丝护士 天天综合精品 | 美女很黄免费网站 | 爱情影院aqdy鲁丝片二区 | 在线免费视频a | 久久国产系列 | 免费毛片aaaaaa | 一级黄色毛片 | 精品国产黄色片 | 91香蕉视频污在线 | www.av在线播放| 亚洲欧美日本一区二区三区 | 中文字幕第一页在线vr | 亚洲一区久久久 | www.888av | 中文在线免费一区三区 | 国产精品99精品久久免费 | 中文字幕视频播放 | 日本精品一区二区 | 亚洲成av人片 | 久久网站免费 | 午夜久久福利视频 | 伊人狠狠色丁香婷婷综合 | 麻豆视传媒官网免费观看 | 日韩a欧美 | 黄色小说18 | 天天人人综合 | 99视频在线精品国自产拍免费观看 | 久久久久久久久久久综合 | 青青久草在线视频 | 国产色网| 99视频在线观看视频 | 国产一区二区手机在线观看 | av电影免费在线播放 | 久久久亚洲成人 | 亚洲人成免费网站 | a爱爱视频 | 精品国产成人av在线免 | 91久久精品一区二区三区 | 久久综合九色综合欧美就去吻 | 色婷婷狠狠五月综合天色拍 | 久久福利剧场 | 天天色图 | 国产亚洲精品福利 | 亚洲天堂视频在线 | 99久久国产免费,99久久国产免费大片 | 视频一区二区视频 | 在线观看免费福利 | 视频在线观看国产 | 91视频久久久 | 四虎国产精品免费 | 欧美一级激情 | 女人18精品一区二区三区 | 五月天婷婷在线视频 | 综合精品在线 | 日韩电影一区二区三区在线观看 | 一区二区视频电影在线观看 | 欧美一级黄色片 | 免费试看一区 | 亚洲视频久久久 | 99热这里只有精品1 av中文字幕日韩 | 懂色av一区二区三区蜜臀 | 久久久91精品国产一区二区三区 | 精品久久久久久久久久久院品网 | 日韩高清毛片 | 成人蜜桃| 国产日产亚洲精华av | 国产精品2区 | 日韩欧美高清 | 日韩网站免费观看 | 国产高清精品在线 |