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

隨筆 - 4  文章 - 46  trackbacks - 0
<2013年7月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

常用鏈接

留言簿(4)

隨筆分類

隨筆檔案

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

前言:


這篇文章發表于http://e-maxx.ru/algo/inclusion_exclusion_principle,原文是俄語的。由于文章確實很實用,而且鑒于國內俄文資料翻譯的匱乏,我下決心將其翻譯之。由于俄語對我來說如同亂碼,而用Google直接翻譯中文的話又變得面目全非,所以只能先用Google翻譯成英語,再反復讀,慢慢理解英語的意思,實在是弄得我頭昏腦脹。因此在理解文章意思然后翻譯成中文的時候,中文都不知道如何表述了。而又由于我對容斥原理知識的匱乏,很可能有些地方我的表述是錯誤的。

如果你對這篇文章有什么不理解的地方,可以去網站論壇的Feedback版(http://e-maxx.ru/forum/viewforum.php?id=6)發問。不過這可是俄語的,所以直接問我吧:)

QQ:573525822,E-mail: 573525822@qq.com 或 veecci@gmail.com

pdf版本:/Files/vici/inclusion-exclusion.pdf

UPD 9.6:感謝原作者的回復,一些錯誤已經被修正了。


容斥原理

     原作:e-maxx(Russia)   發表于 2011.8.25

翻譯:vici

對容斥原理的描述

容斥原理是一種重要的組合數學方法,可以讓你求解任意大小的集合,或者計算復合事件的概率。

描述

       容斥原理可以描述如下:

         要計算幾個集合并集的大小,我們要先將所有單個集合的大小計算出來,然后減去所有兩個集合相交的部分,再加回所有三個集合相交的部分,再減去所有四個集合相交的部分,依此類推,一直計算到所有集合相交的部分。

關于集合的原理公式

      上述描述的公式形式可以表示如下:
       

        

 

      它可以寫得更簡潔一些,我們將B作為所有Ai的集合,那么容斥原理就變成了:

        

         這個公式是由 De Moivre (Abraham de Moivre)提出的。

關于維恩圖的原理

       用維恩圖來表示集合ABC

       

         那么的面積就是集合ABC各自面積之和減去  的面積,再加上的面積。


         由此,我們也可以解決n個集合求并的問題。

關于概率論的原理

       設事件 代表發生某些事件的概率(即發生其中至少一個事件的概率),則:

  

         這個公式也可以用B代表Ai的集合:


容斥原理的證明

       我們要證明下面的等式:

       

         其中B代表全部Ai的集合

         我們需要證明在Ai集合中的任意元素,都由右邊的算式被正好加上了一次(注意如果是不在Ai集合中的元素,是不會出現在右邊的算式中的)。

         假設有一任意元素在kAi集合中(k>=1),我們來驗證這個元素正好被加了一次:

         size(C)=1時,元素x被加了k次。

         size(C)=2時,元素x被減了C(2,k)次,因為在k個集合中選擇2個,其中都包含x

         size(C)=3時,元素x被加了C(3,k)次。

         ……

         size(C)=k時,元素x被加/減了C(k,k)次,符號由sign(-1)^(k-1)決定。

         size(C)>k時,元素x不被考慮。

         然后我們來計算所有組合數的和。

         

         由二項式定理,我們可以將它變成

    

 

         我們把x取為1,這時表示1-T(其中Tx被加的總次數),所以,證明完畢。

對于實際問題的應用

       容斥原理的理論需要通過例子才能很好的理解。

         首先,我們用三個簡單的例子來闡釋這個理論。然后會討論一些復雜問題,試看如何用容斥原理來解決它們。

         其中的“尋找路徑數”是一個特殊的例子,它反映了容斥問題有時可以在多項式級復雜度內解決,不一定需要指數級。

一個簡單的排列問題

       09的數字組成排列,要求第一個數大于1,最后一個數小于8,一共有多少種排列?

         我們可以來計算它的逆問題,即第一個元素<=1或者最后一個元素>=8的情況。

         我們設第一個元素<=1時有X組排列,最后一個元素>=8時有Y組排列。那么通過容斥原理來解決就可以寫成:

       

         經過簡單的組合運算,我們得到了結果:

         

         然后被總的排列數10!減,就是最終的答案了。

(0,1,2)序列問題

       長度為n的由數字012組成的序列,要求每個數字至少出現1次,這樣的序列有多少種?

         同樣的,我們轉向它的逆問題。也就是不出現這些數字的序列 不出現其中某些數字的序列。

         我們定義Ai(i=0…2)表示不出現數字i的序列數,那么由容斥原理,我們得到該逆問題的結果為:


           可以發現每個Ai的值都為2^n(因為這些序列中只能包含兩種數字)。而所有的兩兩組合1(它們只包含1種數字)。最后,三個集合的交集為0。(因為它不包含數字,所以不存在)

        要記得我們解決的是它的逆問題,所以要用總數減掉,得到最終結果:

         

方程整數解問題

       給出一個方程:

       

         其中

         求這個方程的整數解有多少組。

         我們先不去理會xi<=8的條件,來考慮所有正整數解的情況。這個很容易用組合數來求解,我們要把20個元素分成6組,也就是添加5塊“夾板”,然后在25個位置中找5塊“夾板”的位置。

         

         然后通過容斥原理來討論它的逆問題,也就是x>=9時的解。

         我們定義Akxk>=9并且其他xi>=0時的集合,同樣我們用上面的添加“夾板”法來計算Ak的大小,因為有9個位置已經被xk所利用了,所以:

         

         然后計算兩個這樣的集合AkAp的交集:

         

         因為所有x的和不能超過20,所以三個或三個以上這樣的集合時是不能同時出現的,它們的交集都為0。最后我們用總數剪掉用容斥原理所求逆問題的答案,就得到了最終結果:

         

求指定區間內與n互素的數的個數:

       給出整數nr。求區間[1;r]中與n互素的數的個數。

         去解決它的逆問題,求不與n互素的數的個數。

         考慮n的所有素因子pi(i=1…k)

         [1;r]中有多少數能被pi整除呢?它就是:

       

         然而,如果我們單純將所有結果相加,會得到錯誤答案。有些數可能被統計多次(被好幾個素因子整除)。所以,我們要運用容斥原理來解決。

         我們可以用2^k的算法求出所有的pi組合,然后計算每種組合的pi乘積,通過容斥原理來對結果進行加減處理。

         關于此問題的最終實現:

int solve (int n, int r) {
        vector<int> p;
        for (int i=2; i*i<=n; ++i)
               if (n % i == 0) {
                       p.push_back (i);
                       while (n % i == 0)
                               n /= i;
               }
        if (n > 1)
               p.push_back (n);
 
        int sum = 0;
        for (int msk=1; msk<(1<<p.size()); ++msk) {
               int mult = 1,
                       bits = 0;
               for (int i=0; i<(int)p.size(); ++i)
                       if (msk & (1<<i)) {
                               ++bits;
                               mult *= p[i];
                       }
 
               int cur = r / mult;
               if (bits % 2 == 1)
                       sum += cur;
               else
                       sum -= cur;
        }
 
        return r - sum;
}

算法的復雜度為 

求在給定區間內,能被給定集合至少一個數整除的數個數

       給出n個整數ai和整數r。求在區間[1;r]中,至少能被一個ai整除的數有多少。

         解決此題的思路和上題差不多,計算ai所能組成的各種集合(這里將集合中ai的最小公倍數作為除數)在區間中滿足的數的個數,然后利用容斥原理實現加減。

         此題中實現所有集合的枚舉,需要2^n的復雜度,求解lcm需要O(nlogr)的復雜度。

能滿足一定數目匹配的字符串的個數問題

       給出n個匹配串,它們長度相同,其中有一些’?’表示待匹配的字母。然后給出一個整數k,求能正好匹配k個匹配串的字符串的個數。更進一步,求至少匹配k個匹配串的字符串的個數。

         首先我們會發現,我們很容易找到能匹配所有匹配串的字符串。只需要對比所有匹配串,去在每一列中找出現的字母(或者這一列全是’?’,或者這一列出現了唯一的字母,否則這樣的字符串就存在),最后所有字母組成的單詞即為所求。

         現在我們來學習如何解決第一個問題:能正好匹配k個匹配串的字符串。

         我們在n個匹配串中選出k個,作為集合X,統計滿足集合X中匹配的字符串數。求解這個問題時應用容斥原理,對X的所有超集進行運算,得到每個X集合的結果:

       

         此處f(Y)代表滿足匹配集合Y的字符串數。

         如果我們將所有的ans(X)相加,就可以得到最終結果:

         

         這樣,就得到了一個復雜度的解法。

         這個算法可以作一些改進,因為在求解ans(X)時有些Y集合是重復的。

         回到利用容斥原理公式可以發現,當選定一個Y時,所有 X的結果都是相同的,其符號都為。所以可以用如下公式求解:

         

         這樣就得到了一個復雜度的解法。

         現在我們來求解第二個問題:能滿足至少k個匹配的字符串有多少個。

         顯然的,我們可以用問題一的方法來計算滿足kn的所有結果。問題一的結論依然成立,不同之處在于這個問題中的X不是大小都為k的,而是>=k的所有集合。

         如此進行計算,最后將f(Y)作為另一個因子:將所有的ans做和,有點類似二項式展開:


在《具體數學》( Graham, Knuth, Patashnik. "Concrete Mathematics" [1998] )中,介紹了一個著名的關于二項式系數的公式:


根據這個公式,可以將前面的結果進行化簡:


那么,對于這個問題,我們也得到了一個的解法:


路徑的數目問題

       在一個方格陣中,有k個格子是不可穿越的墻。一開始在格子(1,1)(最左下角的格子)中有一個機器人。這個機器人只能向上或向右行進,最后它將到達位于格子(n,m)的籠子里,其間不能經過障礙物格子。求一共有多少種路線可以到達終點。

         為了方便區分所有障礙物格子,我們建立坐標系,用(x,y)表示格子的坐標。

         首先我們考慮沒有障礙物的時候:也就是如何求從一個點到另一個點的路徑數。如果從一個點在一個方向要走x個格子,在另一個方向要走y個格子,那么通過簡單的組合原理可以得知結果為:

         

         現在來考慮有障礙物時的情況,我們可以利用容斥原理:求出至少經過一個障礙物時的路徑數。

         對于這個例子,你可以枚舉所有障礙物的子集,作為需要要經過的,計算經過該集合障礙物的路徑數(求從原點到第一個障礙物的路徑數、第一個障礙物到第二個障礙物的路徑數最后對這些路徑數求乘積),然后通過容斥原理,對這些結果作加法或減法。

         然而,它是一個非多項式的解法,復雜度。下面我們將介紹一個多項式的解法

         我們運用動態規劃:令d[i][j]代表從第i個點到第j個點,不經過任何障礙物時的路徑數(當然除了ij)。那么我們總共需要k+2個點,包括k個障礙物點以及起點和終點。

         首先我們算出從i點到j點的所有路徑數,然后減掉經過障礙物的那些“壞”的路線。讓我們看看如何計算“壞”的路線:枚舉ij之間的所有障礙物點i<l<j,那么從ij的“壞”路徑數就是所有d[i][l]d[l][j]的乘積最后求和。再被總路徑數減掉就是d[i][j]的結果。

         我們已經知道計算總路徑數的復雜度為 ,那么該解法的總復雜度為 

         (譯注:這段算法有問題,事實上可以用O(k^2)方法解決

 素數四元組的個數問題

       給出n個數,從其中選出4個數,使它們的最大公約數為1,問總共有多少中取法。

         我們解決它的逆問題:求最大公約數d>1的四元組的個數。

         運用容斥原理,將求得的對于每個d的四元組個數的結果進行加減。

         

         其中deg(d)代表d的質因子個數,f(d)代表四個數都能被d整除的四元組的個數。

         求解f(d)時,只需要利用組合方法,求從所有滿足被d整除的ai中選4個的方法數。

         然后利用容斥原理,統計出所有能被一個素數整除的四元組個數,然后減掉所有能被兩個素數整除的四元組個數,再加上被三個素數整除的四元組個數

和睦數三元組的個數問題

       給出一個整數 。選出a, b, c (其中2<=a<b<c<=n),組成和睦三元組,即:

         · 或者滿足    

· 或者滿足

首先,我們考慮它的逆問題:也就是不和睦三元組的個數。

然后,我們可以發現,在每個不和睦三元組的三個元素中,我們都能找到正好兩個元素滿足:它與一個元素互素,并且與另一個元素不互素。

所以,我們只需枚舉2n的所有數,將每個數的與其互素的數的個數和與其不互素的數的個數相乘,最后求和并除以2,就是要求的逆問題的答案。

現在我們要考慮這個問題,如何求與2n這些數互素(不互素)的數的個數。雖然求解與一個數互素數的個數的解法在前面已經提到過了,但在此并不合適,因為現在要求2n所有數的結果,分別求解顯然效率太低。

所以,我們需要一個更快的算法,可以一次算出2n所有數的結果。

在這里,我們可以使用改進的埃拉托色尼篩法

· 首先,對于2n的所有數,我們要知道構成它的素數中是否有次數大于1的,為了應用容斥原理,我們還有知道它們由多少種不同的素數構成。

對于這個問題,我們定義數組deg[i]:表示i由多少種不同素數構成,以及good[i]:取值truefalse,表示i包含素數的次數小于等于1是否成立。

再利用埃拉托色尼篩法,在遍歷到某個素數i時,枚舉它在2n范圍內的所有倍數,更新這些倍數的deg[]值,如果有倍數包含了多個i,那么就把這個倍數的good[]值賦為false

· 然后,利用容斥原理,求出2n每個數的cnt[i]:在2n中不與i互素的數的個數。

回想容斥原理的公式,它所求的集合是不會包含重復元素的。也就是如果這個集合包含的某個素數多于一次,它們不應再被考慮。

所以只有當一個數i滿足good[i]=true時,它才會被用于容斥原理。枚舉i的所有倍數i*j,那么對于i*j,就有N/i個與i*j同樣包含i(素數集合)的數。將這些結果進行加減,符號由deg[i](素數集合的大小)決定。如果deg[i]為奇數,那么我們要用加號,否則用減號。

程序實現:

int n;
bool good[MAXN];
int deg[MAXN], cnt[MAXN];
 
long long solve() {
         memset (good, 1, sizeof good);
         memset (deg, 0, sizeof deg);
         memset (cnt, 0, sizeof cnt);
 
         long long ans_bad = 0;
         for (int i=2; i<=n; ++i) {
                 if (good[i]) {
                          if (deg[i] == 0) deg[i] = 1;
                          for (int j=1; i*j<=n; ++j) {
                                   if (j > 1 && deg[i] == 1)
                                            if (j % i == 0)
                                                    good[i*j] = false;
                                            else
                                                    ++deg[i*j];
                                   cnt[i*j] += (n / i) * (deg[i]%2==1 ? +1 : -1);
                          }
                 }
                 ans_bad += (cnt[i] - 1) * 1ll * (n - cnt[i] - 1);
         }
         return (n-1) * 1ll * (n-2) * (n-3) / 6 - ans_bad / 2;
}

最終算法的復雜度為 ,因為對于大部分i都要進行n/i次枚舉。

錯排問題

       我們想要證明如下的求解長度為n序列的錯排數的公式:

      

         它的近似結果為:

         

         (此外,如果將這個近似式的結果向其最近的整數舍入,你就可以得到準確結果)

         我們定義Ak:在長度為n的序列中,有一個不動點位置為k(1<=k<=n)時的序列集合。

         現在我們運用容斥原理來計算至少包含有一個不動點的排列數,要計算這個,我們必須先算出所有Ak、以及它們的交集的排列數。




因為我們知道當有x個不動點時,所有不動點的位置是固定的,而其它點可以任意排列。

用容斥原理對結果進行帶入,而從n個點中選x個不動點的組合數為,那么至少包含一個不動點的排列數為:


那么不包含不動點(即錯排數)的結果就是:


化簡這個式子,我們得到了錯排數的準確式和近似式:


(因為括號中是泰勒展開式的前n+1項)

用這個式子也可以解決一些類似的問題,如果現在求有m個不動點的排列數,那么我們可以對上式進行修改,也就是將括號中的累加到1/n!改成累加到1/(n-m)!

OJ的相關題目

這里列出了一些可以用容斥原理解決的習題。 
· UVA #10325 "The Lottery" [難度:簡單]

· UVA #11806 "Cheerleaders" [難度:簡單]

· TopCoder SRM 477 "CarelessSecretary" [難度:簡單]

· TopCoder TCHS 16 "Divisibility" [難度:簡單]

· SPOJ #6285 NGM2 "Another Game With Numbers" [難度:簡單]

· TopCoder SRM 382 "CharmingTicketsEasy" [難度:中等]

· TopCoder SRM 390 "SetOfPatterns"  [難度:中等]

· TopCoder SRM 176 "Deranged" [難度:中等]

· TopCoder SRM 457 "TheHexagonsDivOne" [難度:中等]

· SPOJ #4191 MSKYCODE "Sky Code" [難度:中等]

· SPOJ #4168 SQFREE "Square-free integers" [難度:中等]

· CodeChef "Count Relations" [難度:中等]

      

參考文獻

       Debra K. Borkovitz. 







 


FeedBack:
# re: 容斥原理(翻譯) 2011-09-06 18:06 e-maxx
Hi.

I don't know the Chinese, so it was a great fun to read a russian=>english=>chinese=>english translation :)

You've done a great job, thank you. All your corrections were absolutely right, and I've removed the bugs from my article.

P.S. How did you manage to know about this russian article? :)  回復  更多評論
  
# re: 容斥原理(翻譯) 2011-09-07 00:08 vici
@e-maxx

I feel flattered by your rapid reply.

I knew your site through codeforces.com by chance, and then immediately I was attracted by the articles. The thoughts of the articles are very clear and clever. Therefore I was able to translate it, although it's hard to read Russian=>English translation.

And it's very religious of you to do the correction works.  回復  更多評論
  
# re: 容斥原理(翻譯) 2011-09-29 20:56 forget~
“同樣的,我們轉向它的逆問題。也就是不出現這些數字的序列。”這句貌似有錯,不然這句“長度為n的由數字0,1,2組成的序列,”和這句“同樣的,我們轉向它的逆問題。也就是不出現這些數字的序列。”矛盾。所以它的逆問題是不出現0或者不出現1或者不出現2的序列,強調下或者。

  回復  更多評論
  
# re: 容斥原理(翻譯) 2011-09-29 21:51 vici
@forget~
fixed.
3q  回復  更多評論
  
# re: 容斥原理(翻譯) 2012-02-05 19:42 forget~
@vici
我想問下那個 整數解問題
計算兩個這樣的集合Ak、Ap的交集,Ap指的是什么?一直都沒說明Ap是什么?




  回復  更多評論
  
# re: 容斥原理(翻譯) 2012-02-05 19:56 forget~
@vici
哦,我明白了Ap也是跟Ak一樣的集合,Ak=c(16,5).但為什么他們的交集為
C(7,5)呢?  回復  更多評論
  
# re: 容斥原理(翻譯) 2012-02-05 20:39 vici
@forget~
Ak和Ap代表兩個不同的“xk>=9并且其他xi>=0的集合”,那么Ak與Ap的交集可以理解為“在Ak中xp>=9并且其他xi>=0的集合”,其中9個位置已被xp占用,那么最后結果就是C(7, 5)  回復  更多評論
  
# re: 容斥原理(翻譯) 2012-09-15 19:05 fremn
省略了很多細節,路徑數目那題感覺真的有錯誤。我也向樓主那樣用google從俄語到英語,再手動翻譯。多看見了很多東西  回復  更多評論
  
# re: 容斥原理(翻譯) 2012-09-15 19:26 fremn
Climb the first obstacle To which we attack, then the number of paths is equal to Multiplied by /*the number of arbitrary ways of t in j*/ . Summing it all We count the number of "bad" ways.
路徑的數目問題 中 倒數第二句話。
我按照樓主的方法用翻譯了下,翻譯錯了。/* */ 號中的話應該是從t到j的任意一種走法(不管通過的有沒有壞點)。這樣枚舉出來的就可以知道沒有重復不需要容斥原理了,而且 t到j的任意一條路徑用組合數求O(1)的時間  回復  更多評論
  
# re: 容斥原理(翻譯) 2013-05-04 11:22 acfish
弱弱地問一句,在求和睦數三元組的個數問題中,最后為什么要*111?  回復  更多評論
  
# re: 容斥原理(翻譯) 2013-05-11 17:24 vici
@acfish
是1LL 防止int溢出  回復  更多評論
  
# re: 容斥原理(翻譯) 2013-09-07 18:54 JaceForce
舟哥哥好厲害  回復  更多評論
  
# re: 容斥原理(翻譯) 2015-08-17 17:59 guanjun
原來是舟哥哥!  回復  更多評論
  
# re: 容斥原理(翻譯) 2016-08-08 13:09 gaosaihang
我去 俊爺!!!  回復  更多評論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
              欧美一区二区免费观在线| 久久视频在线免费观看| 久久不射2019中文字幕| 亚洲色图在线视频| 一区二区三区色| 亚洲欧美日韩天堂一区二区| 欧美在线播放高清精品| 久久久青草婷婷精品综合日韩| 免费视频一区| 亚洲毛片在线看| 小黄鸭视频精品导航| 麻豆成人综合网| 国产精品xnxxcom| 狠狠久久亚洲欧美| 一个色综合导航| 久久免费视频这里只有精品| 欧美激情1区2区| 亚洲小说欧美另类婷婷| 久久美女艺术照精彩视频福利播放| 牛牛国产精品| 国产精品美女久久久久久免费| 国产一区亚洲一区| 日韩视频一区二区在线观看| 久久国产欧美精品| 亚洲国产另类久久精品| 亚洲一区二区在线播放| 乱中年女人伦av一区二区| 国产精品久在线观看| 亚洲黄色免费| 久久久一区二区| 一区二区三区精品| 欧美高清免费| 亚洲第一区色| 久久国产欧美| 一本色道久久综合亚洲精品按摩 | 久久久精品午夜少妇| 欧美美女喷水视频| 亚洲成人原创| 久久理论片午夜琪琪电影网| 亚洲性线免费观看视频成熟| 欧美福利一区二区| 国模吧视频一区| 欧美一区二视频| 一区二区三区视频在线看| 欧美另类videos死尸| 亚洲欧美日韩在线观看a三区| 久久三级视频| 欧美在线视频全部完| 久久亚洲色图| 一本色道久久综合亚洲精品不卡| 久久精品一区二区三区不卡牛牛| 欧美网站在线| 在线视频精品一区| 亚洲国产高清视频| 欧美一区二区精品在线| 欧美午夜理伦三级在线观看| 日韩一级免费| 亚洲激情第一区| 你懂的视频欧美| 亚洲国产精品女人久久久| 久久深夜福利| 久久精品亚洲一区二区三区浴池 | 久久亚洲私人国产精品va媚药| 国产区日韩欧美| 久久久999| 久久精品成人| 亚洲国产精品综合| 亚洲二区在线| 欧美日韩国产黄| 亚洲综合社区| 性欧美1819sex性高清| 国产原创一区二区| 欧美激情视频给我| 欧美日韩另类在线| 欧美在线视频一区二区三区| 久久精品国产91精品亚洲| 在线精品视频一区二区三四| 亚洲高清电影| 欧美午夜片在线免费观看| 久久精品国产v日韩v亚洲 | 久久久久一区二区三区| 久久色在线观看| 宅男精品视频| 欧美一区二区网站| 日韩视频免费在线观看| 亚洲综合大片69999| 在线观看日产精品| 亚洲美女精品久久| 国产日韩精品视频一区| 免费亚洲电影在线观看| 欧美午夜剧场| 欧美99在线视频观看| 欧美天天影院| 蜜桃av久久久亚洲精品| 欧美久久精品午夜青青大伊人| 欧美一区二区三区四区夜夜大片| 免费日韩精品中文字幕视频在线| 日韩视频中午一区| 久久精品99国产精品日本| 尤物精品在线| 在线亚洲观看| 亚洲国产精品毛片| 亚洲欧美国产毛片在线| 亚洲乱码国产乱码精品精可以看| 亚洲午夜激情网页| 日韩午夜在线播放| 久久久国产视频91| 性欧美18~19sex高清播放| 欧美成人亚洲成人日韩成人| 性欧美1819性猛交| 欧美色区777第一页| 欧美成人综合在线| 国产视频不卡| 亚洲一区二区日本| 一区二区三区av| 欧美国产精品日韩| 男人的天堂亚洲| 国产综合一区二区| 欧美一区二区三区免费大片| 亚洲免费在线观看| 欧美日韩国产专区| 91久久精品国产91久久性色| 亚洲第一精品夜夜躁人人爽| 欧美一区二区三区四区高清| 欧美一区二区三区视频在线观看| 欧美三级在线| 亚洲天堂免费观看| 亚洲免费在线看| 国产精品人人做人人爽人人添| 99精品视频一区| 亚洲一区二区在| 国产精品久久久久久久一区探花| a4yy欧美一区二区三区| 亚洲私人影院在线观看| 欧美日韩中文精品| 亚洲色图制服丝袜| 欧美影院在线| 一区二区三区在线看| 久久久午夜视频| 欧美激情在线免费观看| 日韩视频免费在线观看| 欧美日韩精品在线播放| 亚洲精品社区| 亚洲一区美女视频在线观看免费| 欧美亚州韩日在线看免费版国语版| 99xxxx成人网| 亚洲欧美日韩国产一区二区三区 | 国产一区二区精品久久| 午夜精品久久久久久久久久久| 亚洲欧美网站| 国产色爱av资源综合区| 久久午夜羞羞影院免费观看| 欧美福利在线观看| 亚洲视频欧洲视频| 国产精品久久久久久久一区探花| 亚洲在线播放电影| 久久久久综合| 亚洲蜜桃精久久久久久久| 欧美午夜一区二区福利视频| 亚洲综合第一| 欧美激情免费在线| 亚洲女人av| 欧美 日韩 国产 一区| 一本大道久久精品懂色aⅴ| 欧美色大人视频| 午夜精品福利一区二区蜜股av| 久久激情网站| 亚洲精品视频一区| 国产精品第一页第二页第三页| 亚洲欧美一区二区激情| 欧美激情精品久久久久久蜜臀| 中文精品视频一区二区在线观看| 国产精品久久久对白| 巨乳诱惑日韩免费av| 亚洲视频欧洲视频| 欧美国产精品中文字幕| 亚洲男人的天堂在线aⅴ视频| 激情文学综合丁香| 国产精品成av人在线视午夜片| 久久精品一区二区三区中文字幕| 亚洲剧情一区二区| 免费不卡中文字幕视频| 亚洲欧美在线看| 99国内精品久久| 亚洲第一在线综合网站| 国产精品成人一区二区三区夜夜夜| 久久久久中文| 午夜欧美大片免费观看 | 久久天天躁夜夜躁狠狠躁2022 | 午夜免费电影一区在线观看| 亚洲激情视频在线观看| 久久男女视频| 欧美一级视频| 亚洲午夜精品久久| 日韩视频免费观看| 91久久综合亚洲鲁鲁五月天| 国产一区二区高清| 国产欧美日韩91| 国产精品美女黄网| 国产精品hd|