成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識(shí)庫 > 在SQL Server中實(shí)現(xiàn)最短路徑搜索的解決方法

在SQL Server中實(shí)現(xiàn)最短路徑搜索的解決方法

熱門標(biāo)簽:浙江穩(wěn)定外呼系統(tǒng)供應(yīng)商 美團(tuán)地圖標(biāo)注商戶認(rèn)證注冊(cè) 電銷外呼系統(tǒng)軟件功能 承德地圖標(biāo)注公司名需要花錢嗎 北京400電話辦理多少錢 榕城市地圖標(biāo)注 慶陽地圖標(biāo)注 咸陽電腦外呼系統(tǒng)運(yùn)營(yíng)商 怎么給高德做地圖標(biāo)注

開始

這是去年的問題了,今天在整理郵件的時(shí)候才發(fā)現(xiàn)這個(gè)問題,感覺頂有意思的,特記錄下來。

在表RelationGraph中,有三個(gè)字段(ID,Node,RelatedNode),其中Node和RelatedNode兩個(gè)字段描述兩個(gè)節(jié)點(diǎn)的連接關(guān)系;現(xiàn)在要求,找出從節(jié)點(diǎn)"p"至節(jié)點(diǎn)"j",最短路徑(即經(jīng)過的節(jié)點(diǎn)最少)。

圖1.

解析:

了能夠更好的描述表RelationGraph中字段Node和 RelatedNode的關(guān)系,我在這里特意使用一個(gè)圖形來描述,
如圖2.

圖2.

在圖2,可清晰的看出各個(gè)節(jié)點(diǎn)直接如何相連,也可以清楚的看出節(jié)點(diǎn)"p"至節(jié)點(diǎn)"j"的的幾種可能路徑。

從上面可以看出第2種可能路徑,經(jīng)過的節(jié)點(diǎn)最少。

為了解決開始的問題,我參考了兩種方法,

第1方法是,

參考單源最短路徑算法:Dijkstra(迪杰斯特拉)算法,主要特點(diǎn)是以起始點(diǎn)為中心向外層層擴(kuò)展,直到擴(kuò)展到終點(diǎn)為止。


圖3.

第2方法是,

針對(duì)第1種方法的改進(jìn),就是采用多源點(diǎn)方法,這里就是以節(jié)點(diǎn)"p"和節(jié)點(diǎn)"j"為中心向外層擴(kuò)展,直到兩圓外切點(diǎn),如圖4. :

圖4.

實(shí)現(xiàn):

在接下來,我就描述在SQL Server中,如何實(shí)現(xiàn)。當(dāng)然我這里采用的前面說的第2種方法,以"P"和"J"為始點(diǎn)像中心外層層擴(kuò)展。

這里提供有表RelactionGraph的create Insert數(shù)據(jù)的腳本:

復(fù)制代碼 代碼如下:

use TestDB    

go

if object_id('RelactionGraph') Is not null drop table RelactionGraph

create table RelactionGraph(ID int identity,Item nvarchar(50),RelactionItem nvarchar(20),constraint PK_RelactionGraph primary key(ID))

go

create nonclustered index IX_RelactionGraph_Item on RelactionGraph(Item) include(RelactionItem)

create nonclustered index IX_RelactionGraph_RelactionItem on RelactionGraph(RelactionItem) include(Item)

go

insert into RelactionGraph (Item, RelactionItem ) values

    ('a','b'),('a','c'),('a','d'),('a','e'),

    ('b','f'),('b','g'),('b','h'),

    ('c','i'),('c','j'),

    ('f','k'),('f','l'),

    ('k','o'),('k','p'),

    ('o','i'),('o','l')

go


編寫一個(gè)存儲(chǔ)過程up_GetPath
復(fù)制代碼 代碼如下:

use TestDB
go
--Procedure:
if object_id('up_GetPath') Is not null
    Drop proc up_GetPath
go
create proc up_GetPath
(
    @Node nvarchar(50),
    @RelatedNode nvarchar(50)
)
As
set nocount on

declare
    @level smallint =1, --當(dāng)前搜索的深度
    @MaxLevel smallint=100, --最大可搜索深度
    @Node_WhileFlag bit=1, --以@Node作為中心進(jìn)行搜索時(shí)候,作為能否循環(huán)搜索的標(biāo)記
    @RelatedNode_WhileFlag bit=1 --以@RelatedNode作為中心進(jìn)行搜索時(shí)候,作為能否循環(huán)搜索的標(biāo)記

--如果直接找到兩個(gè)Node存在直接關(guān)系就直接返回
if Exists(select 1 from RelationGraph where (Node=@Node And RelatedNode=@RelatedNode) or (Node=@RelatedNode And RelatedNode=@Node) ) or @Node=@RelatedNode
begin
    select convert(nvarchar(2000),@Node + ' --> '+ @RelatedNode) As RelationGraphPath,convert(smallint,0) As StopCount
    return
end

--

if object_id('tempdb..#1') Is not null Drop Table #1 --臨時(shí)表#1,存儲(chǔ)的是以@Node作為中心向外擴(kuò)展的各節(jié)點(diǎn)數(shù)據(jù)
if object_id('tempdb..#2') Is not null Drop Table #2 --臨時(shí)表#2,存儲(chǔ)的是以@RelatedNode作為中心向外擴(kuò)展的各節(jié)點(diǎn)數(shù)據(jù)

create table #1(
    Node nvarchar(50),--相對(duì)源點(diǎn)
    RelatedNode nvarchar(50), --相對(duì)目標(biāo)
    Level smallint --深度
    )

create table #2(Node nvarchar(50),RelatedNode nvarchar(50),Level smallint)

insert into #1 ( Node, RelatedNode, Level )
    select Node, RelatedNode, @level from RelationGraph a where a.Node =@Node union --正向:以@Node作為源查詢
    select RelatedNode, Node, @level from RelationGraph a where a.RelatedNode = @Node --反向:以@Node作為目標(biāo)進(jìn)行查詢
set @Node_WhileFlag=sign(@@rowcount)

insert into #2 ( Node, RelatedNode, Level )
    select Node, RelatedNode, @level from RelationGraph a where a.Node =@RelatedNode union --正向:以@RelatedNode作為源查詢
    select RelatedNode, Node, @level from RelationGraph a where a.RelatedNode = @RelatedNode --反向:以@RelatedNode作為目標(biāo)進(jìn)行查詢
set @RelatedNode_WhileFlag=sign(@@rowcount)

--如果在表RelationGraph中找不到@Node 或 @RelatedNode 數(shù)據(jù),就直接跳過后面的While過程
if not exists(select 1 from #1) or not exists(select 1 from #2)
begin
    goto While_Out
end

 
while not exists(select 1 from #1 a inner join #2 b on b.RelatedNode=a.RelatedNode) --判斷是否出現(xiàn)切點(diǎn)
     and (@Node_WhileFlag|@RelatedNode_WhileFlag)>0 --判斷是否能搜索
     And @level@MaxLevel --控制深度
begin
    if @Node_WhileFlag >0
    begin    
        insert into #1 ( Node, RelatedNode, Level )
            --正向
            select a.Node,a.RelatedNode,@level+1
                From RelationGraph a
                where exists(select 1 from #1 where RelatedNode=a.Node And Level=@level) And
                    Not exists(select 1 from #1 where Node=a.Node)            
            union
            --反向
            select a.RelatedNode,a.Node,@level+1
                From RelationGraph a
                where exists(select 1 from #1 where RelatedNode=a.RelatedNode And Level=@level) And
                    Not exists(select 1 from #1 where Node=a.RelatedNode)

        set @Node_WhileFlag=sign(@@rowcount)

    end

    
    if @RelatedNode_WhileFlag >0
    begin        
        insert into #2 ( Node, RelatedNode, Level )
            --正向
            select a.Node,a.RelatedNode,@level+1
                From RelationGraph a
                where exists(select 1 from #2 where RelatedNode=a.Node And Level=@level) And
                    Not exists(select 1 from #2 where Node=a.Node)
            union
            --反向
            select a.RelatedNode,a.Node,@level+1
                From RelationGraph a
                where exists(select 1 from #2 where RelatedNode=a.RelatedNode And Level=@level) And
                    Not exists(select 1 from #2 where Node=a.RelatedNode)
        set @RelatedNode_WhileFlag=sign(@@rowcount)
    end

    select @level+=1
end

While_Out:

--下面是構(gòu)造返回的結(jié)果路徑
if object_id('tempdb..#Path1') Is not null Drop Table #Path1
if object_id('tempdb..#Path2') Is not null Drop Table #Path2

;with cte_path1 As
(
select a.Node,a.RelatedNode,Level,convert(nvarchar(2000),a.Node+' -> '+a.RelatedNode) As RelationGraphPath,Convert(smallint,1) As PathLevel From #1 a where exists(select 1 from #2 where RelatedNode=a.RelatedNode)
union all
select b.Node,a.RelatedNode,b.Level,convert(nvarchar(2000),b.Node+' -> '+a.RelationGraphPath) As RelationGraphPath ,Convert(smallint,a.PathLevel+1) As PathLevel
    from cte_path1 a
        inner join #1 b on b.RelatedNode=a.Node
            and b.Level=a.Level-1
)
select * Into #Path1 from cte_path1

;with cte_path2 As
(
select a.Node,a.RelatedNode,Level,convert(nvarchar(2000),a.Node) As RelationGraphPath,Convert(smallint,1) As PathLevel From #2 a where exists(select 1 from #1 where RelatedNode=a.RelatedNode)
union all
select b.Node,a.RelatedNode,b.Level,convert(nvarchar(2000),a.RelationGraphPath+' -> '+b.Node) As RelationGraphPath ,Convert(smallint,a.PathLevel+1)
    from cte_path2 a
        inner join #2 b on b.RelatedNode=a.Node
            and b.Level=a.Level-1
)
select * Into #Path2 from cte_path2

;with cte_result As
(
select a.RelationGraphPath+' -> '+b.RelationGraphPath As RelationGraphPath,a.PathLevel+b.PathLevel -1 As StopCount,rank() over(order by a.PathLevel+b.PathLevel) As Result_row
    From #Path1 a
        inner join #Path2 b on b.RelatedNode=a.RelatedNode
            and b.Level=1
    where a.Level=1
)    
select distinct RelationGraphPath,StopCount From cte_result where Result_row=1
go

上面的存儲(chǔ)過程,主要分為兩大部分,第1部分是實(shí)現(xiàn)如何搜索,第2部分實(shí)現(xiàn)如何構(gòu)造返回結(jié)果。其中第1部分的代碼根據(jù)前面的方法2,通過@Node 和 @RelatedNode 兩個(gè)節(jié)點(diǎn)向外層搜索,每次搜索返回的節(jié)點(diǎn)都保存至臨時(shí)表#1和#2,再判斷臨時(shí)表#1和#2有沒有出現(xiàn)切點(diǎn),如果出現(xiàn)就說明已找到最短的路徑(經(jīng)過多節(jié)點(diǎn)數(shù)最少),否則就繼續(xù)循環(huán)搜索,直到循環(huán)至最大的搜索深度(@MaxLevel smallint=100)或找到切點(diǎn)。要是到100層都沒搜索到切點(diǎn),將放棄搜索。這里使用最大可搜索深度@MaxLevel,目的是控制由于數(shù)據(jù)量大可能會(huì)導(dǎo)致性能差,因?yàn)樵谶@里數(shù)據(jù)量與搜索性能成反比。代碼中還說到一個(gè)正向和反向搜索,主要是相對(duì)Node 和 RelatedNode來說,它們兩者互為參照對(duì)象,進(jìn)行向外搜索使用。

下面是存儲(chǔ)過程的執(zhí)行:

復(fù)制代碼 代碼如下:

use TestDB

go

exec dbo.up_GetPath

        @Node = 'p',

@RelatedNode = 'j'

go

你可以根據(jù)需要來,賦予@Node 和 @RelatedNode不同的值。

拓展:

前面的例子,可擴(kuò)展至城市的公交路線,提供兩個(gè)站點(diǎn),搜索經(jīng)過這兩個(gè)站點(diǎn)最少站點(diǎn)公交路線;可以擴(kuò)展至社區(qū)的人際關(guān)系的搜索,如一個(gè)人與另一個(gè)人想認(rèn)識(shí),那么他們直接要經(jīng)過多少個(gè)人才可以。除了人與人直接有直接的朋友、親戚關(guān)聯(lián),還可以通過人與物有關(guān)聯(lián)找到人與人關(guān)聯(lián),如幾個(gè)作家通過出版一個(gè)本,那么就說明這幾個(gè)人可以通過某一本書的作者列表中找到他們存在共同出版書籍的關(guān)聯(lián),這為搜索兩個(gè)人認(rèn)識(shí)路徑提供參考。這問題可能會(huì)非常大復(fù)雜,但可以這樣的擴(kuò)展。

小結(jié):

這里只是找兩個(gè)節(jié)點(diǎn)的所有路徑中,節(jié)點(diǎn)數(shù)最少的路徑,在實(shí)際的應(yīng)用中,可能會(huì)碰到比這里更復(fù)雜的情況。在其他的環(huán)境或場(chǎng)景可能會(huì)帶有長(zhǎng)度,時(shí)間,多節(jié)點(diǎn),多作用域等一些信息。無論如何,一般都要參考一些原理,算法來實(shí)現(xiàn)。

您可能感興趣的文章:
  • SQLServer地址搜索性能優(yōu)化
  • 在SQL Server 2005所有表中搜索某個(gè)指定列的方法
  • sqlserver中在指定數(shù)據(jù)庫的所有表的所有列中搜索給定的值
  • SQL Server 全文搜索功能介紹

標(biāo)簽:貴州 昭通 重慶 上海 新鄉(xiāng) 拉薩 呼和浩特 江蘇

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《在SQL Server中實(shí)現(xiàn)最短路徑搜索的解決方法》,本文關(guān)鍵詞  在,SQL,Server,中,實(shí)現(xiàn),最短,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《在SQL Server中實(shí)現(xiàn)最短路徑搜索的解決方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于在SQL Server中實(shí)現(xiàn)最短路徑搜索的解決方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    中文字幕人妻精品一区| 欧美主播一区二区三区美女 久久精品人| 国内欧美视频一区二区| 黄色av片三级三级三级免费看| 欧美日韩国产高清一区二区| 午夜国产一区二区三区| 国产精品免费看片| 日韩中文字幕a| 亚洲在线视频一区二区| 日本免费观看网站| 无码人妻一区二区三区一| 免费激情小视频| 亚洲天堂成人在线观看| 在线精品视频一区二区三四| 天堂精品视频| 中文字幕一区在线播放| 亚洲精品天堂在线| 国产精品10p综合二区| av一区二区三区四区| 国产成人在线视频观看| 日本1区2区3区视频| 大片免费在线看视频| 国产盗摄xxxx视频xxx69| 日本高清一区| 日韩极品在线观看| 2023欧美最顶级a∨艳星| 国内精品在线观看视频| 91精品国产色综合久久ai换脸| 一区二区亚洲精品| 中文字幕日本视频| 日韩精品电影网| 国产在线精品播放| 国产成人免费视频一区| 白白操在线视频| 国产一区啦啦啦在线观看| 伊人春色在线| 成人免费xxxxx在线视频| 欧美日韩亚洲91| 9l视频自拍九色9l视频成人| 日韩欧美卡一卡二| 亚洲一区尤物| 日韩精品一区二区久久| 91短视频在线观看| 四色永久网址| 天天躁日日躁狠狠躁免费麻豆| 欧美精品入口| 欧美日韩人人澡狠狠躁视频| 日本道中文字幕| 操她视频网站| 激情图片小说一区| 欧美日本在线| 超碰福利在线观看| 激情综合网址| 国产日韩一区二区三区在线| 99国产超薄丝袜足j在线观看| 97精品一区二区三区| 日韩精品视频免费在线观看| 久久久三级国产网站| 日韩欧美成人一区二区三区| 欧美xx视频| 国产综合色在线观看| 午夜久久久久久久久久久| 免费av观看网址| 日本xxxx高清色视频| av网站导航在线观看免费| 97在线精品| 国产精品久久久久福利| 免费看黄网站在线观看| 亚洲网站在线免费观看| 国产伦精品一区二区三区视频网站| 欧美激情综合五月色丁香小说| 黄色性生活一级片| 人妻少妇精品无码专区久久| 国产精品第七页| 免费毛片aaaaaa| 精品一区电影| 户外露出精品视频国产| 亚洲欧美在线x视频| 国产黄色免费网站| 国产一区二区三区朝在线观看| 好吊日免费视频| 亚洲一区二区久久久| 666精品在线| 日本全棵写真视频在线观看| 欧美在线关看| 日韩欧美的一区| 老子影院午夜伦不卡大全| 国产精品77777竹菊影视小说| av之家在线观看| www.亚洲一区二区三区| 99re在线播放| 国产精品无码一区二区三| 美女扒开内裤让男人桶| 国产又黄又猛视频| 国产精品第10页| 亚洲欧美自拍偷拍色图| 欧美天天综合| 在线精品视频在线观看高清| 能看的毛片网站| 国产精品嫩草影院av蜜臀| 一二三四中文字幕| 国产精彩视频一区二区| 精品av久久久久电影| 一二区成人影院电影网| 一本色道88久久加勒比精品| 盗摄精品av一区二区三区| 日韩中文字幕有码| 欧美一区二区三区激情| 天天爽夜夜爽夜夜爽精品视频| 午夜爽爽爽男女免费观看影院| 精品欧美一区二区精品少妇| 熟妇人妻无乱码中文字幕真矢织江| 免费91在线视频| av网站导航在线观看免费| www.黄在线观看| 日本私人影院在线观看| 91麻豆成人久久精品二区三区| 日韩a一级欧美一级| 欧美一区二区三区不卡视频| 奇米影视一区二区三区| 欧美在线中文字幕| 亚洲资源在线| 91视视频在线直接观看在线看网页在线看| 成人久久电影| 人人澡人人澡人人看欧美| 日韩成人精品一区二区| 成人在线观看高清| 牛夜精品久久久久久久| 亚洲人的天堂男人爽爽爽| 在线观看国产精品淫| japan高清日本乱xxxxx| 一区二区精品在线观看| 性网站在线观看| 亚洲欧美日韩一区二区三区四区| 国产视频精品久久| 国产福利微拍精品一区二区| 亚洲人和日本人hd| 99re6热在线精品视频| 国产精品熟女久久久久久| 波多野结衣不卡视频| 国产欧美日本一区视频| 国产三级中文字幕| 91精品久久久久久久久中文字幕| 欧美成人一区在线观看| 成人高潮免费视频| 曰本三级日本三级日本三级| 视频一区二区三区国产| 一个人看的www在线免费视频| 噜噜噜天天躁狠狠躁夜夜精品| 日韩在线麻豆| 精品蜜桃在线看| 亚洲成av人影院| 色老头视频在线观看| 日本精品入口免费视频| 三级av免费看| 99a精品视频在线观看| 污片免费在线观看| 欧美精品久久一区| 欧亚洲嫩模精品一区三区| 欧美日韩精品一区二区三区蜜桃| 欧美性猛交xxxxx水多| 一本大道香蕉久久| 日美av在线| 国产精品久久九九| 亚洲欧美偷拍卡通变态| 水蜜桃精品av一区二区| 国产农村妇女毛片精品| 国产伦精品一区二区免费| 四虎精品成人免费网站| 久草视频手机在线观看| 成人综合网址| 777午夜精品免费视频| 国产91色在线观看| 成人h动漫精品一区二| 日本免费高清不卡| 亚洲精品婷婷| 国产做受高潮69| 久久成人免费视频| 久久久久亚洲精品| 好了av在线| yellow91字幕网在线| 韩国一区二区在线播放| 免费黄色电影在线观看| 男女激烈动态图| 日本wwww视频| 色综合一区二区日本韩国亚洲| 精品成人国产| 亚洲美女色禁图| 激情视频在线观看一区二区三区| 中文字幕乱码免费| 九九在线精品视频| 一起草最新网址| 丁香五精品蜜臀久久久久99网站| xxxxx.日韩| 高清成人在线观看| 日韩精品在线免费观看| 欧美色道久久88综合亚洲精品| 亚洲精品成人久久久998| 色橹橹高清视频在线播放| 伊人狠狠av| 国产 日韩 亚洲 欧美| 爱啪导航一精品导航站| 黑色丝袜福利片av久久| 国产一区二区三区四区| 国产精品女人久久久久久| 2017天天干夜夜操| 久久久久亚洲精品| 日韩电影一区二区三区| 日韩av免费看网站| av无码久久久久久不卡网站| 一级片免费在线播放| 久久高清无码视频| 国产综合成人久久大片91| 9l亚洲国产成人精品一区二三| jizz免费视频| 婷婷综合久久一区二区三区| 美国一级片在线观看| 国产精品区二区三区日本| 精品视频第一页| 五月天久久综合网| 石原莉奈一区二区三区在线观看| eeuss影院www免费看| 国产一区二区视频在线看| 亚洲人被黑人高潮完整版| 国产99久久久国产精品| 夜色资源网av在先锋网站观看| 中文字幕亚洲一区| 成人黄色在线看| 精品在线观看视频| 国产九色在线播放九色| 国产精品久久久久久一区二区| 亚洲国产日韩一级| 欧美91看片特黄aaaa| 秋霞影院一区| 性少妇videosexfreexxx片| 成人国产精品日本在线| 黄色日韩精品| 色视频www在线播放国产| eeuss影院www在线| 亚洲www啪成人一区二区麻豆| 日本韩国欧美三级| 亚洲第一中文字幕在线观看| 国产精品第108页| 五月婷婷一区二区三区| av在线不卡免费看| 99精品女人在线观看免费视频| 狠狠人妻久久久久久| 亚洲一道本在线| 香蕉精品久久| 日韩久久精品成人| 99久久精品国产色欲| 99亚洲伊人久久精品影院红桃| 在线亚洲午夜片av大片| 影音先锋欧美精品| 日本一区高清在线视频| 九色porny视频在线观看| 久久本道综合色狠狠五月| 国产在线观看欧美| 色悠悠久久综合网| 日韩av一区二区在线播放| 美女啪啪无遮挡| 久久伊人中文字幕| 成人h动漫精品一区二| 男人的天堂在线免费视频| 日韩精品人妻中文字幕有码| 高清一区二区三区| 另类国产精品一区二区| 国产1区2区3区在线| 国产精品wwwww| 亚洲第一视频网| 九九热精品视频在线播放| 美女视频黄a视频全免费观看| 黄页在线观看| www国产视频| www.av在线.com| 亚洲国产电影在线观看| 欧美性猛交xxxx免费看久久久| 久久久不卡网国产精品二区| 护士精品一区二区三区| 国产a级片视频| 中文在线资源观看视频网站免费不卡| 成人有码在线视频| 国内精品在线观看视频| 自拍偷拍99| 日本一二三区在线视频| 精品久久久久久久一区二区蜜臀| 欧美不卡高清| 九色综合狠狠综合久久| 亚洲国产精品一区二区久久hs| 黄色毛片在线观看| 91精品国产欧美日韩| 美女扒开尿口让男人操亚洲视频网站| av免费网站在线观看| 伊人亚洲视频| 久久久久久中文字幕| 麻豆精品国产免费| 亚洲欧美视频在线观看视频| h视频在线免费观看| 欧美日韩久久久一区| 精品国自产拍在线观看| 亚洲精选免费视频| 日本色七七影院| 国产精品成人免费精品自在线观看| 亚洲精品喷潮一区二区三区| 久久免费视频3| 日韩成人一区二区三区在线观看| 欧美熟妇精品一区二区蜜桃视频| 国产精品男女猛烈高潮激情| 69堂免费视频| 后进极品白嫩翘臀在线视频| 91午夜视频| a毛片毛片av永久免费| 美女视频网站久久| 黄在线免费观看| 国产一区二区三区不卡视频网站| 精品无码一区二区三区爱欲| 久久久国产精品一区| 蜜臀av无码一区二区三区| 免费不卡在线视频| jizzjizz中国精品麻豆| 国产a视频精品免费观看| 91麻豆精品视频| wwwxx在线观看| 国产精品亚洲lv粉色| 国产精品综合av一区二区国产馆| 欧美大片在线看免费观看| 日本大片在线观看| 影音先锋中文一区|