青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

糯米

TI DaVinci, gstreamer, ffmpeg
隨筆 - 167, 文章 - 0, 評論 - 47, 引用 - 0
數據加載中……

POJ 1987 Distance Statistics 牛題 樹的分治

     摘要: 這題很牛逼,是樓教主的《男人七題》的其中一道。求:一棵樹內最短距離小于K的點對數量后來看了解題報告,原來樹也是可以分治的。分:選取一條邊,將一棵樹分成兩半,這兩半的節點數要盡量相等。首先,統計個每個節點的下面有多少個節點然后,就知道每個邊切斷之后的情況了。選擇最優的即可。治:分成兩半之后,統計經過該條邊的點對線段中,長度小于K的數目。Amber 大牛論文的精辟描述如下:  Divide...  閱讀全文

posted @ 2010-04-25 22:30 糯米 閱讀(760) | 評論 (0)編輯 收藏

POJ 1850 Code 動態規劃

思路:

f[ch][len] = { 有多少個以 ch 開頭,長度為 len 的字符串 }


#include <stdio.h>

__int64 dp[
16][32], sum[16], ans;

int main()
{
    
int i, j, len;
    
char str[16];

    freopen(
"e:\\test\\in.txt""r", stdin);

    
for (i = 0; i < 26; i++)
        dp[
0][i] = 1;
    
for (i = 1; i < 10; i++{
        
for (j = 25 - i; j >= 0; j--{
            dp[i][j] 
+= dp[i][j + 1];
            dp[i][j] 
+= dp[i - 1][j + 1];
        }

    }

    
for (i = 0; i < 10; i++
        
for (j = 0; j < 26; j++)
            sum[i] 
+= dp[i][j];

    scanf(
"%s", str);
    
for (len = 0; str[len]; len++)
        ans 
+= sum[len];
    ans 
-= sum[len - 1];
    j 
= 0;
    
for (i = len - 1; i >= 0; i--{
        
while (j < str[len - 1 - i] - 'a'{
            ans 
+= dp[i][j];
            j
++;
        }

        j
++;
    }

    
for (i = 0; i < len - 1; i++)
        
if (str[i] >= str[i + 1])
            ans 
= -1;
    printf(
"%I64d\n", ans + 1);

    
return 0;
}

posted @ 2010-04-22 21:52 糯米 閱讀(354) | 評論 (0)編輯 收藏

POJ 1837 Balance 動態規劃

思路:

力矩 = 力臂*重量。這個高中物理學過啦,呵呵。
所以如果現在有一個 3 放在 -5 的位置上,一個 4 放在 3 的位置上,那當前天平的總力矩就是 3*-5 + 4*3 = -3 了

動態規劃:
從小到大依次放 weight。
f[i][j] = { 已經放了 i 個 weight,天平的總力矩為 j 時候的方案個數 }
初始化 f[0][0] = 1
狀態轉移:
對每個位置 x
   f[i + 1][j + W[i + 1]*x] += f[i][j]

#include <stdio.h>
#include 
<stdlib.h>

int C, G, X[24], W[24];
struct {
    
int val, tm;
}
 _dp[2][1 << 15], *dp[2= {
    
&_dp[0][_countof(_dp[0]) / 2],
    
&_dp[1][_countof(_dp[1]) / 2],
}
*cur, *pre;
int up, down;

int main()
{
    
int i, j, k, y;

    freopen(
"e:\\test\\in.txt""r", stdin);

    scanf(
"%d%d"&C, &G);
    
for (i = 1; i <= C; i++)
        scanf(
"%d"&X[i]);
    
for (i = 1; i <= G; i++)
        scanf(
"%d"&W[i]);

    dp[
1][0].tm = 1;
    dp[
1][0].val = 1;
    
for (i = 1; i <= G; i++{
        pre 
= dp[i & 1];
        cur 
= dp[(i + 1& 1];
        
for (j = down; j <= up; j++{
            
if (pre[j].tm != i)
                
continue;
            
for (k = 1; k <= C; k++{
                y 
= j + W[i]*X[k];
                
if (cur[y].tm != i + 1{
                    cur[y].tm 
= i + 1;
                    cur[y].val 
= 0;
                }

                cur[y].val 
+= pre[j].val;
                
if (y < down)
                    down 
= y;
                
if (y > up)
                    up 
= y;
            }

        }

    }

    printf(
"%d\n", cur[0].val);
    

    
return 0;
}

posted @ 2010-04-22 21:50 糯米 閱讀(148) | 評論 (0)編輯 收藏

POJ 1733 Parity game 牛題 -> 并查集+hash

思路:

這題是道好題!
假比確定了 [2, 4]、[5, 6]、[7, 8] 的奇偶性
[4, 5] 的奇偶性無法得知
[2, 6] 的奇偶性是知道的
所以只有詢問的區間符合以下要求:
1. 頭部和某個已知區間的頭部重合
2. 尾部和某個已知區間的尾部重合
3. 區間內每一段都是已知的
才能得出結論

我只想到這一步,然后用鏈表寫了一遍,TLE 了。上網搜解題報告,看到“并查集”三字,恍然大悟。嗎的太牛逼了。

我們把首尾相接的多個已知區間歸為一類。
將這多個區間的尾部的點歸在同一個集合中。
它們的父親就是最左邊區間頭部。
它們的權值就是從左邊區間頭部的到自己的這段區間的奇偶性。

插入區間 [i, j] 的時候,首先查找 i, j 對應的父親。就是 find 操作。
如果它們的父親相同,則表明它們處在同一個段的多個已知區間中。
那么 i, j 的權值相減,就很容易得出 [i, j] 的奇偶性了。
如果它們的父親不同,則需要將 i, j 分別對應的區間段關聯起來。也就是 union 操作。
這時候要注意判斷 i, j 父親的位置先后。因為這個 WA 了一次。

由于節點的位置分得很散,用 hash 存放。

#include <stdio.h>

#define HASH_SIZE (1 << 18)
#define NODES_NR 65536

struct node {
    
struct node *root, *next;
    
int idx, val;
}
;

struct node *hash[HASH_SIZE], nodes[NODES_NR];
int nodes_cnt;

inline 
void find(struct node *t)
{
    
static struct node *stk[NODES_NR];
    
int i;

    
for (i = 0; t->root != t; t = t->root)
        stk[i
++= t;
    
for (i--; i >= 0; i--{
        stk[i]
->val += stk[i]->root->val;
        stk[i]
->root = t;
    }

}


inline 
struct node *insert(int idx)
{
    
int h;
    
struct node *t;

    h 
= idx & (HASH_SIZE - 1);
    
for (t = hash[h]; t; t = t->next) {
        
if (t->idx == idx)
            
break;
    }

    
if (!t) {
        t 
= &nodes[nodes_cnt++];
        t
->root = t;
        t
->idx = idx;
        t
->next = hash[h];
        hash[h] 
= t;
    }

    
return t;
}


inline 
int solve(int start, int end, int val)
{
    
struct node *a, *b;

    a 
= insert(start);
    b 
= insert(end);
    find(a);
    find(b);

    
if (a->root == b->root)
        
return ((b->val - a->val) & 1== val;

    val 
-= b->val;
    val 
+= a->val;
    a 
= a->root;
    b 
= b->root;
    
if (a->idx < b->idx) {
        b
->root = a;
        b
->val = val;
    }
 else {
        a
->root = b;
        a
->val = -val;
    }


    
return 1;
}


int main()
{
    
int n, i, x, a, b;
    
char str[16];

    freopen(
"e:\\test\\in.txt""r", stdin);

    scanf(
"%d%d"&n, &x);
    
for (i = 0; i < x; i++{
        scanf(
"%d%d%s"&a, &b, str);
        
if (!solve(a, b + 1, str[0== 'o'))
            
break;
    }

    printf(
"%d\n", i);

    
return 0;
}



posted @ 2010-04-22 21:38 糯米 閱讀(889) | 評論 (0)編輯 收藏

POJ 3519 Minimal Backgammon 動態規劃

思路:

方程:
f[i][j] = { 還剩 i 次投 dice 的機會,此時位于第 j 個格子。這種情況下贏的概率 }

狀態轉移:
現在投 dice。分別考慮投到 1~6 的情況,假設最后停在 k 點。
如果 k 點是 L 點。則概率 g = f[i - 2][j]
如果 k 點是 B 點。則概率 g = f[i - 1][0]
如果 k 點是一個普通的點,則概率 g = f[i - 1][j]
f[i][j] = g[1]/6 + g[2]/6 + ... + g[6]/6

代碼:

#include <stdio.h>
#include 
<string.h>

double prob[3][128], *p[3];
int N, T, L, B;
char map[128];

inline 
double calc(int x)
{
    
switch (map[x]) {
    
case 'B'return p[1][0];
    
case 'L'return p[0][x];
    
default : return p[1][x];
    }

}


int main()
{
    
int i, j, c, x;

    freopen(
"e:\\test\\in.txt""r", stdin);

    
while (scanf("%d%d%d%d"&N, &T, &L, &B), N) {
        memset(map, 
' 'sizeof(map));
        memset(prob, 
0sizeof(prob));
        
while (L--{
            scanf(
"%d"&i);
            map[i] 
= 'L';
        }

        
while (B--{
            scanf(
"%d"&i);
            map[i] 
= 'B';
        }

        
//prob[1][N] = 1;
        for (i = 0; i < T; i++{
            p[
2= prob[(i+2)%3];
            p[
1= prob[(i+1)%3];
            p[
0= prob[i%3];
            p[
1][N] = 1;
            
for (j = 0; j < N; j++{
                p[
2][j] = 0;
                
for (c = 6, x = j + 1; c && x < N; c--, x++)
                    p[
2][j] += calc(x) / 6;
                
for ( ; c; c--, x--)
                    p[
2][j] += calc(x) / 6;
            }

        }

        printf(
"%.6lf\n", p[2][0]);
    }


    
return 0;
}

posted @ 2010-04-21 21:57 糯米 閱讀(379) | 評論 (0)編輯 收藏

POJ 3256 Cow Picnic 寬搜

思路:

這題剛開始看上去,很屌,真的。
如果用很圖論的做法,就很牛逼了。
首先要把環合并為一點,然后就變成了有向無環圖,然后可能用拓撲排序之類的手段解決它。
這個很難很難,反正以哥的智商是沒可能想出來的。
考慮了一下,只要每頭牛為起始點遍歷一下圖,然后統計每個點上有多少頭牛能過經過就行了。
復雜度 O(NK) 還是能過的。所以就瞬間淪為一道水題了。
后來代碼寫出來,太爽啦 0MS,這題哥的代碼是第一!

#include <stdio.h>

#define MAX_N 1024
#define MAX_E 10032

struct edge_node {
    
struct edge_node *next;
    
int b;
}
;

struct vetx_node {
    
struct edge_node *e;
    
int cows, degs;
}
;

struct edge_node edges[MAX_E];
struct vetx_node vetxs[MAX_N];
int K, N, M;
int vis[MAX_N], tm;
int queue[MAX_N], head, tail;

inline 
void push(int i, int d)
{
    
if (vis[i] == tm)
        
return ;
    vis[i] 
= tm;
    vetxs[i].degs 
+= d;
    queue[tail
++= i;
}


inline 
void pop(int *i)
{
    
*= queue[head++];
}


inline 
void bfs(int i)
{
    
int d;
    
struct edge_node *e;

    d 
= vetxs[i].cows;
    tm
++;
    head 
= tail = 0;
    push(i, d);
    
while (head != tail) {
        pop(
&i);
        
for (e = vetxs[i].e; e; e = e->next)
            push(e
->b, d);
    }

}


int main()
{
    
int i, a;

    freopen(
"e:\\test\\in.txt""r", stdin);

    scanf(
"%d%d%d"&K, &N, &M);
    
for (i = 0; i < K; i++{
        scanf(
"%d"&a);
        vetxs[a].cows
++;
    }

    
for (i = 0; i < M; i++{
        scanf(
"%d%d"&a, &edges[i].b);
        edges[i].next 
= vetxs[a].e;
        vetxs[a].e 
= &edges[i];
    }

    
for (i = 1; i <= N; i++)
        
if (vetxs[i].cows)
            bfs(i);
    a 
= 0;
    
for (i = 1; i <= N; i++)
        
if (vetxs[i].degs == K)
            a
++;
    printf(
"%d\n", a);

    
return 0;
}

posted @ 2010-04-21 21:49 糯米 閱讀(274) | 評論 (0)編輯 收藏

POJ 3257 Cow Roller Coaster 背包^2

思路:

這題數據很水,所以二維背包都能過的。

#include <stdio.h>
#include 
<stdlib.h>

#define MAX_N 10032
#define MAX_B 1024
#define MAX_L 1024

struct node {
    
int x, w, f, c;
}
;

struct node in[MAX_N];
int dp[MAX_L][MAX_B], right[MAX_L];
int L, N, B;

int cmp(const void *a, const void *b)
{
    
return ((struct node *)a)->- ((struct node *)b)->x;
}


inline 
void update_max(int *a, int b)
{
    
if (b > *a)
        
*= b;
}


int main()
{
    
int i, c;
    
struct node *t;

    freopen(
"e:\\test\\in.txt""r", stdin);

    scanf(
"%d%d%d"&L, &N, &B);
    
for (i = 0; i < N; i++
        scanf(
"%d%d%d%d"&in[i].x, &in[i].w, &in[i].f, &in[i].c);
    qsort(
in, N, sizeof(in[0]), cmp);
    
    right[
0= 1;
    dp[
0][0= 1;
    
for (i = 0; i < N; i++{
        t 
= &in[i];
        
for (c = 0; c < right[t->x] && c + t-><= B; c++{
            
if (!dp[t->x][c])
                
continue;
            update_max(
&dp[t->+ t->w][c + t->c], dp[t->x][c] + t->f);
            update_max(
&right[t->+ t->w], c + t->+ 1);
        }

    }


    
for (i = c = 0; c <= B; c++)
        update_max(
&i, dp[L][c]);
    printf(
"%d\n", i - 1);

    
return 0;
}

posted @ 2010-04-21 21:43 糯米 閱讀(313) | 評論 (0)編輯 收藏

POJ 1080 Human Gene Functions 動態規劃

思路:

由于上下都可以加空格,這個有點崩潰。
但后來發現還是可以用動態規劃做的。
假設輸入的字符串分別為 A,B
f[i][j] = { 從 A[i] 和 B[j] 開始匹配,所能達到的最大值 }
假設 A[i] = G,B[j] = C
那么現在的情況就是
Gxxxxx
Cxxxxx
狀態轉移為
=> f[i + 1][j] + table(A[i], '-')
G...
-C..

=> f[i][j + 1] + table(B[j], '-')
-G..
C...

=> f[i + 1][j + 1] + table(A[i], B[j])
G...
C...

可以用滾動數組。

所以這樣就解決了,覺得很神奇。

#include <stdio.h>

int N, M, f[2][256], *pre, *cur;
char A[256], B[256], map[256];
int tbl[5][5= {
    
5-1-2-1-3},
    
{-1,  5-3-2-4},
    
{-2-3,  5-2-2},
    
{-1-2-2,  5-1},
    
{-3-4-2-1,  0},
}
;

inline 
void swap(int **a, int **b)
{
    
int *= *a;
    
*= *b;
    
*= t;
}


inline 
int max(int a, int b)
{
    
return a > b ? a : b;
}


inline 
int min(int a, int b)
{
    
return a < b ? a : b;
}


inline 
int dif(char a, char b)
{
    
return tbl[map[a]][map[b]];
}


int main()
{
    
int t, i, j;
    
    freopen(
"e:\\test\\in.txt""r", stdin);

    map[
'A'= 0;
    map[
'C'= 1;
    map[
'G'= 2;
    map[
'T'= 3;
    map[
'-'= 4;
 
    scanf(
"%d"&t);
    
while (t--{
        scanf(
"%d%s%d%s"&N, &A[1], &M, &B[1]);            
        pre 
= &f[0][0];
        cur 
= &f[1][0];
        cur[
0= 0;
        
for (i = 1; i <= M; i++)
            cur[i] 
= dif(B[i], '-'+ cur[i - 1];
        
for (i = 1; i <= N; i++{
            swap(
&pre, &cur);
            cur[
0= dif(A[i], '-'+ pre[0];
            
for (j = 1; j <= M; j++{
                cur[j] 
= dif(A[i], B[j]) + pre[j - 1];
                cur[j] 
= max(cur[j], dif(A[i], '-'+ pre[j]);
                cur[j] 
= max(cur[j], dif(B[j], '-'+ cur[j - 1]);
            }

        }

        printf(
"%d\n", cur[M]);
    }

}

posted @ 2010-04-21 21:41 糯米 閱讀(394) | 評論 (0)編輯 收藏

POJ 1170 Shopping Offers 動態規劃

思路:

由于一共有5種物品,每種物品最多只能有5個,所以物品的擁有情況,可以表示為 6*6*6*6*6 中狀態。
這個數好像是 7k 多,不大。
狀態轉移發生在有折扣的時候,如果當前的狀態可以打折,那么就看打折之后是否會比現在劃算就可以了。

一開始用的是取模,后來改成位操作了,快了一點,但還是很慢,不明白那些0ms怎么來的,⊙﹏⊙b汗
代碼很爛,僅供參考

#include <stdio.h>

int S, B;
int price[1024], code[1024];
int offer[128], cut[128];
int ans[1 << 15];

inline 
int min(int a, int b)
{
    
return a < b ? a : b;
}


int main()
{
    
int c, k, i, j, n, t, m[5], a, b;

    freopen(
"e:\\test\\in.txt""r", stdin);

    scanf(
"%d"&B);
    t 
= 0;
    
for (i = 0; i < B; i++{
        scanf(
"%d%d%d"&c, &k, &price[i]);
        t 
|= k << (i*3);
        code[c] 
= i;
    }

    scanf(
"%d"&S);
    
for (i = 0; i < S; i++{
        scanf(
"%d"&n);
        offer[i] 
= 0;
        
while (n--{
            scanf(
"%d%d"&c, &k);
            offer[i] 
|= k << (code[c]*3);
        }

        scanf(
"%d"&cut[i]);
    }

    
for (i = 0; i <= t; i++{
        ans[i] 
= 0;
        a 
= i;
        
for (j = 0; j < B; j++{
            ans[i] 
+= price[j] * (a & 7);
            a 
>>= 3;
        }

        
for (j = 0; j < S; j++{
            a 
= i;
            b 
= offer[j];
            
for (k = 0; k < B; k++{
                
if ((a & 7< (b & 7))
                    
break;
                a 
>>= 3;
                b 
>>= 3;
            }

            
if (k < B)
                
continue;
             ans[i] 
= min(ans[i], ans[i - offer[j]] + cut[j]);
        }

    }

    printf(
"%d\n", ans[t]);

    
return 0;
}


posted @ 2010-04-21 21:32 糯米 閱讀(499) | 評論 (0)編輯 收藏

POJ 1695 Magazine Delivery 動態規劃

思路:

一個 O(N^3) 的動態規劃,由于 N 比較小,所以沒啥問題。
f[i][j][k] = { 從一開始到三輛車分別位于 i, j, k 的時候,所有車走過的距離之和的最小值 }
其中 i <= j <= k
狀態轉移:
1. 第一輛車走到 k + 1
2. 第二輛車走到 k + 1
3. 第三輛車走到 k + 1

注意:
  兩點之間的距離跟輸入一致。
  不可以計算兩點間的最短距離,這樣會 WA。
  這是題目沒有描述清楚!


#include <stdio.h>

#define MAX_N 32
#define MAX_DIS 0x70000000

int M, N;
int D[MAX_N][MAX_N];
int dp[MAX_N][MAX_N][MAX_N];

inline 
void update(int *a, int b)
{
    
if (b < *a)
        
*= b;
}


int main()
{
    
int i, j, k, v;

    freopen(
"e:\\test\\in.txt""r", stdin);

    scanf(
"%d"&M);
    
while (M--{
        scanf(
"%d"&N);
        
for (i = 1; i <= N - 1; i++{
            
for (j = i + 1; j <= N; j++{
                scanf(
"%d"&v);
                D[i][j] 
= D[j][i] = v;
            }

        }

        
/*
        兩點之間的距離跟輸入一致。
        不可以計算兩點間的最短距離,這樣會 WA。
        這是題目沒有描述清楚!
        for (k = 1; k <= N; k++)
            for (i = 1; i <= N; i++)
                for (j = 1; j <= N; j++)
                    if (D[i][k] + D[k][j] < D[i][j])
                        D[i][j] = D[i][k] + D[k][j];
        
*/

        
for (i = 1; i <= N; i++)
            
for (j = 1; j <= N; j++)
                
for (k = 1; k <= N; k++)
                    dp[i][j][k] 
= MAX_DIS;
        dp[
1][1][1= 0;
        
for (i = 1; i <= N - 1; i++{
            
for (j = 1; j <= i; j++{
                
for (k = j; k <= i; k++{
                    update(
&dp[k][i][i + 1], dp[j][k][i] + D[j][i + 1]);
                    update(
&dp[j][i][i + 1], dp[j][k][i] + D[k][i + 1]);
                    update(
&dp[j][k][i + 1], dp[j][k][i] + D[i][i + 1]);
                }

            }

        }

        v 
= MAX_DIS;
        
for (i = 1; i <= N; i++)
            
for (j = i; j <= N; j++)
                update(
&v, dp[i][j][N]);
        printf(
"%d\n", v);
    }


    
return 0;
}

posted @ 2010-04-21 21:01 糯米 閱讀(207) | 評論 (0)編輯 收藏

僅列出標題
共17頁: First 4 5 6 7 8 9 10 11 12 Last 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            一区二区电影免费在线观看| 欧美不卡三区| 久久久久看片| 亚洲韩日在线| 亚洲免费在线播放| 欧美精品1区| 有码中文亚洲精品| 欧美一区二区三区四区在线| 欧美日韩国产片| 国产日韩亚洲| 亚洲在线观看| 欧美日韩中文在线| 亚洲国产精品久久人人爱蜜臀| 亚洲欧美一区二区视频| 亚洲精品一区在线观看| 免费欧美高清视频| 亚洲精品小视频| 欧美激情第二页| 久久精品中文字幕免费mv| 国产精品私拍pans大尺度在线| 夜夜精品视频| 日韩午夜在线电影| 欧美日韩在线视频首页| 99av国产精品欲麻豆| 亚洲第一偷拍| 欧美国产亚洲精品久久久8v| 亚洲成色www久久网站| 免费在线播放第一区高清av| 欧美中在线观看| 加勒比av一区二区| 免费成人av在线看| 欧美成人亚洲| 一本久久a久久免费精品不卡| 亚洲精品一区二区三区婷婷月| 欧美视频国产精品| 欧美在线影院| 久久精品人人做人人爽电影蜜月| 伊人男人综合视频网| 欧美二区在线播放| 欧美午夜精品久久久久久孕妇| 欧美一区二区视频免费观看| 久久久国产亚洲精品| 亚洲黄色尤物视频| 一区二区三区福利| 国产一区二区你懂的| 欧美aⅴ99久久黑人专区| 欧美激情一区二区三级高清视频| 亚洲亚洲精品在线观看| 欧美一区二区三区啪啪| 亚洲高清三级视频| 一区二区激情视频| 激情综合色综合久久| 亚洲国产天堂网精品网站| 欧美亚洲不卡| 免费在线播放第一区高清av| 欧美三级在线| 免费在线看一区| 欧美性猛交视频| 美国十次了思思久久精品导航| 欧美精品在线免费播放| 久久久蜜臀国产一区二区| 欧美精品自拍偷拍动漫精品| 欧美中文日韩| 欧美日韩国产探花| 另类亚洲自拍| 国产精品免费区二区三区观看| 欧美国产一区二区三区激情无套| 国产精品男人爽免费视频1| 免费观看在线综合色| 国产精品一区二区三区成人| 欧美激情亚洲一区| 国产午夜精品美女视频明星a级| 欧美激情中文不卡| 国产亚洲欧美一级| 一区二区三区欧美激情| 在线日韩av| 亚洲尤物在线视频观看| 中日韩美女免费视频网站在线观看| 国产亚洲欧美中文| 一区二区三区高清不卡| 中文欧美字幕免费| 最新中文字幕一区二区三区| 亚洲欧美一区二区精品久久久| 亚洲精品免费网站| 久久精品天堂| 久久久人成影片一区二区三区| 国产精品成人av性教育| 亚洲福利专区| 亚洲电影欧美电影有声小说| 性欧美办公室18xxxxhd| 午夜国产精品影院在线观看 | 亚洲国产影院| 亚洲国产精品第一区二区| 久久超碰97人人做人人爱| 亚洲欧美日韩精品久久| 欧美精品亚洲| 91久久久在线| 亚洲精品永久免费精品| 欧美二区在线观看| 亚洲激情视频网站| 日韩亚洲不卡在线| 欧美日韩大片| 一本色道综合亚洲| 亚洲欧美亚洲| 国产免费成人在线视频| 小嫩嫩精品导航| 老司机久久99久久精品播放免费 | 欧美三日本三级少妇三2023| 亚洲美女视频网| 亚洲一区二区三区精品在线观看| 欧美日韩一区国产| 亚洲小说欧美另类社区| 亚洲欧美中日韩| 国产一区二区丝袜高跟鞋图片| 欧美在线免费播放| 欧美电影美腿模特1979在线看| 亚洲人成久久| 欧美视频一区在线| 亚洲免费视频网站| 老色鬼久久亚洲一区二区| 亚洲精品国精品久久99热| 欧美日韩精品二区第二页| 亚洲无吗在线| 久久综合狠狠| aa国产精品| 国产目拍亚洲精品99久久精品| 久久国产主播| 亚洲人成网站在线观看播放| 亚洲尤物精选| 在线观看成人av电影| 欧美日韩国产美女| 久久精品首页| 夜夜夜久久久| 蜜臀久久99精品久久久画质超高清 | 日韩一级黄色大片| 久久九九久精品国产免费直播| 亚洲第一精品夜夜躁人人爽 | 一本色道久久综合狠狠躁篇怎么玩| 国产精品成人一区二区艾草| 久久精品国产成人| 欧美乱妇高清无乱码| 亚洲综合久久久久| 欧美黄色成人网| 欧美中文在线视频| 亚洲经典一区| 欧美成人综合| 午夜激情一区| 亚洲国产精品久久人人爱蜜臀| 国产精品xnxxcom| 免费观看成人鲁鲁鲁鲁鲁视频 | 国产精品私拍pans大尺度在线 | 久久久久国色av免费观看性色| 99成人精品| 免费人成网站在线观看欧美高清| 亚洲午夜未删减在线观看| 亚洲成色精品| 狠狠狠色丁香婷婷综合激情| 欧美日韩精品一区二区| 久久伊人亚洲| 亚洲欧美日韩天堂一区二区| 欧美黄色一区二区| 榴莲视频成人在线观看| 欧美一区三区二区在线观看| 99精品国产福利在线观看免费| 在线观看91久久久久久| 国产亚洲人成网站在线观看| 国产精品成人在线| 欧美日本亚洲视频| 欧美高清成人| 久久这里只精品最新地址| 性久久久久久久久久久久| 亚洲深夜影院| 国产精品99久久久久久久久 | 欧美日韩在线观看一区二区三区| 麻豆精品视频在线| 久久九九国产精品怡红院| 香蕉久久夜色| 亚洲欧美日韩精品综合在线观看| 一区二区欧美日韩| av成人免费在线观看| 亚洲全黄一级网站| 亚洲欧洲精品一区二区三区不卡 | 黄色成人在线观看| 国内自拍一区| 一区二区三区自拍| 精品51国产黑色丝袜高跟鞋| 国产小视频国产精品| 国产一区二区黄色| 国产亚洲视频在线| 国产一区二区在线免费观看| 国产精品一二三四区| 国产精品一区二区久久久| 国产精品自拍网站| 国产视频在线观看一区| 国产亚洲一区精品| 伊人久久av导航| 亚洲人成在线免费观看| av不卡在线观看| 亚洲综合精品自拍| 欧美一区亚洲二区|