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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

HAOI2017 简要题解

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

「HAOI2017」新型城市化

題意

有一個 \(n\) 個點的無向圖,其中只有 \(m\) 對點之間沒有連邊,保證這張圖可以被分為至多兩個團。

對于 \(m\) 對未連邊的點對,判斷有哪些點對滿足將他們連邊后最大團的大小增加。

\(n \le 10^4 , m \le 1.5 × 10^5\)

題解

腦洞圖論題我真的一道都不會。

考慮原圖的話,有 \(n^2\) 條邊,顯然是不行的??梢钥紤]補圖,那么只有它給出的 \(m\) 條邊,那么這個圖一定是個二分圖。

因為題目保證了原圖可以被至多兩個團覆蓋,也就是意味著剩下的 \(m\) 條邊兩個端點各屬于兩個團中的一個。

原圖上的最大團 \(=\) 反圖上的最大獨立集 \(=\) 二分圖的最大獨立集 \(=\) 點數減去最大匹配數。

那么題目就是問去掉哪些邊后最大匹配數減少,也就是哪些邊一定在二分圖最大匹配上。這題中 \(n, m\) 較大,需要用 \(Dinic\) 算二分圖匹配。接下來就只需要判斷哪些邊在最大匹配上啦。

顯然它們一定要滿流,其次邊上的兩個點在殘量網絡上不能在同一個強連通分量中。

因為如果他們在同一個環中,就可以將環上未匹配的邊設為匹配邊,匹配邊設為未匹配邊,最大匹配顯然不變。

最后復雜度是 \(\mathcal O(m \sqrt n)\) 的,瓶頸在網絡流上。

代碼

注意一開始給的是無向邊,不能直接二分圖上連邊,先二分圖染色后,左邊向右邊連邊。

#include <bits/stdc++.h>#define For(i, l, r) for (register int i = (l), i##end = (int)(r); i <= i##end; ++i) #define Fordown(i, r, l) for (register int i = (r), i##end = (int)(l); i >= i##end; --i) #define Rep(i, r) for (register int i = (0), i##end = (int)(r); i < i##end; ++i) #define Set(a, v) memset(a, v, sizeof(a)) #define Cpy(a, b) memcpy(a, b, sizeof(a)) #define debug(x) cout << #x << ": " << (x) << endlusing namespace std;template<typename T> inline bool chkmin(T &a, T b) { return b < a ? a = b, 1 : 0; } template<typename T> inline bool chkmax(T &a, T b) { return b > a ? a = b, 1 : 0; }inline int read() {int x(0), sgn(1); char ch(getchar());for (; !isdigit(ch); ch = getchar()) if (ch == '-') sgn = -1;for (; isdigit(ch); ch = getchar()) x = (x * 10) + (ch ^ 48);return x * sgn; }void File() { #ifdef zjp_shadowfreopen ("2276.in", "r", stdin);freopen ("2276.out", "w", stdout); #endif }const int N = 1e4 + 1e3, M = 1.5e5 + 1e3, inf = 0x3f3f3f3f;template<int Maxn, int Maxm> struct Dinic {int Head[Maxn], Next[Maxm], to[Maxm], cap[Maxm], e;Dinic() { e = 1; }inline void add_edge(int u, int v, int w) {to[++ e] = v; cap[e] = w; Next[e] = Head[u]; Head[u] = e;}inline void Add(int u, int v, int w) {add_edge(u, v, w); add_edge(v, u, 0);}int dis[Maxn], S, T;bool Bfs() {queue<int> Q;Set(dis, 0); dis[S] = 1; Q.push(S);while (!Q.empty()) {int u = Q.front(); Q.pop();for (int i = Head[u], v = to[i]; i; v = to[i = Next[i]])if (cap[i] && !dis[v]) dis[v] = dis[u] + 1, Q.push(v);}return dis[T];}int cur[Maxn];int Dfs(int u, int flow) {if (u == T || !flow) return flow;int res = 0, f;for (int &i = cur[u], v = to[i]; i; v = to[i = Next[i]]) if (dis[v] == dis[u] + 1 && (f = Dfs(v, min(flow, cap[i])))) {cap[i] -= f; cap[i ^ 1] += f; res += f;if (!(flow -= f)) break;}return res;}int Run() {int res = 0;while (Bfs())Cpy(cur, Head), res += Dfs(S, inf);return res;}};Dinic<N, M << 1> T;int n, m; vector<int> G[N]; map<int, bool> Map[N];void Build() {For (u, 1, T.T)for (int i = T.Head[u], v = T.to[i]; i; v = T.to[i = T.Next[i]]) if (T.cap[i]) G[u].push_back(v), Map[v][u] = true; }int lowlink[N], dfn[N], sccno[N], stk[N], top, scc_cnt;void Tarjan(int u) {static int clk = 0;lowlink[u] = dfn[stk[++ top] = u] = ++ clk;for (int v : G[u]) if (!dfn[v])Tarjan(v), chkmin(lowlink[u], lowlink[v]);else if (!sccno[v]) chkmin(lowlink[u], dfn[v]);if (lowlink[u] == dfn[u]) {++ scc_cnt; int cur;do sccno[cur = stk[top --]] = scc_cnt; while (cur != u);} }int u[M], v[M];vector<pair<int, int>> ans;vector<int> E[N];int col[N]; void Color(int u) {for (int v : E[u]) if (!col[v])col[v] = col[u] ^ 3, Color(v); }int main () {File();n = read(); m = read();T.T = (T.S = n + 1) + 1;For (i, 1, m) {u[i] = read(), v[i] = read(); E[u[i]].push_back(v[i]);E[v[i]].push_back(u[i]);}For (i, 1, n) if (!col[i]) col[i] = 1, Color(i);For (i, 1, n)if (col[i] == 1) T.Add(T.S, i, 1); else T.Add(i, T.T, 1);For (i, 1, m) {if (col[u[i]] == 2) swap(u[i], v[i]);T.Add(u[i], v[i], 1);}T.Run(); Build();For (i, 1, T.T) if (!dfn[i]) Tarjan(i);For (i, 1, m)if (sccno[u[i]] != sccno[v[i]] && Map[u[i]][v[i]]) {if (u[i] > v[i]) swap(u[i], v[i]); ans.emplace_back(u[i], v[i]);}sort(ans.begin(), ans.end());printf ("%d\n", int(ans.size()));for (auto it : ans)printf ("%d %d\n", it.first, it.second);return 0;}

「HAOI2017」方案數

題意

考慮定義非負整數間的 “$ \subseteq $” ,如果 $ a \subseteq b $,那么 $ a \land b = a $,其中 $ \land $ 表示二進制下的“與”操作。

考慮現在有一個無限大的空間,現在你在 \((0, 0, 0)\),有三種位移操作。

  • $ (x, y, z) \to (ax, y, z) $ 當且僅當 $ x \subseteq ax $;
  • $ (x, y, z) \to (x, ay, z) $ 當且僅當 $ y \subseteq ay $;
  • $ (x, y, z) \to (x, y, az) $ 當且僅當 $ z \subseteq az $。
  • \(o\) 個點不能經過了?,F在問你到某個點 \((n, m, r)\) 的方案數,答案對 \(998244353\) 取模。

    \(n, m, r \le 10^{18}, o \le 10^4\)

    題解

    首先考慮沒有障礙的時候怎么做,不難發現答案只與 \(n, m, r\) 二進制下 \(1\) 的個數有關。

    為什么呢?考慮操作的實質,其實就是個 \(x, y, z\) 中其中一個數在二進制下的一些 \(0\) 變成 \(1\) 。

    那么就令 \(g_{i, j, k}\) 為三維分別有 \(i, j, k\)\(1\) 的方案數,這部分是 \(O(\log^4 \max\{n, m, r\})\) 的。

    那么預處理這個后就比較好做了,此時變成一個經典容斥模型。

    \(f_i\) 為第一次碰到的關鍵點為 \(i\) 個點的方案數,那么直接做 \(\mathcal O(o^2)\) 容斥即可。

    這樣常數其實挺小的,可以跑過。但不知道有什么更高妙的做法 QAQ
    如果是啥高維偏序就沒啥意思了。。

    代碼

    #include <bits/stdc++.h>#define For(i, l, r) for (register int i = (l), i##end = (int)(r); i <= i##end; ++i) #define Fordown(i, r, l) for (register int i = (r), i##end = (int)(l); i >= i##end; --i) #define Rep(i, r) for (register int i = (0), i##end = (int)(r); i < i##end; ++i) #define Set(a, v) memset(a, v, sizeof(a)) #define Cpy(a, b) memcpy(a, b, sizeof(a)) #define debug(x) cout << #x << ": " << (x) << endl #define bit(x) __builtin_popcountll(x)using namespace std;using ll = long long;template<typename T> inline bool chkmin(T &a, T b) { return b < a ? a = b, 1 : 0; } template<typename T> inline bool chkmax(T &a, T b) { return b > a ? a = b, 1 : 0; }template<typename T = ll> inline ll read() {ll x(0), sgn(1); char ch(getchar());for (; !isdigit(ch); ch = getchar()) if (ch == '-') sgn = -1;for (; isdigit(ch); ch = getchar()) x = (x * 10) + (ch ^ 48);return x * sgn; }void File() { #ifdef zjp_shadowfreopen ("2277.in", "r", stdin);freopen ("2277.out", "w", stdout); #endif }const int N = 1e4 + 1e3, LN = 80, Mod = 998244353;ll n, m, r;struct Node {ll x, y, z; } P[N];struct Cmp {inline bool operator () (const Node &lhs, const Node &rhs) const {if (lhs.x != rhs.x) return lhs.x < rhs.x;if (lhs.y != rhs.y) return lhs.y < rhs.y;return lhs.z < rhs.z;} };int f[N], g[LN][LN][LN], comb[LN][LN];int main () {File();n = read(); m = read(); r = read();int lim = ceil(log2(max({n, m, r})) + 1);For (i, 0, lim) {comb[i][0] = 1;For (j, 1, i) comb[i][j] = (comb[i - 1][j] + comb[i - 1][j - 1]) % Mod;}g[0][0][0] = 1;For (x, 0, lim) For (y, 0, lim) For (z, 0, lim) {For (ax, 0, x - 1) g[x][y][z] = (g[x][y][z] + 1ll * g[ax][y][z] * comb[x][x - ax]) % Mod;For (ay, 0, y - 1) g[x][y][z] = (g[x][y][z] + 1ll * g[x][ay][z] * comb[y][y - ay]) % Mod;For (az, 0, z - 1)g[x][y][z] = (g[x][y][z] + 1ll * g[x][y][az] * comb[z][z - az]) % Mod;}int o = read<int>();For (i, 1, o) {ll x = read(), y = read(), z = read();P[i] = (Node) {x, y, z};}P[++ o] = (Node) {n, m, r};sort(P + 1, P + o + 1, Cmp());For (i, 1, o) {f[i] = g[bit(P[i].x)][bit(P[i].y)][bit(P[i].z)];For (j, 1, i - 1)if ((P[j].x & P[i].x) == P[j].x && (P[j].y & P[i].y) == P[j].y && (P[j].z & P[i].z) == P[j].z)f[i] = (f[i] - 1ll * f[j] * g[bit(P[i].x ^ P[j].x)][bit(P[i].y ^ P[j].y)][bit(P[i].z ^ P[j].z)]) % Mod;}f[o] = (f[o] + Mod) % Mod;printf ("%d\n", f[o]);return 0;}

    「HAOI2017」字符串

    題意

    給出一個字符串 $ s $ 和 $ n $ 個字符串 $ p_i $,求每個字符串 $ p_i $ 在 $ s $ 中出現的次數。注意這里兩個字符串相等的定義稍作改變。

    給定一個常數 $ k $,對于兩個字符串 $ a, b $,如果 $ a = b $,那么滿足:

  • $ |a| = |b| $;
  • 對于所有 $ a_i \neq b_i $ 以及 $ a_j \neq b_j $,滿足 $ |i-j| < k $。
  • 特別地,如果 $ |a| = |b| \le k $,那么認為 $ a = b $。

    $ |s|, \sum |p_i| \le 2 \cdot 10^5 $

    題解

    神仙題 QAQ 還是對字符串不太熟

    考慮把所有 \(p_i\) 的正串和反串一起建一個 \(AC\) 自動機。

    然后原串在上面跑,考慮一個自動機上一個節點 \(u\) 假設深度為 \(i\) ,如果他的下一位不匹配,那么我們只需要讓 \(i + k + 1\) 之后的都匹配就可以了。

    我們現在需要統計的就是對于這個節點 \(u\) 來說 \(s\) 有多少個位置 恰好 匹配了前 \(i\) 個位置,然后隔著 \(i + k + 1\) 后面都能匹配上。

    其實就是所有滿足 \(u\)\(fail\) 樹內 \(s\) 匹配到的位置 \(j\) 滿足 \(j + k + 1\)\(u\) 對應節點的字符串的反串的第 \(i + k + 1\) 位對應節點的 \(fail\) 樹內的個數(注意此處所有提到位置都以正串為準)。

    我們其實就是要統計這樣一個東西,把每個字符串詢問都掛在對應每一位的 \(AC\) 自動機上的節點。

    \(s\) 匹配的位置產生貢獻同樣掛到 \(AC\) 自動機上的節點上。

    然后顯然是可以用線段樹合并統計貢獻的,但是沒有必要。由于是加減,滿足差分,那么我們進子樹的時候減掉,出子樹的時候加上就行了。

    但是這樣是會算重復的,記得前面我們提到的恰好嗎?此處對于 \(i + k\) 也匹配上的方案也是會加上來的。

    我們多掛個詢問把重復算的貢獻減掉就行啦。

    最后復雜度是 \(\mathcal O((|s| + \sum |p|)\log (\sum |p|))\) 的啦。

    代碼

    #include <bits/stdc++.h>#define For(i, l, r) for (register int i = (l), i##end = (int)(r); i <= i##end; ++i) #define Fordown(i, r, l) for (register int i = (r), i##end = (int)(l); i >= i##end; --i) #define Rep(i, r) for (register int i = (0), i##end = (int)(r); i < i##end; ++i) #define Set(a, v) memset(a, v, sizeof(a)) #define Cpy(a, b) memcpy(a, b, sizeof(a)) #define debug(x) cout << #x << ": " << (x) << endl #define epb emplace_back #define fir first #define sec secondusing namespace std;using PII = pair<int, int>;template<typename T> inline bool chkmin(T &a, T b) { return b < a ? a = b, 1 : 0; } template<typename T> inline bool chkmax(T &a, T b) { return b > a ? a = b, 1 : 0; }inline int read() {int x(0), sgn(1); char ch(getchar());for (; !isdigit(ch); ch = getchar()) if (ch == '-') sgn = -1;for (; isdigit(ch); ch = getchar()) x = (x * 10) + (ch ^ 48);return x * sgn; }void File() { #ifdef zjp_shadowfreopen ("2278.in", "r", stdin);freopen ("2278.out", "w", stdout); #endif }const int N = 2e5 + 1e3;vector<int> G[N << 1];template<int Maxn, int Alpha> struct Aho_Corasick_Automaton {int ch[Maxn][Alpha], fail[Maxn], Node;Aho_Corasick_Automaton() { Node = 1; }inline int Insert(int pos, int c) {if (!ch[pos][c]) ch[pos][c] = ++ Node; return ch[pos][c];}void Get_Fail() {queue<int> Q; Rep (i, Alpha) {if (ch[1][i]) Q.push(ch[1][i]), fail[ch[1][i]] = 1;else ch[1][i] = 1;}while (!Q.empty()) {int u = Q.front(); Q.pop();Rep (i, Alpha) {int &v = ch[u][i];if (v) fail[v] = ch[fail[u]][i], Q.push(v);else v = ch[fail[u]][i];}}}void Get_Tree() {For (i, 2, Node) G[fail[i]].epb(i);}};int clk;template<int Maxn> struct Fenwick_Tree {#define lowbit(x) (x & -x)int sumv[Maxn];inline void Update(int pos) {for (; pos <= clk; pos += lowbit(pos)) ++ sumv[pos];}inline int Query(int pos) {int res = 0;for (; pos; pos -= lowbit(pos)) res += sumv[pos];return res;}};Aho_Corasick_Automaton<N << 1, 94> ACAM;Fenwick_Tree<N << 1> FT[2];int dfn[N << 1], efn[N << 1];void Dfs_Init(int u = 1) {dfn[u] = ++ clk; for (int v : G[u]) Dfs_Init(v); efn[u] = clk; }inline int Ask(int opt, int pos) {return FT[opt].Query(efn[pos]) - FT[opt].Query(dfn[pos] - 1); }int ans[N]; vector<PII> Q[N << 1]; vector<int> V[N << 1];void Process(int u) {for (PII cur : Q[u])ans[cur.fir] += (cur.sec > 0 ? -1 : 1) * Ask(cur.sec < 0, abs(cur.sec));for (int cur : V[u])FT[cur < 0].Update(dfn[abs(cur)]);for (int v : G[u]) Process(v);for (PII cur : Q[u])ans[cur.fir] += (cur.sec > 0 ? 1 : -1) * Ask(cur.sec < 0, abs(cur.sec)); }int n, k; char S[N], T[N];int L[N], R[N], pos[2][N];int main () {File();k = read(); scanf ("%s", S + 1); int lenS = strlen(S + 1);n = read();For (i, 1, n) {scanf ("%s", T + 1);int lenT = strlen(T + 1), u = 1;if (lenT < k) {ans[i] = lenS - lenT + 1; continue;}For (j, 1, lenT) L[j] = u = ACAM.Insert(u, T[j] - 33); u = 1;Fordown (j, lenT, 1) R[j] = u = ACAM.Insert(u, T[j] - 33);For (j, 0, lenT - k) Q[j ? L[j] : 1].epb(i, j == jend ? 1 : R[j + k + 1]);For (j, 1, lenT - k) Q[L[j]].epb(i, - R[j + k]);}ACAM.Get_Fail(); ACAM.Get_Tree(); Dfs_Init();pos[0][0] = pos[1][lenS + 1] = 1;For (i, 1, lenS)pos[0][i] = ACAM.ch[pos[0][i - 1]][S[i] - 33];Fordown (i, lenS, 1)pos[1][i] = ACAM.ch[pos[1][i + 1]][S[i] - 33];For (i, 0, lenS - k)V[pos[0][i]].epb(pos[1][i + k + 1]);For (i, 1, lenS - k)V[pos[0][i]].epb(- pos[1][i + k]);Process(1);For (i, 1, n) printf ("%d\n", ans[i]);return 0;}

    「HAOI2017」八縱八橫

    題意

    一開始有個 \(n\) 個點 \(m\) 條邊的連通圖,有 \(P\) 次操作。支持動態加邊,刪邊(只會刪加進去的邊),修改邊的權值。

    每次操作后詢問從 \(1\) 號點出發在 \(1\) 號點結束的最大異或和路徑。不強制在線。

    \(n \le 500, m \le 500, Q \le 1000, len \le 1000\)

    \(len\) 為邊權的二進制位長度。

    題解

    如果沒有修改怎么做呢?知道一個結論就好啦。

    任意一條 \(1\)\(n\) 的路徑的異或和,都可以由任意一條 \(1\)\(n\) 路徑的異或和與圖中的一些環的異或和來組合得到。

    為什么?

    如果我們走一條路徑的話,如果路徑上存在一個環,那么這個環的總異或值就可以下放到線性基。因為把這個環走兩遍就等于沒走這個環,同樣如果是由一條路徑到的這個環,沿原路返回,那等于那條路徑沒走,只走了環。

    在這種條件下,我們可以考慮把環儲存為一個線性基的元素。因為這個元素是隨意選不選的。

    由于一開始的邊是不會刪除的,所以我們可以對一開始讀入的邊用并查集找環,然后搞出一棵原圖的生成樹,這樣之后的插入就會構造出一個唯一的環,然后這個環的權值也可以方便地算出。

    因為線性基不好撤銷,我們考慮進行線段樹分治。這樣可以直接把線性基存在分治結構里,最多只會同時存在 \(O(\log)\) 個。

    我們先記錄好每條環邊的存在區間,一開始的環邊直接就是 \([0,q]\) 。注意每次對環邊進行權值修改時,我們也要劃分成兩個存在區間。
    做成這樣后直接把這些邊插到線段樹里,然后直接線段樹分治就可以了。

    復雜度是 \(\displaystyle \mathcal O(n \alpha (n) + \frac{len^2}{\omega} (q \log q + (q + m -n)))\) 的,可以跑過。

    代碼

    #include <bits/stdc++.h>#define For(i, l, r) for(register int i = (l), i##end = (int)(r); i <= i##end; ++i) #define Fordown(i, r, l) for(register int i = (r), i##end = (int)(l); i >= i##end; --i) #define Set(a, v) memset(a, v, sizeof(a)) #define Cpy(a, b) memcpy(a, b, sizeof(a)) #define debug(x) cout << #x << ": " << (x) << endl #define DEBUG(...) fprintf(stderr, __VA_ARGS__)using namespace std;template<typename T> inline bool chkmin(T &a, T b) {return b < a ? a = b, 1 : 0;} template<typename T> inline bool chkmax(T &a, T b) {return b > a ? a = b, 1 : 0;}inline int read() {int x(0), sgn(1); char ch(getchar());for (; !isdigit(ch); ch = getchar()) if (ch == '-') sgn = -1;for (; isdigit(ch); ch = getchar()) x = (x * 10) + (ch ^ 48);return x * sgn; }void File() { #ifdef zjp_shadowfreopen ("2312.in", "r", stdin);freopen ("2312.out", "w", stdout); #endif }const int N = 1005, M = N << 1;typedef bitset<N> Info;struct Base {Info B[N];inline void Insert(Info cur) {Fordown (i, N - 5, 0)if (cur[i]) {if (!B[i].any()) { B[i] = cur; break; }else cur ^= B[i];}}Info Query() {Info res; res.reset();Fordown (i, N - 5, 0)if (!res[i]) res ^= B[i];return res;}};char str[N]; Info Trans() {Info res; res.reset();scanf ("%s", str);int len = strlen(str);reverse(str, str + len);For (i, 0, len)res[i] = str[i] == '1';return res; }inline void Out(Info cur) {bool flag = false;Fordown (i, N - 5, 0) {if (cur[i] == 1) flag = true;if (flag) putchar (cur[i] + 48);}putchar ('\n'); }int n, m, q;int fa[N]; int find(int x) { return fa[x] == x ? x : fa[x] = find(fa[x]); }int Head[N], Next[M], to[M], e = 0; Info val[M]; inline void add_edge(int u, int v, Info w) {to[++ e] = v; Next[e] = Head[u]; Head[u] = e; val[e] = w; }Info dis[N]; void Dfs_Init(int u = 1, int fa = 0) {for (int i = Head[u]; i; i = Next[i]) {int v = to[i]; if (v == fa) continue ;dis[v] = dis[u] ^ val[i];Dfs_Init(v, u);} }int tim[N], now = 0;struct Option {int x, y; Info z;} lt[N];#define lson o << 1, l, mid #define rson o << 1 | 1, mid + 1, rInfo ans[N];template<int Maxn> struct Segment_Tree {vector<Option> V[Maxn];void Update(int o, int l, int r, int ul, int ur, Option uv) {if (ul <= l && r <= ur) { V[o].push_back(uv); return ; }int mid = (l + r) >> 1;if (ul <= mid) Update(lson, ul, ur, uv);if (ur > mid) Update(rson, ul, ur, uv);}void Dfs(int o, int l, int r, Base cur) {For (i, 0, V[o].size() - 1) {int u = V[o][i].x, v = V[o][i].y; Info w = V[o][i].z;cur.Insert(dis[u] ^ dis[v] ^ w);}if (l == r) { ans[l] = cur.Query(); return ; }int mid = (l + r) >> 1;Dfs(lson, cur); Dfs(rson, cur);}};Segment_Tree<N << 2> T;bool Cancel[N];int main () {File();n = read(); m = read(); q = read(); For (i, 1, n) fa[i] = i;For (i, 1, m) {int u = read(), v = read(); Info w = Trans();if (find(u) != find(v))fa[find(u)] = find(v), add_edge(u, v, w), add_edge(v, u, w);elseT.Update(1, 1, q + 1, 1, q + 1, (Option){u, v, w});}Dfs_Init();For (i, 1, q) {scanf ("%s", str + 1);if (str[1] == 'A') {int u = read(), v = read(); Info w = Trans();lt[++ now] = (Option){u, v, w}, tim[now] = i + 1;} else if (str[2] == 'a') {int id = read(); Cancel[id] = true;T.Update(1, 1, q + 1, tim[id], i, lt[id]);} else {int id = read(); Info w = Trans();T.Update(1, 1, q + 1, tim[id], i, lt[id]); tim[id] = i + 1; lt[id].z = w; }}For (i, 1, q) if (!Cancel[i])T.Update(1, 1, q + 1, tim[i], q + 1, lt[i]);T.Dfs(1, 1, q + 1, Base());For (i, 1, q + 1) Out(ans[i]);return 0;}

    「HAOI2017」供給側改革

    題意

    一個長度為 $ n $ 的 $ 01 $ 字符串 \(S\) ,令 \(\operatorname{data}(l,r)\) 表示:在字符串 \(S\) 中,起始位置在 \([l,r]\) 之間的這些后綴之中,具有最長公共前綴的兩個后綴的最長公共前綴的長度。

    \(Q\) 次詢問。對于每一個詢問 \(L\)\(R\)。求

    \[ \mathit{ans} = \sum\limits_{ L \le i \lt R } \operatorname{data}(i, R) \]

    \(S\) 隨機生成。

    $ n \leq 100000, Q \leq 100000 $

    題解

    首先是隨機,答案長度肯定不會太大,我們設它為 \(L\) ,大概不超過 \(40\)

    那么就有一個很顯然的暴力了,把 \(n\) 個位置向后延伸的 \(L\) 個字符的串插入到 \(Trie\) 中。

    每次從 \(R\)\(L\) 掃,然后在樹上把這個點到根的路徑打標記,然后把當前的 ans 與之前打過標記且在這條路徑上的最深點深度取 \(\max\) ,最后求和就是答案了。

    復雜度是 \(\mathcal O(nQL)\) 的。

    考慮優化,由于答案不超過 \(L\) ,且答案是單調不降的。我們可以考慮對于答案相同的一段連續算。

    這個我們在 \(Trie\) 預處理出每一層對于每個 \(r\) 左邊最靠右的滿足條件的 \(l\) 即可。然后最后排次序,算貢獻即可。

    復雜度優化到了 \(\mathcal O((n + Q)L)\) 。

    代碼

    #include <bits/stdc++.h>#define For(i, l, r) for (register int i = (l), i##end = (int)(r); i <= i##end; ++i) #define Fordown(i, r, l) for (register int i = (r), i##end = (int)(l); i >= i##end; --i) #define Rep(i, r) for (register int i = (0), i##end = (int)(r); i < i##end; ++i) #define Set(a, v) memset(a, v, sizeof(a)) #define Cpy(a, b) memcpy(a, b, sizeof(a)) #define debug(x) cout << #x << ": " << (x) << endlusing namespace std;template<typename T> inline bool chkmin(T &a, T b) { return b < a ? a = b, 1 : 0; } template<typename T> inline bool chkmax(T &a, T b) { return b > a ? a = b, 1 : 0; }inline int read() {int x(0), sgn(1); char ch(getchar());for (; !isdigit(ch); ch = getchar()) if (ch == '-') sgn = -1;for (; isdigit(ch); ch = getchar()) x = (x * 10) + (ch ^ 48);return x * sgn; }void File() { #ifdef zjp_shadowfreopen ("2313.in", "r", stdin);freopen ("2313.out", "w", stdout); #endif }const int N = 1e5 + 1e3, L = 40;vector<int> V[N]; int lef[L][N];namespace Trie {const int Maxn = N * L;int ch[Maxn][2], Node; vector<int> ver[Maxn];int Insert(int *P, int Len, int pos) {int u = 0;Rep (i, Len) {ver[u].push_back(pos);int &v = ch[u][P[i]];if (!v) v = ++ Node; u = v;}ver[u].push_back(pos);return u;}void Get(int u, int len) {if (int(ver[u].size()) <= 1) return;Rep (i, ver[u].size() - 1)lef[len][ver[u][i + 1]] = ver[u][i];Rep (id, 2) if (ch[u][id]) Get(ch[u][id], len + 1);}}int P[N], n, q, id[N]; char str[N]; struct Seg { int pos, val; } S[N];int main () {using namespace Trie;File();n = read(); q = read();scanf ("%s", str + 1);For (i, 1, n) P[i] = str[i] ^ '0';For (i, 1, n) id[i] = Insert(P + i, min(L - 1, n - i + 1), i);Get(0, 0);Rep (i, L) For (j, 1, n) chkmax(lef[i][j], lef[i][j - 1]);For (tim, 1, q) {int l = read(), r = read();Rep (i, L) S[i] = (Seg) {lef[i][r], i};sort(S, S + L, [&](Seg a, Seg b) { return a.pos != b.pos ? a.pos < b.pos : a.val > b.val; });int ans = 0, Last = l - 1;Rep (i, L) {if (S[i].pos < l) continue;if (i && S[i].pos == S[i - 1].pos) continue;ans += S[i].val * (S[i].pos - Last); Last = S[i].pos;}printf ("%d\n", ans);}return 0;}

    轉載于:https://www.cnblogs.com/zjp-shadow/p/10375149.html

    總結

    以上是生活随笔為你收集整理的HAOI2017 简要题解的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    久久久久久久久久久久亚洲 | 一区三区在线欧 | www.黄色片网站 | www.久久com | 9在线观看免费高清完整 | 中国一级片免费看 | 人人艹视频 | 成人午夜精品久久久久久久3d | 国产黄色网 | 国产成a人亚洲精v品在线观看 | 黄色大片国产 | 国产福利91精品一区二区三区 | 日韩电影在线一区二区 | 日本精品久久久一区二区三区 | 福利区在线观看 | 天天射天天射 | 国产精品第二十页 | 国产精品99久久久久 | 麻豆传媒电影在线观看 | 久久香蕉电影网 | 人人澡人 | 人人草在线视频 | 天堂视频一区 | 日日夜夜免费精品 | 一级免费黄视频 | 九九激情视频 | 丁香花在线观看视频在线 | 久热av在线 | 狠狠干夜夜 | 久久久综合九色合综国产精品 | 日韩99热 | 婷婷色六月天 | 久艹视频免费观看 | 国产成人亚洲精品自产在线 | 玖操 | 久久久香蕉视频 | 国产精品高潮久久av | a资源在线 | 中文在线免费一区三区 | 国产麻豆传媒 | 夜色.com | 成人性生交大片免费观看网站 | 天天干夜夜 | 中文字幕丝袜一区二区 | 国产精品女教师 | 久久免费影院 | 丁香免费视频 | 亚洲婷久久 | 亚洲 欧美 日韩 综合 | 欧美日韩视频精品 | 91精品久久久久久综合乱菊 | 日韩精品久久久久久久电影竹菊 | 色婷婷伊人 | 天天插天天爱 | 成人av网站在线观看 | 又湿又紧又大又爽a视频国产 | 国产黄色网 | 午夜性盈盈 | 成人永久视频 | 91视频首页 | 国产精品自在线 | 午夜久久久久久久久 | 国产手机av | 91在线播 | 国产精品美女免费看 | 91亚洲国产| 精品一区二区三区久久久 | 亚洲精品视频免费观看 | 中文字幕一区二区三区久久蜜桃 | 国产成人免费av电影 | 免费看黄20分钟 | 精品国产乱码久久久久久浪潮 | 91社区国产高清 | 男女男视频 | 91亚色视频 | 免费成人在线视频网站 | 干干夜夜 | 麻豆一级视频 | 午夜91视频 | 一区二区影视 | 精品一区 在线 | 91看片看淫黄大片 | 久草视频在 | 国产精品不卡一区 | 国产视频在线免费 | www好男人 | 欧美一级黄色网 | 国产在线观看污片 | 操碰av| 久久激情小说 | 一区二区三区四区免费视频 | 亚洲成人欧美 | 国产精品99久久久久人中文网介绍 | 夜夜夜夜猛噜噜噜噜噜初音未来 | 亚洲最大av在线播放 | 久久99精品热在线观看 | 国产一区二区在线观看视频 | 欧美日韩性视频 | 午夜久操 | 免费在线观看av网址 | 国产精品久久片 | www成人av| 91麻豆精品国产91久久久无需广告 | 精品国产成人av在线免 | 亚洲精品五月天 | 国产在线成人 | 久久久久国产一区二区三区四区 | 黄色三级网站 | 在线观看小视频 | 日韩精品免费一区二区在线观看 | 亚色视频在线观看 | 91片在线观看 | 免费中文字幕在线观看 | 免费看av片网站 | 日本久久精品视频 | 亚洲欧美国产日韩在线观看 | 91在线免费公开视频 | 综合天天| 色综合天天射 | 一区二区三区视频网站 | 青青河边草免费视频 | 亚洲国产精品成人va在线观看 | 99精品免费观看 | 亚洲视频中文 | 在线精品播放 | 国产中文字幕在线免费观看 | 涩涩成人在线 | 欧美一二三专区 | 国产另类xxxxhd高清 | 国产精品国产亚洲精品看不卡15 | 精品福利在线视频 | 亚洲精品在线免费看 | 欧美日韩中字 | 日韩电影一区二区在线观看 | 成人av直播 | 91九色成人蝌蚪首页 | 天天干夜夜爽 | 天天综合久久 | 国产成人一区二区三区免费看 | 免费电影一区二区三区 | 国产 日韩 欧美 在线 | 国产日韩中文字幕在线 | 男女视频91 | 在线观看中文字幕一区二区 | 日韩在线二区 | 在线 影视 一区 | 成人免费在线观看av | 日韩午夜电影 | 黄色成人毛片 | 一区二区三区影院 | 超碰大片 | 国产精品va最新国产精品视频 | 色中文字幕在线观看 | 综合色中色 | 天堂av在线免费观看 | 中文在线免费看视频 | 波多野结依在线观看 | 亚洲国产午夜 | 一区二区久久久久 | 在线观看日韩国产 | 国产无套精品久久久久久 | 国产无套一区二区三区久久 | 亚洲精品乱码久久久久久蜜桃欧美 | 亚洲国产中文在线 | 99精品免费在线观看 | 国产91亚洲精品 | 91高清不卡| 久久99国产精品久久99 | 五月婷婷综合在线视频 | 亚洲电影久久久 | 天天曰视频| av黄色大片 | 在线观看成人av | 久久免费视频这里只有精品 | 91高清免费在线观看 | 亚洲精品视频免费 | 国产韩国日本高清视频 | 久久国产精品99久久久久 | 激情丁香| 国产精品久久久久久999 | 二区三区毛片 | 久久国产美女 | 日韩视频一区二区三区在线播放免费观看 | 久久精品欧美视频 | 国产成人三级一区二区在线观看一 | 日日干美女 | 色综合久久五月 | 狠狠的干狠狠的操 | 中中文字幕av在线 | 亚洲欧美日韩国产一区二区 | 欧美国产在线看 | 在线观看a视频 | 免费a v在线 | 日韩免费一二三区 | 国产中文视频 | 日韩免费视频 | 国产一级黄色片免费看 | 97在线视频免费观看 | 色婷五月天 | 韩国精品一区二区三区六区色诱 | 欧美大香线蕉线伊人久久 | 999久久久免费视频 午夜国产在线观看 | 成年人视频免费在线播放 | 天堂av高清 | 中文字幕在线国产精品 | 最新日韩在线观看视频 | 精品一区二区三区电影 | 在线国产一区二区三区 | 亚洲国产精选 | 久久不见久久见免费影院 | 国产这里只有精品 | 99热这里是精品 | 成人免费观看网址 | 91成人精品观看 | 92国产精品久久久久首页 | 四虎影视成人精品 | 国内精品二区 | 在线视频一区二区 | 国产高清日韩 | 中文字幕一区二区三区四区在线视频 | 特级a毛片 | 精品一区二区三区四区在线 | 国产精品久久久久久吹潮天美传媒 | 国产精品乱码久久久久久1区2区 | 丁香5月婷婷 | 草免费视频| 国产福利电影网址 | 激情影院在线观看 | 国产天天综合 | 涩涩在线 | 色吊丝在线永久观看最新版本 | 五月天综合网 | 一级久久久 | 国产精品永久免费在线 | 青青草国产精品 | 手机av片 | a黄色大片 | 91大神一区二区三区 | 91av视频在线播放 | 色综合久久中文综合久久牛 | 精品视频97| 狠狠狠色丁香综合久久天下网 | 国产亚洲一区二区在线观看 | 狠狠色狠狠色终合网 | 五月婷婷天堂 | 超碰在线免费福利 | 国产精品国产亚洲精品看不卡 | 久草在线视频国产 | 伊香蕉大综综综合久久啪 | av 一区二区三区四区 | 精品一区二区在线观看 | 五月天丁香综合 | 久久伊人操 | 大型av综合网站 | 亚洲国产午夜 | 天天草天天色 | 色婷婷激情电影 | 亚洲精品乱码久久久久久高潮 | 午夜免费福利片 | 制服丝袜一区二区 | 免费在线观看av网站 | 亚洲欧洲精品视频 | 亚洲最快最全在线视频 | 国产一级片直播 | 成年美女黄网站色大片免费看 | 亚洲国产中文字幕在线 | 成人亚洲欧美 | 国产成人精品免费在线观看 | 五月婷婷六月丁香激情 | 黄色的网站免费看 | 亚洲精品久久久久中文字幕二区 | 亚洲国产日韩精品 | 色狠狠综合天天综合综合 | a级国产乱理伦片在线观看 亚洲3级 | 69夜色精品国产69乱 | 国产午夜麻豆影院在线观看 | 99re8这里有精品热视频免费 | 在线观看视频一区二区 | 久久综合欧美精品亚洲一区 | 成人宗合网 | 91精品视频在线看 | 91精品国| 福利av在线| 日韩视频在线观看免费 | 国产精品青草综合久久久久99 | 中文字幕999 | 国产成人一级 | 中文字幕有码在线观看 | 91精品久久久久久久久久久久久 | 国产女人免费看a级丨片 | 亚洲一区二区三区四区精品 | 午夜在线观看 | 日韩高清免费在线 | 亚洲国产午夜精品 | 女人18精品一区二区三区 | 91九色视频在线播放 | 久操伊人 | 国产一区在线免费观看 | 亚洲电影图片小说 | 在线国产日韩 | 久久综合在线 | 成人av片免费观看app下载 | 伊人网站| 五月黄色| 国产精品一区二区三区电影 | 毛片a级片 | 人人澡人摸人人添学生av | 国产91免费在线观看 | 亚洲深爱激情 | 一区二区视频播放 | 91看片黄色| 色瓜| 欧美日韩中文字幕视频 | 91精品国产欧美一区二区 | 久青草视频 | 激情综合网在线观看 | 亚洲涩涩涩涩涩涩 | 久久中文网| 成人免费在线视频 | 在线观看亚洲电影 | 安徽妇搡bbbb搡bbbb | 96久久欧美麻豆网站 | 久久综合五月天 | 五月综合在线观看 | 国产福利网站 | 国产成人一区二区啪在线观看 | 国产亚洲免费观看 | 国产福利一区二区在线 | 国产精品密入口果冻 | 国产精品网址在线观看 | 伊人婷婷久久 | 国产精品第三页 | 激情视频在线观看网址 | 成人久久毛片 | 午夜精品一区二区三区在线 | 日韩区视频 | 久久综合色天天久久综合图片 | 国产一区在线播放 | 96av在线视频 | 最近中文字幕大全 | 日本视频久久久 | 日韩精品三区四区 | 日本三级人妇 | 大胆欧美gogo免费视频一二区 | 国产在线理论片 | 国产黄色av网站 | 在线a亚洲视频播放在线观看 | 国产在线美女 | 亚洲精品久久久蜜桃直播 | 成人在线观看免费 | 在线免费黄色片 | 美女网站黄在线观看 | 中文字幕国内精品 | 国产精品99久久久久久宅男 | 久久久久久久网 | 午夜精品一区二区三区在线观看 | 午夜国产在线观看 | 久久精品黄 | 狠狠干狠狠色 | 欧美视频一区二 | 一区二区精品在线视频 | 国产高清免费观看 | 天天干夜夜夜操天 | 蜜桃视频日韩 | 99热最新在线| 国产美女视频黄a视频免费 久久综合九色欧美综合狠狠 | 日本性生活一级片 | 国产一级淫片免费看 | 亚洲精品久久久久久久蜜桃 | 亚洲精品乱码久久久久久高潮 | 国产精品毛片一区视频播 | 亚洲精品国产欧美在线观看 | 国产亚洲综合精品 | 色中色综合 | 久久国产免 | 色九九视频| 久久理论电影网 | 久久久久免费精品国产 | 婷婷久久网站 | 欧美日韩一区二区三区视频 | 97精品国产91久久久久久 | 久草香蕉在线视频 | 天天操天天摸天天爽 | 日韩精品一区二区三区中文字幕 | 在线观看免费黄视频 | 黄色小说免费在线观看 | 国产精品成人免费一区久久羞羞 | 激情五月在线视频 | 国产精品自产拍 | 亚洲精品美女在线观看播放 | 91热视频在线观看 | 久久夜色精品国产欧美乱极品 | 色播五月激情综合网 | 中文字幕免费看 | 久久精品综合 | 久久艹国产视频 | 91精品视频在线观看免费 | 夜夜躁狠狠燥 | 在线观看国产永久免费视频 | 又黄又爽免费视频 | 亚洲黄色一级大片 | 久久五月激情 | 精品av在线播放 | 激情网在线观看 | www.av免费| 美女激情影院 | 天天干天天玩天天操 | 色婷婷电影 | 国产精品久久久久久久久久免费 | 黄色小说网站在线 | 亚洲va男人天堂 | 国产一级免费观看视频 | 国产成人精品午夜在线播放 | 四虎国产| 久久久国产在线视频 | 国产丝袜高跟 | 久久国产精品一区二区三区四区 | 日韩视频中文字幕 | 成人一级片视频 | 国产精品mm | 免费亚洲精品 | 久久精品123| 97人人超碰在线 | 日免费视频| 天堂av影院| 久久高清毛片 | 亚洲九九影院 | 麻豆免费精品视频 | 看黄色91 | 美女av免费看| 欧美人体xx | 天天狠狠操 | 国产精品99久久久精品免费观看 | 91视频三区 | 国产精品第十页 | 免费在线观看av网站 | 欧美日韩一区二区在线观看 | 久久久激情网 | 精品视频成人 | 人人舔人人舔 | 久久久久久久福利 | www91在线观看| 中文字幕电影高清在线观看 | 久草国产在线观看 | av成人免费在线 | 日韩一区正在播放 | 性色av免费观看 | 一区二区不卡视频在线观看 | 婷婷激情站 | 一区二区精品在线观看 | 视频在线国产 | 亚洲一级黄色 | 美女视频黄色免费 | 在线看国产精品 | 午夜久久美女 | 日韩美在线 | 91日本在线播放 | 美女视频久久 | 国产精品久久久久久久久久直播 | 男女啪啪视屏 | 日韩av中文在线 | 五月婷丁香 | 天天操天天弄 | 国产精品都在这里 | 成人资源站 | 一区二区三区四区在线免费观看 | 午夜精品一区二区三区免费视频 | 国产一区二区不卡视频 | 国产99久久久精品 | 婷婷色综 | 亚洲日本色 | 中文字幕日韩无 | 国产精品成人一区 | 国产精品 日韩 | 天天天天色射综合 | www国产亚洲精品久久麻豆 | 国产精品免费久久久久 | 久久夜夜爽 | 色噜噜在线观看视频 | 婷婷色在线观看 | 国产视频久久久久 | 超碰免费成人 | 四虎影视国产精品免费久久 | 激情网站 | 91中文在线观看 | 18久久久久久 | 久久久久久久久久久久电影 | 婷婷中文在线 | 91在线欧美 | 麻花天美星空视频 | 日韩精品最新在线观看 | 日韩欧美69 | 伊人开心激情 | 久久久久久国产精品久久 | 99久久精品国产观看 | 黄色a一级片| 香蕉影视在线观看 | 国产小视频网站 | 精品国产中文字幕 | 国产成人精品一区二区三区在线 | 国产一级黄色av | 亚洲国产日本 | 久久精品99国产国产 | 欧美一级性生活 | 亚洲狠狠干 | 中文字幕久久久精品 | 亚洲天天在线日亚洲洲精 | 久久精品九色 | 久久在线精品 | 久久99精品国产 | 国产午夜精品一区二区三区四区 | 国产精品一区二区三区在线播放 | av高清在线观看 | 国产伦理久久精品久久久久_ | 久久久免费观看 | 成人免费色| 久久久久国产精品一区二区 | 久久久久久久久久久福利 | 一本一本久久a久久 | 欧美日韩精品在线 | 天天爱天天草 | 亚洲成人午夜在线 | 国产伦理一区二区三区 | 精品毛片久久久久久 | 日韩资源在线观看 | 国产在线观看你懂的 | 综合久久网站 | 精品福利网站 | 成人午夜免费剧场 | 婷婷久久国产 | 国产高清中文字幕 | 天堂av一区二区 | 色www永久免费 | 精品国产精品国产偷麻豆 | 91精品导航 | 天天干天天干天天 | 人人dvd| 日韩av影片在线观看 | 国产精品久久久久亚洲影视 | www.久热 | 99久久精品日本一区二区免费 | 国产成人精品一区二三区 | 国产精品久久久电影 | 91香蕉国产在线观看软件 | 久久国产精品99精国产 | 国产精品视频免费看 | 黄色大全免费网站 | 麻豆国产精品永久免费视频 | 日本亚洲国产 | 国产99久久久国产精品 | 午夜久操 | 天天操夜夜干 | 中文字幕在线观看一区 | 97视频久久久 | 欧美日韩一级久久久久久免费看 | 人人干网 | 超碰在线观看av | 色婷婷激情电影 | 国产精品18久久久久久不卡孕妇 | 国产日韩欧美在线看 | 久久久久免费看 | 国产精品永久在线 | 波多野结衣亚洲一区二区 | 五月天电影免费在线观看一区 | 99麻豆视频 | 久久人人爽人人爽人人片av软件 | 中文字幕久久久精品 | 日日夜夜精品 | www久久 | 国产破处在线视频 | 996久久国产精品线观看 | 国产精品久久久影视 | 日韩精品视 | 91av视频免费在线观看 | 天天天天色射综合 | 在线观看视频一区二区 | 天天射天天操天天 | 久久99精品久久久久久 | 国产91精品久久久久久 | 久草在线视频网 | 91日韩精品视频 | 日韩在线观看一区二区 | 欧美激情综合五月 | 亚洲成人黄色网址 | 狠狠操综合 | 人人爱人人射 | 色婷婷影视| 亚洲精品在线观看不卡 | 日韩中字在线 | 国产一区二区不卡在线 | 久久免费视频精品 | 欧美成人久久 | 操操操com | 又长又大又黑又粗欧美 | 亚洲成人一区 | 人人澡人人澡人人 | 国产中文 | 九九久久久久久久久激情 | 成人av动漫在线观看 | 夜夜看av | 精品久久九九 | 91精品伦理 | 99视频一区 | 天天干天天弄 | 亚洲一区二区三区miaa149 | 日韩精品视频免费看 | 久久精品国产一区二区三 | 久久久久久久久久影视 | 久草视频网 | 欧美激情视频免费看 | 国产精品久久久久aaaa九色 | 中文字幕视频网站 | 激情动态 | 美女网色 | 国产精品不卡在线播放 | 九九热在线视频免费观看 | 日韩在线视频网站 | 丁香六月婷婷开心 | 免费在线国产黄色 | 亚洲国产资源 | 日韩欧美综合精品 | 国产精品18久久久久久久久久久久 | 国产欧美在线一区二区三区 | 国产99在线 | 亚洲爱爱视频 | 欧美在线视频不卡 | 成人在线免费看 | av大全在线播放 | 午夜 免费| 91在线产啪 | 国产在线精品一区二区不卡了 | 毛片网站免费在线观看 | 成人av直播 | 超碰在线公开免费 | 亚洲免费永久精品国产 | 国产麻豆成人传媒免费观看 | 激情在线五月天 | 性色视频在线 | 中文字幕在 | 在线视频精品 | 久操伊人 | 99色在线播放 | 精品成人在线 | 亚洲婷婷丁香 | 国产中出在线观看 | 国产一区国产二区在线观看 | www91在线 | 91视视频在线直接观看在线看网页在线看 | 97超碰人人干 | 五月激情久久久 | 精品亚洲二区 | 日韩中文字幕免费视频 | 国产99久久久国产精品 | 亚洲成a人片综合在线 | 天天躁日日 | 欧美一二三在线 | 成人久久久久久久久 | 国产a视频免费观看 | 免费看日韩片 | 日本三级久久 | 国产乱对白刺激视频不卡 | 波多野结依在线观看 | 日韩区欧美久久久无人区 | 天天草综合 | 超碰97av在线 | 亚洲精品动漫在线 | 天天搞天天干天天色 | 国产精品69av | 国产精品精品 | 色成人亚洲网 | 欧美在线视频不卡 | 九九99 | 亚洲婷婷综合色高清在线 | 超碰在线观看99 | 91在线免费观看国产 | 久久五月婷婷综合 | 久久久久在线 | 1000部18岁以下禁看视频 | 精品视频区 | 日韩大片在线播放 | 久久久这里有精品 | 香蕉视频4aa | 日韩 在线| 日韩av综合网站 | 又黄又爽的视频在线观看网站 | 天天操福利视频 | 久草免费在线视频观看 | 亚洲久草视频 | 夜夜视频欧洲 | 手机av电影在线 | 91视频国产高清 | 欧美亚洲国产一卡 | 五月婷婷,六月丁香 | 久草在线视频免赞 | 99久久精品久久亚洲精品 | 伊人五月天av | 亚洲欧美婷婷六月色综合 | 91av视屏 | 国产91免费在线观看 | 丁香激情综合久久伊人久久 | 一区免费观看 | 欧美成人中文字幕 | 一本一道波多野毛片中文在线 | 蜜臀av性久久久久av蜜臀妖精 | 毛片随便看 | 中文字幕999 | 91精品成人久久 | 久久国产精彩视频 | 一区二区在线电影 | 国产一级一片免费播放放 | 激情综合网在线观看 | 色五月色开心色婷婷色丁香 | 亚洲欧洲中文日韩久久av乱码 | www.五月婷 | 在线a人v观看视频 | www.天天干.com| 在线看一区 | 精品国产一二三四区 | 欧美日韩一级久久久久久免费看 | 天天色成人 | 亚洲精品视频中文字幕 | 国产专区欧美专区 | 成人国产精品入口 | 国产色秀视频 | 国产精品永久在线观看 | 日韩av一区二区三区在线观看 | 色五月激情五月 | 国产 欧美 日本 | 91在线观看视频 | 天天干天天干 | 国产成人精品一区一区一区 | 久久伦理电影网 | 久久亚洲私人国产精品 | 在线观看韩国av | 国产九九热视频 | 亚州免费视频 | 黄色av免费电影 | 中文av在线免费观看 | 国产 av 日韩| 精品国产一二三四区 | 日韩色高清 | 成人av影视在线 | 天天干天天干天天 | 又粗又长又大又爽又黄少妇毛片 | 欧美日本不卡视频 | 欧美性色黄 | 国产专区在线 | 懂色av一区二区在线播放 | 久久久国产一区二区三区 | 欧美另类xxxx| 9在线观看免费高清完整版 玖玖爱免费视频 | 国产视频18 | 日韩专区视频 | 香蕉网站在线观看 | 亚洲精品视频在线播放 | 国产精品乱码高清在线看 | 少妇bbw揉bbb欧美 | 一区二区三区免费在线观看视频 | 亚洲视频一区二区三区在线观看 | 毛片激情永久免费 | 国产亚洲精品久久久久久无几年桃 | 色综合久久天天 | avsex| 视频一区二区国产 | av免费在线观 | 中文字幕精品久久 | 国产午夜精品一区二区三区嫩草 | 欧美aa级 | 国产精品久久久久久久久久久杏吧 | 久久国产精品一国产精品 | 国产主播大尺度精品福利免费 | 久久久精品一区二区 | 国产麻豆果冻传媒在线观看 | 久久久久久久久久伊人 | 国产在线色视频 | 欧洲成人免费 | 美女视频免费精品 | 最近日本中文字幕a | 久久久国产在线视频 | 欧美亚洲国产日韩 | 青春草视频| 在线中文日韩 | 国产福利一区二区三区在线观看 | 色吊丝在线永久观看最新版本 | a级国产毛片 | 91视频啊啊啊 | 亚洲成人资源 | 91精品资源 | 天天干夜夜操视频 | av在线激情 | 狠狠色狠狠色综合日日小说 | 天天干天天草天天爽 | 中文字幕在线一区观看 | 免费福利在线视频 | 深爱开心激情网 | 国产成人黄色在线 | 免费观看高清 | 亚州av免费 | 色吧久久 | 久久国产精品99国产精 | 国产成人精品一区二区三区 | 在线观看韩国av | 亚洲爽爽网 | 中文字幕亚洲不卡 | 国产香蕉97碰碰碰视频在线观看 | 国产视频97 | 久久99久久99 | 成人在线视频网 | 欧美午夜久久久 | 黄色三级免费网址 | 久久99欧美 | 丁香激情五月 | 国产精品九九热 | 亚洲精品动漫在线 | 香蕉视频啪啪 | 日本公妇在线观看 | av免费看在线 | 免费观看日韩 | 干干操操| 国产精品久久久久久久久久久久午夜 | 久久综合丁香 | 免费在线成人av | 久草免费手机视频 | 国产精品久久久久久久av电影 | 婷婷综合伊人 | 亚洲精品一区二区久 | 国产老熟 | 亚洲精品2区 | 国产黄色免费看 | 成人黄色影片在线 | 99re久久资源最新地址 | 在线观看完整版免费 | 97电院网手机版 | 欧美一区二区三区在线视频观看 | 成人在线一区二区 | 日韩av一区二区三区 | 丁香 久久 综合 | .精品久久久麻豆国产精品 亚洲va欧美 | 亚洲资源在线 | 天天搞天天干天天色 | av中文字幕免费在线观看 | 日韩精品视频免费看 | 久久电影色 | av免费在线免费观看 | 国产亚洲精品久久久久久网站 | 国产精品大片在线观看 | 麻豆视频在线观看免费 | 粉嫩av一区二区三区入口 | 国产专区日韩专区 | 成人av电影免费观看 | 色综合天天狠狠 | 国产五月婷 | 黄色免费高清视频 | 最近最新最好看中文视频 | 久草在线99 | 一区二区三区av在线 | 成人羞羞免费 | 亚洲久草视频 | 香蕉视频免费在线播放 | 中文字幕日本电影 | 免费观看第二部31集 | www.久草视频 | www免费网站在线观看 | 99视频精品| 国产精品久久久久久久久大全 | 欧美日韩亚洲国产一区 | 黄色三级免费观看 | 欧美日韩视频一区二区三区 | 91在线文字幕 | 欧美激情va永久在线播放 | 日韩精品中文字幕在线 | 天天操夜夜操国产精品 | 在线91视频 | 青青河边草观看完整版高清 | 在线观看成年人 | 狠狠狠狠狠色综合 | 国产999精品久久久久久绿帽 | 久久综合电影 | 欧美-第1页-屁屁影院 | 国产黄色免费看 | 免费国产亚洲视频 | 国产美女免费观看 | 久久涩视频 | 超碰在线最新网址 | 免费在线观看黄色网 | 国产日韩精品在线 | 国产美女精品在线 | 欧美另类老妇 | 国产一级高清 | 成人a免费 | 丝袜足交在线 | 久久五月天婷婷 | www.亚洲精品视频 | 亚洲一区二区天堂 | 中文字幕有码在线播放 | 久久影视中文字幕 | 欧美男男激情videos | 91视频亚洲 | 亚洲专区免费观看 | 久久电影色| 久久午夜精品视频 | 日韩在线观看小视频 | 夜色成人av | 永久免费的啪啪网站免费观看浪潮 | 日韩欧美精品一区 | 亚欧洲精品视频在线观看 | av动图| 九九久久久久久久久激情 | 国产精品毛片一区二区三区 | 亚洲天堂免费视频 | 精品国产伦一区二区三区观看说明 | 91av视频在线免费观看 | 四虎影视成人永久免费观看亚洲欧美 | 激情网五月 | 欧美一级乱黄 | 亚洲精品一区二区久 | 九九热在线观看 | 夜夜操狠狠操 | 日韩免费在线一区 | 在线免费观看的av | 99爱精品在线 | 高清av免费一区中文字幕 | 欧美日韩免费网站 | 午夜视频一区二区三区 | 96久久欧美麻豆网站 | 成年人免费在线观看网站 | 国产123av| 91精品国产高清自在线观看 | 久久精品国产99国产 | 波多野结衣亚洲一区二区 | 黄色片视频免费 | 国产精品一区二区在线免费观看 | 亚洲电影av在线 | 国产中文字幕大全 | 日韩成人黄色av | 国产精品尤物视频 | 97精品国产91久久久久久 | 九九久久国产精品 | 久久综合狠狠综合 | 亚洲人成网站精品片在线观看 | 久久久久久视频 | 国产午夜精品福利视频 | 99精品国产一区二区三区不卡 | 婷婷丁香狠狠爱 | 久久久免费视频播放 | 久久国产精品久久国产精品 | 日韩精品中文字幕av | 亚洲aaa级| 中文区中文字幕免费看 | 国产精品久久久久三级 | 精品久久免费 | av电影在线免费观看 | 久久久一本精品99久久精品66 | 国产成人精品午夜在线播放 | 91最新地址永久入口 | 奇米网网址| 日韩中文字幕免费电影 | 亚洲免费婷婷 | 女人18片 | 91精品视频免费 | 在线视频 成人 | 亚洲国产成人久久综合 | 在线看成人 | 久草电影免费在线观看 | 国产成人精品在线播放 | 久久久五月天 | 香蕉在线视频观看 | 夜夜操网站| 色婷婷导航| 久久久国产一区二区三区四区小说 | 久久99深爱久久99精品 | 午夜精品久久久久久久爽 | 国产99久久精品一区二区永久免费 | 久久人人爽人人爽 | 久久久久高清毛片一级 | 日韩中文幕 | 国产一二区视频 | 日韩高清一 | 四虎成人网 | 一本到视频在线观看 | 黄色字幕网| 97视频网站 | 97在线视频免费 | 黄色1级大片 | 亚洲精品午夜久久久久久久久久久 | 91精品综合在线观看 | www麻豆视频 | 亚洲最新精品 | 91高清完整版在线观看 | 国产黄色av| 久久久久久蜜av免费网站 | 色天天中文| 久久一区二区免费视频 | 精品久久影院 | 五月花婷婷 | 亚洲黄色免费在线看 | 精品亚洲免费 | 成年人在线观看网站 |