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

糯米

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

POJ 1951 Extra Krunch 惡心題

注意:
符號前面不能有空格。
開頭末尾不能有空格。

#include <stdio.h>

char set[256], src[256], dst[256];

int main()
{
    
char *s, *d, blank;

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

    
set['A'= set['E'= set['I'= set['O'= set['U'= 1;
    fgets(src, 
sizeof(src), stdin);
    dst[
0= ' ';
    d 
= dst + 1;
    s 
= src;
    
while (*s) {
        
if (*>= 'A' && *<= 'Z'{
            
if (!set[*s])
                
*d++ = *s;
            
set[*s] = 1;
        }
 else if (*== ' '{
            
if (d[-1!= ' ')
                
*d++ = ' ';
        }
 else {
            
if (d[-1== ' ')
                d
--;
            
*d++ = *s;
        }

        s
++;
    }

    
while (*--== ' ');
    
*= 0;
    printf(
"%s\n", dst + 1);

    
return 0;
}


posted @ 2010-03-14 01:10 糯米 閱讀(470) | 評論 (0)編輯 收藏

POJ 1258 Agri-Net 最小生成樹

樸素的Prim!

#include <stdio.h>

int map[128][128], set[128], N, tm;

__inline 
int prim()
{
    
int sum, i, j, k, min_val, min_idx;

    tm
++;
    
set[0= tm;
    sum 
= 0;
    
for (i = 0; i < N - 1; i++{
        min_val 
= 0x7fffffff;
        
for (j = 0; j < N; j++{
            
if (set[j] != tm)
                
continue;
            
for (k = 0; k < N; k++{
                
if (set[k] != tm && map[j][k] < min_val) {
                    min_val 
= map[j][k];
                    min_idx 
= k;
                }

            }

        }

        sum 
+= min_val;
        
set[min_idx] = tm;
    }


    
return sum;
}


int main()
{
    
int i, j;

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

    
while (scanf("%d"&N) != EOF) {
        
for (i = 0; i < N; i++)
            
for (j = 0; j < N; j++)
                scanf(
"%d"&map[i][j]);
        printf(
"%d\n", prim());
    }


    
return 0;
}

posted @ 2010-03-14 00:42 糯米 閱讀(143) | 評論 (0)編輯 收藏

POJ 2387 Til the Cows Come Home 單源最短路徑

用的SPFA算法。

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

#define MAX_N 1024
#define MAX_T 2048

struct edge_node {
    
int idx, len;
    
struct edge_node *next;
}
;
struct edge_node edges[MAX_T * 2], *map[MAX_N];
int N, T, D[MAX_N], queue[MAX_N], qh, qt, visited[MAX_N];

__inline 
void add_edge(struct edge_node *e, int from, int to, int len)
{
    e
->idx = to;
    e
->len = len;
    e
->next = map[from];
    map[from] 
= e;
}


int main()
{
    
int i, from, to, len;
    
struct edge_node *e;

    freopen(
"e:\\test\\in.txt""r", stdin);
        
    scanf(
"%d%d"&T, &N);
    
for (i = 0; i < T * 2; i += 2{
        scanf(
"%d%d%d"&from, &to, &len);
        add_edge(
&edges[i], from, to, len);
        add_edge(
&edges[i + 1], to, from, len);
    }

    
    
for (i = 1; i <= N; i++)
        D[i] 
= 0x00ffffff;

    queue[
0= N;
    visited[N] 
= 1;
    D[N] 
= 0;
    qh 
= 0;
    qt 
= 1;
    
while (qh != qt) {
        i 
= queue[qh++];
        qh 
&= _countof(queue) - 1;
        visited[i] 
= 0;
        
for (e = map[i]; e; e = e->next) {
            
if (D[i] + e->len < D[e->idx]) {
                D[e
->idx] = D[i] + e->len;
                
if (!visited[e->idx]) {
                    visited[e
->idx] = 1;
                    queue[qt
++= e->idx;
                    qt 
&= _countof(queue) - 1;
                }

            }

        }

    }

    printf(
"%d\n", D[1]);

    
return 0;
}

posted @ 2010-03-14 00:21 糯米 閱讀(336) | 評論 (0)編輯 收藏

POJ 2389 Bull Math 高精度整數(shù)

注意:
要去掉前面的0再輸出。


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

struct node {
    
char arr[128];
    
int len;
}
;

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


__inline 
void add(struct node *a, struct node *b)
{
    
int i, val;

    
for (val = i = 0; i < max(a->len, b->len); i++{
        
if (i < a->len)
            val 
+= a->arr[i];
        
if (i < b->len)
            val 
+= b->arr[i];
        a
->arr[i] = val % 10;
        val 
/= 10;
    }

    
if (val)
        a
->arr[i++= val;
    a
->len = i;
}


__inline 
void mul_single(struct node *a, int val, int pad, struct node *c)
{
    
int i, r;

    
for (i = 0; i < pad; i++)
        c
->arr[i] = 0;
    c
->len = pad;
    
for (r = i = 0; i < a->len; i++{
        r 
+= a->arr[i] * val;
        c
->arr[c->len++= r % 10;
        r 
/= 10;
    }

    
if (r)
        c
->arr[c->len++= r;
}


__inline 
void mul(struct node *a, struct node *b, struct node *c)
{
    
struct node t;
    
int i;

    c
->len = 0;
    
for (i = 0; i < a->len; i++{
        mul_single(b, a
->arr[i], i, &t);
        add(c, 
&t);
    }

}


__inline 
void input(struct node *t)
{
    
char str[sizeof(t->arr)];
    
int i, len;

    scanf(
"%s", str);
    len 
= strlen(str);
    t
->len = 0;
    
for (i = len - 1; i >= 0; i--)
        t
->arr[t->len++= str[i] - '0';
}


__inline 
void output(struct node *t)
{
    
int i;

    
for (i = t->len - 1; i >= 0 && !t->arr[i]; i--);
    
if (i < 0{
        printf(
"0\n");
        
return ;
    }

    
for ( ; i >= 0; i--)
        putc(t
->arr[i] + '0', stdout);
    putc(
'\n', stdout);
}


int main()
{
    
struct node a, b, c;

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

    input(
&a);
    input(
&b);
    mul(
&a, &b, &c);
    output(
&c);

    
return 0;
}

posted @ 2010-03-14 00:08 糯米 閱讀(258) | 評論 (0)編輯 收藏

POJ 1988 Cube Stacking 并查集

紀念一下,跟我生日一樣的題目。
思路:
這題可以用并查集來做,也是挺取巧的。
每個??醋鍪且粋€集合,用一個數(shù)組記錄棧中元素離棧底的距離,一個數(shù)組記錄每個棧底元素對應(yīng)的棧頂?shù)脑亍?br>對于移動操作,只需要合并集合,然后更改棧頂元素數(shù)組就行了。

用了棧寫的路徑壓縮,代碼跑到230ms。不知道那些100ms是怎么搞出來的。。真的有什么神奇技巧嗎。

#include <stdio.h>

#define MAX_N 30032

int top[MAX_N];
struct set_node {
    
int parent, dis;
}
;
struct set_node set[MAX_N];

__inline 
int find(int idx)
{
    
static int stk[MAX_N], sp, i;

    
for (sp = 0set[idx].parent; sp++{
        stk[sp] 
= idx;
        idx 
= set[idx].parent;
    }

    
for (sp--; sp >= 0; sp--{
        i 
= stk[sp];
        
set[i].dis += set[set[i].parent].dis;
        
set[i].parent = idx;
    }


    
return idx;
}


int main()
{
    
int p, a, b;
    
char op[16];

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

    
for (a = 0; a < MAX_N; a++)
        top[a] 
= a;

    scanf(
"%d"&p);
    
while (p--{
        scanf(
"%s%d", op, &a);
        
if (op[0== 'M'{
            scanf(
"%d"&b);
            a 
= find(a);
            b 
= find(b);
            
set[a].parent = top[b];
            
set[a].dis = 1;
            top[b] 
= top[a];
        }
 else {
            find(a);
            printf(
"%d\n"set[a].dis);
        }

    }


    
return 0;
}

posted @ 2010-03-13 23:07 糯米 閱讀(244) | 評論 (0)編輯 收藏

POJ 2385 Apple Catching 動態(tài)規(guī)劃

思路:
由于W的值 <= 30,比較小,所以這題可以用動態(tài)規(guī)劃來做。
首先要把連續(xù)同一個數(shù)字一次處理。
dp[i] = {走了 i 次以后,得到的最大的蘋果數(shù)目}。這個數(shù)組的大小為 W。
走了奇數(shù)次以后,一定位于樹2下面。
走了偶數(shù)次以后,一定位于樹1下面。
假設(shè)當前是在第 t 時刻掉了 cnt 個蘋果下來。val 表示哪棵樹掉的蘋果,則執(zhí)行下面的操作更新數(shù)組就可以了。
    if (val == 1{
        
for (i = 0; i <= min(t, W); i += 2)
            dp[i] 
+= cnt;
        
for (i = 1; i <= min(t, W); i += 2
            dp[i 
+ 1= max(dp[i + 1], dp[i] + cnt);
    }
 else {
        
for (i = 1; i <= min(t, W); i += 2)
            dp[i] 
+= cnt;
        
for (i = 0; i <= min(t, W); i += 2)
            dp[i 
+ 1= max(dp[i + 1], dp[i] + cnt);
    }

轉(zhuǎn)移方程就是這個,還是挺簡單的。

因為數(shù)據(jù)弱,代碼 0ms ac了。

完整代碼:
#include <stdio.h>

int T, W, dp[35], 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 
void calc(int val, int cnt)
{
    
int i;

    
if (val == 1{
        
for (i = 0; i <= min(t, W); i += 2)
            dp[i] 
+= cnt;
        
for (i = 1; i <= min(t, W); i += 2
            dp[i 
+ 1= max(dp[i + 1], dp[i] + cnt);
    }
 else {
        
for (i = 1; i <= min(t, W); i += 2)
            dp[i] 
+= cnt;
        
for (i = 0; i <= min(t, W); i += 2)
            dp[i 
+ 1= max(dp[i + 1], dp[i] + cnt);
    }

    t
++;
}


int main()
{
    
int i, pre, cnt;

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

    scanf(
"%d%d%d"&T, &W, &pre);
    cnt 
= 1;
    
while (--T) {
        scanf(
"%d"&i);
        
if (i == pre) {
            cnt
++;
            
continue;
        }

        calc(pre, cnt);
        cnt 
= 1;
        pre 
= i;
    }

    calc(pre, cnt);

    cnt 
= 0;
    
for (i = 0; i <= W; i++)
        cnt 
= max(cnt, dp[i]);
    printf(
"%d\n", cnt);

    
return 0;
}

posted @ 2010-03-13 20:36 糯米 閱讀(793) | 評論 (1)編輯 收藏

POJ 2010 Moo University - Financial Aid 堆

昨天做了2008,今天準備做2009。但是看了下題目,發(fā)現(xiàn)爆難,才100個人過。
覺得這種題還是別碰了,等以后牛逼了再做。
于是跳過2008年,直接到2010年了!呵呵。

這題還是算容易的,比較適合自己水平發(fā)揮,用堆來做,速度尚可 188ms 。


思路:
先把牛按照score排序一下,然后從后往前找,把每一頭牛當做是位于中間的那頭牛。
那現(xiàn)在就是求:
該頭牛前面的所有牛中,哪 (N - 1) / 2 頭牛aid值的和最小。
該頭牛后面的所有牛中,哪 (N - 1) / 2 頭牛aid值的和最小。
這就是典型的用堆可以解決的問題了。

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

#define MAX_C 100032
#define MAX_N 20032

struct node {
    
int score, aid;
}
;
struct node in[MAX_C];
int N, C, F;
int after[MAX_C], before[MAX_C];
int heap_size, heap_sum, heap[MAX_N];

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


__inline 
void shift_down(int idx)
{
    
int val = heap[idx];
    
while (1{
        idx 
*= 2;
        
if (idx > heap_size)
            
break ;
        
if (idx + 1 <= heap_size && heap[idx + 1> heap[idx])
            idx
++;
        
if (heap[idx] <= val)
            
break;
        heap[idx 
/ 2= heap[idx];
    }

    heap[idx 
/ 2= val;
}


__inline 
int heap_init(int start, int len)
{
    
int i;

    heap_sum 
= 0;
    
for (i = start; i < start + len; i++{
        heap[i 
- start + 1= in[i].aid;
        heap_sum 
+= in[i].aid;
    }

    
for (i = heap_size / 2; i >= 1; i--
        shift_down(i);
    
return heap_sum;
}


__inline 
int heap_update(int aid)
{
    
if (aid < heap[1]) {
        heap_sum 
-= heap[1- aid;
        heap[
1= aid;
        shift_down(
1);
    }

    
return heap_sum;
}


int main()
{
    
int i;

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

    scanf(
"%d%d%d"&N, &C, &F);
    
for (i = 0; i < C; i++)
        scanf(
"%d%d"&in[i].score, &in[i].aid);
    qsort(
in, C, sizeof(in[0]), cmp);
    
    heap_size 
= (N - 1/ 2;
    before[heap_size 
- 1= heap_init(0, heap_size);
    
for (i = heap_size; i < C; i++
        before[i] 
= heap_update(in[i].aid);
    after[C 
- heap_size] = heap_init(C - heap_size, heap_size);
    
for (i = C - heap_size - 1; i >= 0; i--)
        after[i] 
= heap_update(in[i].aid);
    
for (i = C - heap_size - 1; i - heap_size >= 0; i--{
        
if (in[i].aid + before[i - 1+ after[i + 1<= F)
            
break;
    }

    printf(
"%d\n", i - heap_size < 0 ? -1 : in[i].score);

    
return 0;
}

posted @ 2010-03-13 19:25 糯米 閱讀(628) | 評論 (0)編輯 收藏

POJ 2008 Moo University - Team Tryouts 牛題

思路:
這道題目的解法非常牛逼。剛一看題就知道做不出來了,所以就在這個博客
http://hi.baidu.com/findthegateopen/
找到了一份解題報告。下面的內(nèi)容都是基于原作者的代碼參考出來的。感謝原作者的代碼!

樸素的做法是O(N^3)的復(fù)雜度。usaco官方的算法是O(N^2)的復(fù)雜度。原作者的代碼跑了不到100ms,應(yīng)該說是相當不錯了!

首先,要把所有牛放到坐標系上來表示。目的,就是求出包含最多點的直角三角形。
直角三角形的兩條直角邊上都必須有點,也就是一組牛中的具有最小height的點和具有最小width的點。
直角三角形的邊長也是固定的,cw = C/B,ch = C/A。這個還好說,從那個限制條件可以推出來的。初中都學過,呵呵。



Step1:求出經(jīng)過一個點的所有可能存在的三角形。
其實也就是在該點下方的灰色區(qū)域中選擇點來確定一個三角形。




Step2:求出經(jīng)過一個點的所有可能存在的三角形中,最多包含的點數(shù)。
解法相當精妙。

求一個三角形內(nèi)的點數(shù),可以分解為一個矩形內(nèi)的點數(shù)減去一個梯形內(nèi)的點數(shù)。

用這個方法,求出最上面那個三角形的點數(shù)之后。可以繼續(xù)遞推得到下面其他三角形的點數(shù)。

也就是加上一個矩形,再減去一個梯形。
如果點按照高度排序以后,那么后面矩形里的點一定是后出現(xiàn)的。這樣就可以做到隨時增加矩形。
但是減去梯形這個操作,就難理解一點,把點按照A*H + B*W來排序,就能保證后面梯形里的點一定是后出現(xiàn)的。

可見,A*H + B*W 值的大小決定了他們的位置分布。完全可以保證這個順序。
這種數(shù)形結(jié)合的方法實在是相當精妙!

那我們就可以首先求出第一個三角形的點數(shù),然后接下來的三角形就根據(jù)減去梯形,和增加矩形的操作,來做小的調(diào)整就可以了。
在代碼里面的表現(xiàn)形式就是維護兩個指針,不斷向后移,中間剔除橫坐標不在范圍之內(nèi)的點。
這個操作的復(fù)雜度是O(N)。
對所有點執(zhí)行一次,故算法的復(fù)雜度是O(N^2)。


代碼:
/*
 *    本代碼參考自 
http://hi.baidu.com/findthegateopen/
 *    中的代碼,感謝原作者的代碼!
 
*/

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

#define MAX_N 1024

struct node {
    
int w, h, k;
}
;

struct node in[MAX_N], *sort_h[MAX_N], *sort_k[MAX_N];
int A, B, C, N, ch, cw, ans, box, slash, cnt;

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


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


__inline 
void update(int h, int w)
{
    
int k;

    
for ( ; box < N && sort_h[box]->>= h; box++)
        
if (sort_h[box]->>= w && sort_h[box]-><= w + cw)
            cnt
++;
    k 
= A * h + B * w + C;
    
for ( ; slash < N && sort_k[slash]->> k; slash++)
        
if (sort_k[slash]->>= w && sort_k[slash]-><= w + cw)
            cnt
--;
    
if (cnt > ans)
        ans 
= cnt;
}


__inline 
void calc(int i)
{
    
int h, w;

    box 
= 0;
    slash 
= 0;
    cnt 
= 0;
    h 
= sort_h[i]->h;
    w 
= sort_h[i]->w;
    
for ( ; i < N && sort_h[i]->>= h - ch; i++
        
if (sort_h[i]->>= w && sort_h[i]-><= w + cw)
            update(sort_h[i]
->h, w);
}


int main()
{
    
int i;

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

    scanf(
"%d%d%d%d"&N, &A, &B, &C);
    cw 
= C/B;
    ch 
= C/A;
    
for (i = 0; i < N; i++{
        scanf(
"%d%d"&in[i].h, &in[i].w);
        
in[i].k = A * in[i].h + B * in[i].w;
        sort_h[i] 
= &in[i];
        sort_k[i] 
= &in[i];
    }

    qsort(sort_h, N, 
sizeof(sort_h[0]), cmp_h);
    qsort(sort_k, N, 
sizeof(sort_k[0]), cmp_k);

    
for (i = 0; i < N; i++)
        calc(i);
    printf(
"%d\n", ans);

    
return 0;
}



posted @ 2010-03-12 20:07 糯米 閱讀(1161) | 評論 (0)編輯 收藏

POJ 1985 Cow Marathon 動態(tài)規(guī)劃/深搜

思路:
1985也可以用1986的程序改改就行了。
但是覺得不用什么算法也是可以做出1985的。

想了一下,發(fā)現(xiàn):
路徑的最大值一定存在于兩個葉子節(jié)點中。
如果只有一個葉子,那整個樹就是一條直線了。

由于我們只是考慮葉子節(jié)點。那么對于每一個非葉子節(jié)點,我們只需要找出它下面的所有節(jié)點中,離它最遠的兩個葉子就行了。
這兩個葉子節(jié)點的距離也就有可能成為答案。
對于每個點,我們只需要保存一個值,就是該點下面的所有節(jié)點中,距離它最遠的一個葉子節(jié)點,和它的距離。
對于每個點,遍歷完它的孩子之后,就知道“離它最遠的兩個葉子的距離”了。

注意:
代碼里需要處理“一條直線連著幾個點”這種情況,將這樣的幾個點縮成一個點比較好。不做這個處理一定會爆棧。最后一個數(shù)據(jù)是一條直線。(陰險)

這份代碼跑了141MS,還算可以,呵呵。應(yīng)該比直接用lca要快。

#include <stdio.h>

#define MAX_N 40032

struct edge_node {
    
struct edge_node *next;
    
int idx, len;
}
;
struct edge_node edges[MAX_N*2];

struct tree_node {
    
struct edge_node *edge;
    
int visited;
}
;
struct tree_node tree[MAX_N];
int max_val;

__inline 
void add_edge(int idx, int a, int b, int len)
{
    
struct edge_node *= &edges[idx];
    e
->idx = b;
    e
->len = len;
    e
->next = tree[a].edge;
    tree[a].edge 
= e;
}


int dfs(int idx)
{
    
struct edge_node *e;
    
int sum, cnt, arr[2], r;

    sum 
= 0;
    
while (1{
        tree[idx].visited 
= 1;
        cnt 
= 0;
        
for (e = tree[idx].edge; e; e = e->next)
            cnt 
+= !tree[e->idx].visited;
        
if (!cnt)
            
return sum;
        
if (cnt > 1)
            
break;
        
for (e = tree[idx].edge; tree[e->idx].visited; e = e->next);
        sum 
+= e->len;
        idx 
= e->idx;
    }


    arr[
0= arr[1= 0;
    
for (e = tree[idx].edge; e; e = e->next) {
        
if (tree[e->idx].visited)
            
continue;
        r 
= dfs(e->idx) + e->len;
        
if (r >= arr[1]) {
            arr[
0= arr[1];
            arr[
1= r;
        }
 else if (r >= arr[0])
            arr[
0= r;
    }


    r 
= arr[0+ arr[1];
    
if (r > max_val)
        max_val 
= r;

    
return arr[1+ sum;
}


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

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

    scanf(
"%d%d"&n, &m);
    
for (i = 0; i < m*2; i += 2{
        scanf(
"%d%d%d%s"&a, &b, &len, str);
        add_edge(i, a, b, len);
        add_edge(i 
+ 1, b, a, len);
    }


    
for (i = 1; i <= n; i++{
        
if (tree[i].visited)
            
continue;
        a 
= dfs(i);
        
if (a > max_val)
            max_val 
= a;
    }

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

    
return 0;
}



posted @ 2010-03-10 19:14 糯米 閱讀(668) | 評論 (0)編輯 收藏

POJ 1986 Distance Queries 最近公共祖先

     摘要: 以前沒見過“最近公共祖先”這一類的題啊。長見識了,呵呵。解法基本上就是http://m.shnenglu.com/varg-vikernes/archive/2010/03/10/109355.html這篇文章里面提到的兩種方法。兩種方法的解法都非常精妙!最后程序?qū)懗鰜恚篢arjan 3372K 219MSDFS+RMQ 7992K 329MS代碼Tarjan:...  閱讀全文

posted @ 2010-03-10 16:14 糯米 閱讀(1300) | 評論 (0)編輯 收藏

僅列出標題
共17頁: First 9 10 11 12 13 14 15 16 17 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲欧美日韩一区二区三区在线| 亚洲精品一区二| 久久久久久久久久久久久久一区 | 亚洲精品亚洲人成人网| 午夜欧美大片免费观看 | 激情文学一区| 亚洲中午字幕| 欧美激情视频免费观看| 久久久福利视频| 亚洲精品美女久久7777777| 欧美日韩国产不卡| 久久午夜电影网| 国产精品视频免费在线观看| 99热免费精品在线观看| 欧美成人亚洲成人| 久久久www| 国产精品久久久久一区二区三区 | 亚洲综合欧美日韩| 99综合精品| 亚洲电影免费| 欧美日韩国产一级片| 亚洲欧美日韩国产综合在线| 欧美日韩卡一卡二| 一区二区三区四区五区在线| 亚洲精品一二三区| 欧美伦理在线观看| 亚洲私人影吧| 亚洲欧美高清| 午夜激情一区| 国产伪娘ts一区| 国产精品视频精品视频| 午夜精品三级视频福利| 亚洲一区二区三区777| 91久久嫩草影院一区二区| 亚洲一区二区三| 一区二区视频免费在线观看| 牛夜精品久久久久久久99黑人| 久久久久久高潮国产精品视| 亚洲欧洲视频| 亚洲影视在线播放| 影音先锋久久久| 亚洲国产成人精品女人久久久 | 欧美视频在线观看| 亚洲欧美在线一区| 久久久久久一区| 日韩视频永久免费观看| 99视频精品免费观看| 国产日本欧美一区二区| 欧美成人午夜免费视在线看片| 欧美日韩裸体免费视频| 久久爱www久久做| 欧美大片第1页| 欧美在线视频一区二区| 老牛嫩草一区二区三区日本 | 久久精品首页| 欧美sm极限捆绑bd| 欧美一区二区视频在线观看2020| 久久久免费观看视频| 欧美激情精品久久久久久大尺度| 久久狠狠亚洲综合| 99视频在线观看一区三区| 国产欧美一区二区精品性| 欧美成人一品| 国产伦精品免费视频| 欧美激情亚洲自拍| 国产精品羞羞答答xxdd| 99热精品在线| 久久全国免费视频| 亚洲欧美日韩一区| 欧美成人精品| 久久人人超碰| 国产日韩欧美不卡| 日韩视频一区二区在线观看 | 欧美国产日韩xxxxx| 亚洲影视在线播放| 免费在线播放第一区高清av| 久久精品国产精品亚洲综合| 国产精品高精视频免费| 91久久线看在观草草青青| 国产综合在线看| 亚洲一区二区三区四区五区黄 | 欧美aaa级| 国产欧美日韩综合| 亚洲精品一区二区三区婷婷月| 久久精品国语| 国产精品美女www爽爽爽视频| 亚洲黄页一区| 亚洲大片精品永久免费| 老色鬼久久亚洲一区二区| 国产精品视频免费| 一本色道久久88综合日韩精品 | 91久久精品美女高潮| 久久精品国内一区二区三区| 欧美一区二区三区啪啪| 国产精品每日更新| 亚洲激情第一页| 亚洲日韩中文字幕在线播放| 免费看黄裸体一级大秀欧美| 麻豆成人小视频| 黄网站免费久久| 久久久久久久一区| 久热精品在线视频| 国产精品任我爽爆在线播放| 亚洲视频一区在线| 亚洲欧美综合精品久久成人| 国产精品永久免费在线| 香蕉久久夜色| 老妇喷水一区二区三区| 亚洲第一页中文字幕| 欧美电影电视剧在线观看| 亚洲日本免费| 亚洲一本视频| 国产精品一区二区在线观看| 欧美一区二区视频观看视频| 蜜桃av噜噜一区| 亚洲精品乱码久久久久久按摩观| 欧美精品一区二区三区高清aⅴ| 亚洲欧洲中文日韩久久av乱码| 99在线|亚洲一区二区| 欧美午夜视频在线观看| 午夜国产不卡在线观看视频| 久久久久国产免费免费| 亚洲丰满在线| 欧美日韩免费高清一区色橹橹| 在线视频亚洲欧美| 久久久久一区二区| 亚洲精品乱码久久久久久| 欧美系列精品| 久久精品综合一区| 亚洲精品免费在线播放| 性欧美18~19sex高清播放| 在线不卡中文字幕| 欧美涩涩视频| 久久久一区二区| 一片黄亚洲嫩模| 美女久久一区| 亚洲自拍高清| 亚洲激情综合| 国产精品国产三级国产aⅴ无密码| 性感少妇一区| 亚洲久久成人| 麻豆成人综合网| 亚洲一区在线看| 亚洲国产欧美精品| 国产精品热久久久久夜色精品三区| 久久免费视频在线观看| 一区二区三区日韩精品视频| 久久伊人精品天天| 亚洲一区二区三区在线看| 亚洲黄色免费| 国产综合精品| 国产精品视频自拍| 亚洲国产精品传媒在线观看| 在线成人免费观看| 国产精品久久久久久久久免费| 老色鬼精品视频在线观看播放| 亚洲尤物在线视频观看| 亚洲黄色天堂| 美国成人直播| 欧美一区视频在线| 亚洲一区二区欧美| 9i看片成人免费高清| 一区免费观看| 国产欧美日韩一区二区三区| 欧美日韩国产小视频| 美日韩精品视频免费看| 久久久精品动漫| 久久精品av麻豆的观看方式| 亚洲性夜色噜噜噜7777| 夜夜精品视频一区二区| 亚洲日本一区二区| 亚洲国产精品嫩草影院| 欧美好骚综合网| 欧美国产精品日韩| 欧美成年人视频网站欧美| 久久亚洲一区| 亚洲东热激情| 精品av久久久久电影| 国产日韩一区二区三区| 国产精品视频免费一区| 国产精品国产三级国产专播精品人| 欧美黄免费看| 欧美经典一区二区三区| 免费成人在线观看视频| 久久综合久久久久88| 久久久在线视频| 久久精品亚洲国产奇米99| 久久久久se| 亚洲国产成人在线视频| 亚洲高清不卡| 亚洲成人在线免费| 免费黄网站欧美| 久久乐国产精品| 免费日韩视频| 欧美日韩高清免费| 麻豆精品视频在线观看视频| 香蕉尹人综合在线观看| 久久久精品一品道一区| 欧美在线观看一二区| 免费一级欧美在线大片|