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

The Way of C++

  C++博客 :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
  55 Posts :: 0 Stories :: 19 Comments :: 0 Trackbacks

公告

The first time i use this blog, i will write something that i learn which i think is worth write down.

常用鏈接

留言簿(3)

我參與的團(tuán)隊(duì)

搜索

  •  

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

1.Bloom filter

適用范圍:可以用來實(shí)現(xiàn)數(shù)據(jù)字典,進(jìn)行數(shù)據(jù)的判重,或者集合求交集
基本原理及要點(diǎn):
對(duì) 于原理來說很簡單,位數(shù)組+k個(gè)獨(dú)立hash函數(shù)。將hash函數(shù)對(duì)應(yīng)的值的位數(shù)組置1,查找時(shí)如果發(fā)現(xiàn)所有hash函數(shù)對(duì)應(yīng)位都是1說明存在,很明顯這 個(gè)過程并不保證查找的結(jié)果是100%正確的。同時(shí)也不支持刪除一個(gè)已經(jīng)插入的關(guān)鍵字,因?yàn)樵撽P(guān)鍵字對(duì)應(yīng)的位會(huì)牽動(dòng)到其他的關(guān)鍵字。所以一個(gè)簡單的改進(jìn)就是 counting Bloom filter,用一個(gè)counter數(shù)組代替位數(shù)組,就可以支持刪除了。

還 有一個(gè)比較重要的問題,如何根據(jù)輸入元素個(gè)數(shù)n,確定位數(shù)組m的大小及hash函數(shù)個(gè)數(shù)。當(dāng)hash函數(shù)個(gè)數(shù)k=(ln2)*(m/n)時(shí)錯(cuò)誤率最小。在 錯(cuò)誤率不大于E的情況下,m至少要等于n*lg(1/E)才能表示任意n個(gè)元素的集合。但m還應(yīng)該更大些,因?yàn)檫€要保證bit數(shù)組里至少一半為0,則m應(yīng) 該>=nlg(1/E)*lge 大概就是nlg(1/E)1.44倍(lg表示以2為底的對(duì)數(shù))。
舉個(gè)例子我們假設(shè)錯(cuò)誤率為0.01,則此時(shí)m應(yīng)大概是n的13倍。這樣k大概是8個(gè)。
注意這里m與n的單位不同,m是bit為單位,而n則是以元素個(gè)數(shù)為單位(準(zhǔn)確的說是不同元素的個(gè)數(shù))。通常單個(gè)元素的長度都是有很多bit的。所以使用bloom filter內(nèi)存上通常都是節(jié)省的。
擴(kuò)展:
Bloom filter將集合中的元素映射到位數(shù)組中,用k(k為哈希函數(shù)個(gè)數(shù))個(gè)映射位是否全1表示元素在不在這個(gè)集合中。Counting bloom filter(CBF)將位數(shù)組中的每一位擴(kuò)展為一個(gè)counter,從而支持了元素的刪除操作。Spectral Bloom Filter(SBF)將其與集合元素的出現(xiàn)次數(shù)關(guān)聯(lián)。SBF采用counter中的最小值來近似表示元素的出現(xiàn)頻率。
問題實(shí)例:給你A,B兩個(gè)文件,各存放50億條URL,每條URL占用64字節(jié),內(nèi)存限制是4G,讓你找出A,B文件共同的URL。如果是三個(gè)乃至n個(gè)文件呢?
根 據(jù)這個(gè)問題我們來計(jì)算下內(nèi)存的占用,4G=2^32大概是40億*8大概是340億,n=50億,如果按出錯(cuò)率0.01算需要的大概是650億個(gè)bit。 現(xiàn)在可用的是340億,相差并不多,這樣可能會(huì)使出錯(cuò)率上升些。另外如果這些urlip是一一對(duì)應(yīng)的,就可以轉(zhuǎn)換成ip,則大大簡單了。
2.Hashing
適用范圍:快速查找,刪除的基本數(shù)據(jù)結(jié)構(gòu),通常需要總數(shù)據(jù)量可以放入內(nèi)存
基本原理及要點(diǎn):
hash函數(shù)選擇,針對(duì)字符串,整數(shù),排列,具體相應(yīng)的hash方法。
碰撞處理,一種是open hashing,也稱為拉鏈法;另一種就是closed hashing,也稱開地址法,opened addressing。
擴(kuò)展:
d-left hashing中的d是多個(gè)的意思,我們先簡化這個(gè)問題,看一看2-left hashing。2-left hashing指的是將一個(gè)哈希表分成長度相等的兩半,分別叫做T1和T2,給T1和T2分別配備一個(gè)哈希函數(shù),h1和h2。在存儲(chǔ)一個(gè)新的key時(shí),同 時(shí)用兩個(gè)哈希函數(shù)進(jìn)行計(jì)算,得出兩個(gè)地址h1[key]和h2[key]。這時(shí)需要檢查T1中的h1[key]位置和T2中的h2[key]位置,哪一個(gè) 位置已經(jīng)存儲(chǔ)的(有碰撞的)key比較多,然后將新key存儲(chǔ)在負(fù)載少的位置。如果兩邊一樣多,比如兩個(gè)位置都為空或者都存儲(chǔ)了一個(gè)key,就把新key 存儲(chǔ)在左邊的T1子表中,2-left也由此而來。在查找一個(gè)key時(shí),必須進(jìn)行兩次hash,同時(shí)查找兩個(gè)位置。
問題實(shí)例:
1).海量日志數(shù)據(jù),提取出某日訪問百度次數(shù)最多的那個(gè)IP。
IP的數(shù)目還是有限的,最多2^32個(gè),所以可以考慮使用hash將ip直接存入內(nèi)存,然后進(jìn)行統(tǒng)計(jì)。
3.bit-map
適用范圍:可進(jìn)行數(shù)據(jù)的快速查找,判重,刪除,一般來說數(shù)據(jù)范圍是int的10倍以下
基本原理及要點(diǎn):使用bit數(shù)組來表示某些元素是否存在,比如8位電話號(hào)碼
擴(kuò)展:bloom filter可以看做是對(duì)bit-map的擴(kuò)展
問題實(shí)例:
1)已知某個(gè)文件內(nèi)包含一些電話號(hào)碼,每個(gè)號(hào)碼為8位數(shù)字,統(tǒng)計(jì)不同號(hào)碼的個(gè)數(shù)。
8位最多99 999 999,大概需要99m個(gè)bit,大概10幾m字節(jié)的內(nèi)存即可。
2)2.5億個(gè)整數(shù)中找出不重復(fù)的整數(shù)的個(gè)數(shù),內(nèi)存空間不足以容納這2.5億個(gè)整數(shù)。
將bit-map擴(kuò)展一下,用2bit表示一個(gè)數(shù)即可,0表示未出現(xiàn),1表示出現(xiàn)一次,2表示出現(xiàn)2次及以上。或者我們不用2bit來進(jìn)行表示,我們用兩個(gè)bit-map即可模擬實(shí)現(xiàn)這個(gè)2bit-map。
4.堆
適用范圍:海量數(shù)據(jù)前n大,并且n比較小,堆可以放入內(nèi)存
基本原理及要點(diǎn): 最大堆求前n小,最小堆求前n大。方法,比如求前n小,我們比較當(dāng)前元素與最大堆里的最大元素,如果它小于最大元素,則應(yīng)該替換那個(gè)最大元素。這樣最后得 到的n個(gè)元素就是最小的n個(gè)。適合大數(shù)據(jù)量,求前n小,n的大小比較小的情況,這樣可以掃描一遍即可得到所有的前n元素,效率很高。
擴(kuò)展:雙堆,一個(gè)最大堆與一個(gè)最小堆結(jié)合,可以用來維護(hù)中位數(shù)。
問題實(shí)例:
1)100w個(gè)數(shù)中找最大的前100個(gè)數(shù)。
用一個(gè)100個(gè)元素大小的最小堆即可。
5.雙層桶劃分
適用范圍:第k大,中位數(shù),不重復(fù)或重復(fù)的數(shù)字
基本原理及要點(diǎn):因?yàn)樵胤秶艽螅荒芾弥苯訉ぶ繁恚酝ㄟ^多次劃分,逐步確定范圍,然后最后在一個(gè)可以接受的范圍內(nèi)進(jìn)行。可以通過多次縮小,雙層只是一個(gè)例子。
擴(kuò)展:
問題實(shí)例
1).2.5億個(gè)整數(shù)中找出不重復(fù)的整數(shù)的個(gè)數(shù),內(nèi)存空間不足以容納這2.5億個(gè)整數(shù)。
有點(diǎn)像鴿巢原理,整數(shù)個(gè)數(shù)為2^32,也就是,我們可以將這2^32個(gè)數(shù),劃分為2^8個(gè)區(qū)域(比如用單個(gè)文件代表一個(gè)區(qū)域),然后將數(shù)據(jù)分離到不同的區(qū)域,然后不同的區(qū)域在利用bitmap就可以直接解決了。也就是說只要有足夠的磁盤空間,就可以很方便的解決。
2).5億個(gè)int找它們的中位數(shù)。
這個(gè)例子比上面那個(gè)更明顯。首先我們將int劃分為2^16個(gè)區(qū)域,然后讀取數(shù)據(jù)統(tǒng)計(jì)落到各個(gè)區(qū)域里的數(shù)的個(gè)數(shù),之后我們根據(jù)統(tǒng)計(jì)結(jié)果就可以判斷中位數(shù)落到那個(gè)區(qū)域,同時(shí)知道這個(gè)區(qū)域中的第幾大數(shù)剛好是中位數(shù)。然后第二次掃描我們只統(tǒng)計(jì)落在這個(gè)區(qū)域中的那些數(shù)就可以了。
實(shí) 際上,如果不是int是int64,我們可以經(jīng)過3次這樣的劃分即可降低到可以接受的程度。即可以先將int64分成2^24個(gè)區(qū)域,然后確定區(qū)域的第幾 大數(shù),在將該區(qū)域分成2^20個(gè)子區(qū)域,然后確定是子區(qū)域的第幾大數(shù),然后子區(qū)域里的數(shù)的個(gè)數(shù)只有2^20,就可以直接利用direct addr table進(jìn)行統(tǒng)計(jì)了。
6.數(shù)據(jù)庫索引
適用范圍:大數(shù)據(jù)量的增刪改查
基本原理及要點(diǎn):利用數(shù)據(jù)的設(shè)計(jì)實(shí)現(xiàn)方法,對(duì)海量數(shù)據(jù)的增刪改查進(jìn)行處理。
擴(kuò)展:
問題實(shí)例:
7.倒排索引(Inverted index)
適用范圍:搜索引擎,關(guān)鍵字查詢
基本原理及要點(diǎn):為何叫倒排索引?一種索引方法,被用來存儲(chǔ)在全文搜索下某個(gè)單詞在一個(gè)文檔或者一組文檔中的存儲(chǔ)位置的映射。
以英文為例,下面是要被索引的文本:
T0 = "it is what it is"
T1 = "what is it"
T2 = "it is a banana"
我們就能得到下面的反向文件索引:
"a": {2}
"banana": {2}
"is": {0, 1, 2}
"it": {0, 1, 2}
"what": {0, 1}
檢索的條件"what", "is" 和 "it" 將對(duì)應(yīng)集合的交集。
正 向索引開發(fā)出來用來存儲(chǔ)每個(gè)文檔的單詞的列表。 正向索引的查詢往往滿足每個(gè)文檔有序頻繁的全文查詢和每個(gè)單詞在校驗(yàn)文檔中的驗(yàn)證這樣的查詢。在正向索引中,文檔占據(jù)了中心的位置,每個(gè)文檔指向了一個(gè)它 所包含的索引項(xiàng)的序列。也就是說文檔指向了它包含的那些單詞,而反向索引則是單詞指向了包含它的文檔,很容易看到這個(gè)反向的關(guān)系。
擴(kuò)展:
問題實(shí)例:文檔檢索系統(tǒng),查詢那些文件包含了某單詞,比如常見的學(xué)術(shù)論文的關(guān)鍵字搜索。
8.外排序
適用范圍:大數(shù)據(jù)的排序,去重
基本原理及要點(diǎn):外排序的歸并方法,置換選擇 敗者樹原理,最優(yōu)歸并樹
擴(kuò)展:
問題實(shí)例:
1).有一個(gè)1G大小的一個(gè)文件,里面每一行是一個(gè)詞,詞的大小不超過16個(gè)字節(jié),內(nèi)存限制大小是1M。返回頻數(shù)最高的100個(gè)詞。
這個(gè)數(shù)據(jù)具有很明顯的特點(diǎn),詞的大小為16個(gè)字節(jié),但是內(nèi)存只有1m做hash有些不夠,所以可以用來排序。內(nèi)存可以當(dāng)輸入緩沖區(qū)使用。
9.trie樹
適用范圍:數(shù)據(jù)量大,重復(fù)多,但是數(shù)據(jù)種類小可以放入內(nèi)存
基本原理及要點(diǎn):實(shí)現(xiàn)方式,節(jié)點(diǎn)孩子的表示方式
擴(kuò)展:壓縮實(shí)現(xiàn)。
問題實(shí)例:
1).有10個(gè)文件,每個(gè)文件1G, 每個(gè)文件的每一行都存放的是用戶的query,每個(gè)文件的query都可能重復(fù)。要你按照query的頻度排序 。
2).1000萬字符串,其中有些是相同的(重復(fù)),需要把重復(fù)的全部去掉,保留沒有重復(fù)的字符串。請(qǐng)問怎么設(shè)計(jì)和實(shí)現(xiàn)?
3).尋找熱門查詢:查詢串的重復(fù)度比較高,雖然總數(shù)是1千萬,但如果除去重復(fù)后,不超過3百萬個(gè),每個(gè)不超過255字節(jié)。
10.分布式處理 mapreduce
適用范圍:數(shù)據(jù)量大,但是數(shù)據(jù)種類小可以放入內(nèi)存
基本原理及要點(diǎn):將數(shù)據(jù)交給不同的機(jī)器去處理,數(shù)據(jù)劃分,結(jié)果歸約。
擴(kuò)展:
問題實(shí)例:
1).The canonical example application of MapReduce is a process to count the appearances of
each different word in a set of documents:
void map(String name, String document):
   // name: document name
   // document: document contents
   for each word w in document:
   EmitIntermediate(w, 1);
void reduce(String word, Iterator partialCounts):
   // key: a word
   // values: a list of aggregated partial counts
   int result = 0;
   for each v in partialCounts:
   result += ParseInt(v);
   Emit(result);
Here, each document is split in words, and each word is counted initially with a "1" value by
the Map function, using the word as the result key. The framework puts together all the pairs
with the same key and feeds them to the same call to Reduce, thus this function just needs to
sum all of its input values to find the total appearances of that word.
2).海量數(shù)據(jù)分布在100臺(tái)電腦中,想個(gè)辦法高效統(tǒng)計(jì)出這批數(shù)據(jù)的TOP10。
3).一共有N個(gè)機(jī)器,每個(gè)機(jī)器上有N個(gè)數(shù)。每個(gè)機(jī)器最多存O(N)個(gè)數(shù)并對(duì)它們操作。如何找到N^2個(gè)數(shù)的中數(shù)(median)?
經(jīng)典問題分析
上千萬or億數(shù)據(jù)(有重復(fù)),統(tǒng)計(jì)其中出現(xiàn)次數(shù)最多的前N個(gè)數(shù)據(jù),分兩種情況:可一次讀入內(nèi)存,不可一次讀入。
可用思路:trie樹+堆,數(shù)據(jù)庫索引,劃分子集分別統(tǒng)計(jì),hash,分布式計(jì)算,近似統(tǒng)計(jì),外排序
所 謂的是否能一次讀入內(nèi)存,實(shí)際上應(yīng)該指去除重復(fù)后的數(shù)據(jù)量。如果去重后數(shù)據(jù)可以放入內(nèi)存,我們可以為數(shù)據(jù)建立字典,比如通過 map,hashmap,trie,然后直接進(jìn)行統(tǒng)計(jì)即可。當(dāng)然在更新每條數(shù)據(jù)的出現(xiàn)次數(shù)的時(shí)候,我們可以利用一個(gè)堆來維護(hù)出現(xiàn)次數(shù)最多的前N個(gè)數(shù)據(jù),當(dāng) 然這樣導(dǎo)致維護(hù)次數(shù)增加,不如完全統(tǒng)計(jì)后在求前N大效率高。
如果數(shù)據(jù)無法放入內(nèi)存。一方面我們可以考慮上面的字典方法能否被改進(jìn)以適應(yīng)這種情形,可以做的改變就是將字典存放到硬盤上,而不是內(nèi)存,這可以參考數(shù)據(jù)庫的存儲(chǔ)方法。
當(dāng) 然還有更好的方法,就是可以采用分布式計(jì)算,基本上就是map-reduce過程,首先可以根據(jù)數(shù)據(jù)值或者把數(shù)據(jù)hash(md5)后的值,將數(shù)據(jù)按照范 圍劃分到不同的機(jī)子,最好可以讓數(shù)據(jù)劃分后可以一次讀入內(nèi)存,這樣不同的機(jī)子負(fù)責(zé)處理各種的數(shù)值范圍,實(shí)際上就是map。得到結(jié)果后,各個(gè)機(jī)子只需拿出各 自的出現(xiàn)次數(shù)最多的前N個(gè)數(shù)據(jù),然后匯總,選出所有的數(shù)據(jù)中出現(xiàn)次數(shù)最多的前N個(gè)數(shù)據(jù),這實(shí)際上就是reduce過程。
實(shí) 際上可能想直接將數(shù)據(jù)均分到不同的機(jī)子上進(jìn)行處理,這樣是無法得到正確的解的。因?yàn)橐粋€(gè)數(shù)據(jù)可能被均分到不同的機(jī)子上,而另一個(gè)則可能完全聚集到一個(gè)機(jī)子 上,同時(shí)還可能存在具有相同數(shù)目的數(shù)據(jù)。比如我們要找出現(xiàn)次數(shù)最多的前100個(gè),我們將1000萬的數(shù)據(jù)分布到10臺(tái)機(jī)器上,找到每臺(tái)出現(xiàn)次數(shù)最多的前 100個(gè),歸并之后這樣不能保證找到真正的第100個(gè),因?yàn)楸热绯霈F(xiàn)次數(shù)最多的第100個(gè)可能有1萬個(gè),但是它被分到了10臺(tái)機(jī)子,這樣在每臺(tái)上只有1千 個(gè),假設(shè)這些機(jī)子排名在1000個(gè)之前的那些都是單獨(dú)分布在一臺(tái)機(jī)子上的,比如有1001個(gè),這樣本來具有1萬個(gè)的這個(gè)就會(huì)被淘汰,即使我們讓每臺(tái)機(jī)子選 出出現(xiàn)次數(shù)最多的1000個(gè)再歸并,仍然會(huì)出錯(cuò),因?yàn)榭赡艽嬖诖罅總€(gè)數(shù)為1001個(gè)的發(fā)生聚集。因此不能將數(shù)據(jù)隨便均分到不同機(jī)子上,而是要根據(jù)hash 后的值將它們映射到不同的機(jī)子上處理,讓不同的機(jī)器處理一個(gè)數(shù)值范圍。
而外排序的方法會(huì)消耗大量的IO,效率不會(huì)很高。而上面的分布式方法,也可以用于單機(jī)版本,也就是將總的數(shù)據(jù)根據(jù)值的范圍,劃分成多個(gè)不同的子文件,然后逐個(gè)處理。處理完畢之后再對(duì)這些單詞的及其出現(xiàn)頻率進(jìn)行一個(gè)歸并。實(shí)際上就可以利用一個(gè)外排序的歸并過程。

另外還可以考慮近似計(jì)算,也就是我們可以通過結(jié)合自然語言屬性,只將那些真正實(shí)際中出現(xiàn)最多的那些詞作為一個(gè)字典,使得這個(gè)規(guī)模可以放入內(nèi)存。
轉(zhuǎn)載請(qǐng)注明出處:http://duanple.blog.163.com/blog/static/7097176720091026458369/
作者phylips@bmy
posted on 2010-03-15 14:40 koson 閱讀(1611) 評(píng)論(0)  編輯 收藏 引用 所屬分類: ACM
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久精品一区二区三区中文字幕| 亚洲一区二区三区乱码aⅴ蜜桃女 亚洲一区二区三区乱码aⅴ | 久久精品视频免费| 欧美精品久久一区| 免费一级欧美片在线播放| 国产精品亚洲视频| 99亚洲视频| 99国内精品| 欧美大片在线看| 欧美成人精品一区二区| 国内精品久久久| 亚洲欧美另类久久久精品2019| 一本一本久久a久久精品综合妖精| 久久精品国产清高在天天线| 香蕉国产精品偷在线观看不卡| 欧美精品免费视频| 亚洲国产日韩欧美| 亚洲二区在线视频| 久久综合色8888| 麻豆精品一区二区综合av| 国产伊人精品| 欧美中文在线免费| 久久女同精品一区二区| 国产日韩欧美二区| 久久gogo国模裸体人体| 久久久久成人网| 黄色一区二区三区| 久久久亚洲人| 欧美大秀在线观看| 亚洲毛片一区二区| 欧美日韩123| 一本色道久久综合精品竹菊| 亚洲一区二区日本| 国产精品午夜视频| 欧美一区午夜精品| 美女视频黄免费的久久| 91久久精品国产91性色tv| 女生裸体视频一区二区三区| 亚洲国产欧美在线人成| 一卡二卡3卡四卡高清精品视频| 欧美日韩高清在线观看| 99精品欧美一区二区蜜桃免费| 亚洲图片自拍偷拍| 国产精品羞羞答答xxdd| 久久精品国产亚洲一区二区三区 | 亚洲欧美精品suv| 国产精品一二三四区| 久久爱www| 亚洲国产天堂久久综合| 亚洲小视频在线观看| 国产日韩欧美一二三区| 久久手机精品视频| 亚洲毛片一区| 久久黄色影院| 亚洲美女毛片| 国产农村妇女精品| 老司机精品视频网站| 一本色道久久综合亚洲精品婷婷 | 一区二区高清视频| 久久成人免费电影| 亚洲日本电影| 国产乱码精品一区二区三| 久久香蕉国产线看观看av| 亚洲精品社区| 美日韩精品免费| 亚洲欧美国产毛片在线| 亚洲成人资源| 国产精品日韩一区二区三区| 久久五月激情| 亚洲欧美日韩第一区| 亚洲国产二区| 久久久福利视频| 亚洲午夜激情| 亚洲精品男同| 激情欧美日韩| 国产精品日韩在线| 欧美美女福利视频| 久久精品视频一| 亚洲一区欧美| 亚洲精品之草原avav久久| 狂野欧美一区| 性伦欧美刺激片在线观看| 亚洲日本久久| 亚洲高清二区| 韩日视频一区| 国产美女诱惑一区二区| 欧美日韩和欧美的一区二区| 久久久蜜桃精品| 欧美一区二区三区喷汁尤物| 日韩一区二区精品在线观看| 亚洲第一色在线| 久久综合免费视频影院| 欧美在线日韩在线| 午夜视频一区二区| 亚洲午夜精品久久久久久浪潮| 亚洲国产二区| 亚洲国产成人av| 在线观看日韩专区| 伊人色综合久久天天| 韩国一区二区三区在线观看| 国产精品网站一区| 国产精品一区亚洲| 国产精品一区视频| 国产精品一区二区久久| 国产精品视频导航| 国产精品美女一区二区| 国产精品久久久久久久久久久久久| 欧美国产视频日韩| 欧美母乳在线| 欧美日韩免费在线| 国产精品国产福利国产秒拍| 欧美日韩在线一区| 国产精品第三页| 国产精品久久久久久av福利软件| 欧美日韩一视频区二区| 国产精品都在这里| 国产精品久久久999| 国产精品欧美一区喷水| 国产女主播一区二区三区| 国产欧美日韩一区二区三区在线 | 鲁大师成人一区二区三区 | 一区二区高清视频在线观看| 日韩小视频在线观看专区| av72成人在线| 午夜精品久久| 久久艳片www.17c.com| 欧美成人自拍| 欧美午夜一区二区福利视频| 国产精品网曝门| 国产在线视频不卡二| 亚洲韩国青草视频| 中日韩视频在线观看| 欧美一区二区三区在线免费观看| 久久久av网站| 91久久国产综合久久蜜月精品| 99精品国产在热久久婷婷| 亚洲欧美成人| 欧美a级一区二区| 欧美三区美女| 精品av久久707| 在线一区二区三区四区五区| 欧美一级淫片aaaaaaa视频| 老色鬼久久亚洲一区二区| 亚洲欧洲日产国产综合网| 亚洲小少妇裸体bbw| 久久综合狠狠综合久久激情| 欧美日韩福利视频| 狠狠爱综合网| 亚洲午夜一区二区三区| 久久人人九九| 一区二区精品国产| 久久综合网色—综合色88| 国产精品久久久91| 亚洲国产精品一区二区三区| 亚洲一区二区3| 欧美大片在线看| 午夜精品久久久久久久蜜桃app| 老色批av在线精品| 国产精品一区二区三区四区| 亚洲黄色天堂| 久久国产黑丝| 一本色道久久综合亚洲精品婷婷 | 亚洲尤物在线视频观看| 美日韩在线观看| 亚洲综合色视频| 欧美激情欧美狂野欧美精品| 国产日韩一区在线| 亚洲一区二区不卡免费| 美女视频黄a大片欧美| 国产三级欧美三级| 一区二区三区久久精品| 欧美激情精品久久久久久大尺度| 午夜精品久久久久久久久久久 | 国产日产亚洲精品系列| 这里只有精品视频| 亚洲福利久久| 久久亚洲欧美| 一区在线视频| 久久久久久97三级| 午夜伦欧美伦电影理论片| 欧美性猛交xxxx乱大交退制版| 亚洲精品日韩在线观看| 欧美成人高清| 久久综合久久美利坚合众国| 国产亚洲精品激情久久| 欧美一区二区女人| 亚洲午夜视频| 国产精品一区二区视频| 午夜精品区一区二区三| 亚洲视频在线观看免费| 欧美午夜在线| 亚洲欧美自拍偷拍| 亚洲少妇中出一区| 国产精品任我爽爆在线播放| 亚洲欧美在线磁力| 亚洲免费视频网站| 国产一区二区三区电影在线观看| 欧美一区二区三区在线看| 亚洲欧洲99久久| 国产一区清纯|