<address id="xpjh9"><listing id="xpjh9"><meter id="xpjh9"></meter></listing></address>

<address id="xpjh9"><address id="xpjh9"><listing id="xpjh9"></listing></address></address>
<noframes id="xpjh9">
<noframes id="xpjh9">

<address id="xpjh9"><address id="xpjh9"><listing id="xpjh9"></listing></address></address>
    <form id="xpjh9"></form><address id="xpjh9"><listing id="xpjh9"><menuitem id="xpjh9"></menuitem></listing></address>

      <noframes id="xpjh9">
      VB.net 2010 視頻教程 VB.net 2010 視頻教程 VB.net 2010 視頻教程
      SQL Server 2008 視頻教程 c#入門經典教程 Visual Basic從門到精通視頻教程
      當前位置:
      首頁 > 編程開發 > C#編程 >
      • C#教程之用C#開發的一個通用的地鐵換乘查詢工具

      • 2019-01-20 21:11 來源:未知

      日常生活中,上班下班坐地鐵已經是常事,每當我想去某一個遠一點的地方,如果有地鐵首選就是地鐵,因為方便嘛!每次坐地鐵,我們都是憑肉眼去得出我們心中最佳的換乘方案,但是,如果對于線路較少的城市來說,這個方法是最快的,但是如果對于線路較多的城市,例如北京或者上海,十幾條線路交叉穿梭,我們可能看到都暈了,怎么坐才是時間最短路程最短的,我們要算出來不是不可以但是很麻煩,我們也可以想一想,百度地圖的地鐵換乘算法是怎么實現的,于是,閑著沒事,我就想寫一個通用的地鐵換乘查詢程序,想用計算機運算得出科學一點的換乘方案供自己參考,假設先不考慮站點間的距離差異,我們以乘坐站點數最少為最優方案,依照這個條件去編碼實現查找的算法,其實也沒用上什么高大上的算法,因為也不會哈哈,話不多說,先上效果圖:

      3.png

      有對應城市的線路圖(支持鼠標滾輪放大縮小):

      2.png

      站點智能提示:

      5.png

      項目結構圖:

      7.png

      我的開發思路:

      1、采用xml存儲站點數據,如下:

      6.png

      2、代碼中使用集合初始化線路數據

      復制代碼
       1 /// <summary>
       2         /// 初始化地鐵線路數據
       3         /// </summary>
       4         /// <param name="city">城市</param>
       5         public static void InitSubwayLine(CityEnum city)
       6         {
       7             if (AllSubwayLines != null && AllSubwayLines.Any() && _currentCity == city) return;
       8             _currentCity = city;
       9             var xmlName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "xml/" + city.ToString() + ".xml");
      10             _doc = XDocument.Load(xmlName);
      11             AllSubwayLines = _doc.Root.Elements().Select(x =>
      12             {
      13                 var line = new SubwayLine
      14                 {
      15                     No = x.Attribute("No").Value,
      16                     Name = x.Attribute("Name").Value,
      17                     IsRound = x.Attribute("IsRound") == null ? false : bool.Parse(x.Attribute("IsRound").Value),
      18                     Stations = x.Elements().Select((y, i) => new Station
      19                     {
      20                         Index = i,
      21                         Name = y.Attribute("Name").Value,
      22                         LineNo = x.Attribute("No").Value,
      23                         CanTransfer = y.Attribute("CanTransfer") == null ? false : bool.Parse(y.Attribute("CanTransfer").Value),
      24                         TransferNo = y.Attribute("TransferNo") == null ? null : y.Attribute("TransferNo").Value
      25                     }).ToList()
      26                 };
      27                 var translines = line.GetTransStations().Select(z => z.TransferNo.Split(',')).ToList();
      28                 foreach (var transline in translines)
      29                 {
      30                     foreach (var li in transline)
      31                     {
      32                         line.TransferLines.Add(li);
      33                     }
      34                 }
      35                 line.TransferLines = line.TransferLines.Distinct().ToList();
      36                 return line;
      37             }).ToList();
      38         }
      復制代碼

      3、分多種情況進行處理,核心代碼(代碼有點長,我也在想方法濃縮代碼,還望各位看官耐心(┬_┬)):

      復制代碼
        1         /// <summary>
        2         /// 獲取地鐵乘車信息
        3         /// </summary>
        4         /// <param name="depStation">出發站</param>
        5         /// <param name="destStation">到達站</param>
        6         /// <param name="city">所在城市</param>
        7         /// <returns>返回各種換乘方案</returns>
        8         public static List<QueryResult> GetRideSubwayInfo(string depStation, string destStation, CityEnum city)
        9         {
       10             InitSubwayLine(city);
       11             if (string.IsNullOrWhiteSpace(depStation) || string.IsNullOrWhiteSpace(destStation)
       12                 || !AllSubwayLines.Exists(x => x.Stations.Exists(y => y.Name.Equals(depStation)))
       13                 || !AllSubwayLines.Exists(x => x.Stations.Exists(y => y.Name.Equals(destStation))))
       14                 return null;//出發站或到達站在線路上不存在!
       15 
       16             //各種換乘提示
       17             //同一條線路
       18             var msg_oneline = "在{0}【{1}】上車,經過{2}站到達目的站【{3}】。\r\n具體線路為:\r\n(出發){4}(到達)\r\n總搭乘站點數:{5}\r\n";
       19             //換乘1次
       20             var msg_transOnce = "在{0}【{1}】上車,經過{2}站在【{3}】下車,換乘{4},經過{5}站到達目的站【{6}】。\r\n具體線路為:\r\n(出發){7}(此處換乘{4})-->{8}(到達)\r\n總搭乘站點數:{9}\r\n";
       21             //換乘2次
       22             var msg_transTwice = "在{0}【{1}】上車,經過{2}站在【{3}】下車,換乘{4},經過{5}站在【{6}】下車,換乘{7},經過{8}站到達目的站【{9}】。\r\n具體線路為:\r\n(出發){10}(此處換乘{4})-->{11}(此處換乘{7})-->{12}(到達)\r\n總搭乘站點數:{13}\r\n";
       23             //換乘3次
       24             var msg_transThreetimes = "在{0}【{1}】上車,經過{2}站在【{3}】下車,換乘{4},經過{5}站在【{6}】下車,換乘{7},經過{8}站在【{9}】下車,換乘{10},經過{11}站到達目的站【{12}】。"
       25                 + "\r\n具體線路為:\r\n(出發){13}(此處換乘{4})-->{14}(此處換乘{7})-->{15}(此處換乘{10})-->{16}(到達)\r\n總搭乘站點數:{17}\r\n";
       26             //換乘4次
       27             var msg_transFourtimes = "在{0}【{1}】上車,經過{2}站在【{3}】下車,換乘{4},經過{5}站在【{6}】下車,換乘{7},經過{8}站在【{9}】下車,換乘{10},經過{11}站在【{12}】下車,換乘{13},經過{14}站到達目的站【{15}】。"
       28                 + "\r\n具體線路為:\r\n(出發){16}(此處換乘{4})-->{17}(此處換乘{7})-->{18}(此處換乘{10})-->{19}(此處換乘{13})-->{20}(到達)\r\n總搭乘站點數:{21}\r\n";
       29 
       30             //保存各種換乘方案
       31             var result = new List<QueryResult>();
       32             //第一步:先查找始發站和到達站在哪一條線路
       33             var afterDepLines = GetAcrossLines(depStation);
       34             var afterDestLines = GetAcrossLines(destStation);
       35             //根據同一條線和不同線路展開分析
       36             if (IsSameLine(depStation, destStation))
       37             {
       38                 #region 同一條線路
       39                 var commLines = afterDepLines.Where(x => afterDestLines.Select(y => y.No).Contains(x.No)).ToList();
       40                 //判斷線路是否相同,相同直接計算站點距離
       41                 var depIndex = GetIndexOnLine(depStation, commLines.First());
       42                 var destIndex = GetIndexOnLine(destStation, commLines.First());
       43                 var crossStations = commLines.First().Stations.Between(depIndex, destIndex).Select(x => x.Name).ToList();
       44                 var range = crossStations.Count - 1;
       45                 if (depIndex > destIndex) crossStations.Reverse();
       46                 var rs = msg_oneline.FormatTo(commLines.First().ToString(), depStation, range, destStation,
       47                          crossStations.ToJoinString(), range);
       48                 result.Add(new QueryResult() { Description = rs, Range = range });
       49                 #endregion
       50             }
       51             else
       52             {
       53                 #region 不同線路
       54                 if (!IsTransferStation(depStation) && !IsTransferStation(destStation))//如果始發站和終點站都不是換乘站,則表示始發站和到達站都是只有一條線路通過
       55                 {
       56                     if (afterDepLines.First().IsIntersect(afterDestLines.First()))
       57                     {
       58                         #region 如果兩條線路交叉,一定有換乘站點
       59                         var clist = GetAcrossStations(afterDepLines.First(), afterDestLines.First()).Select(x => x.Name).ToList();
       60                         var i = GetIndexOnLine(depStation, afterDepLines.First());
       61                         var j = GetIndexOnLine(clist.First(), afterDepLines.First());
       62                         var k = GetIndexOnLine(destStation, afterDestLines.First());
       63                         var l = GetIndexOnLine(clist.First(), afterDestLines.First());
       64                         var coss1 = afterDepLines.First().Stations.Between(i, j).Select(x => x.Name).ToList();
       65                         var coss2 = afterDestLines.First().Stations.Between(k, l).Select(x => x.Name).ToList();
       66                         if (i > j) coss1.Reverse();
       67                         if (k < l) coss2.Reverse();
       68                         var rang1 = coss1.Count - 1;
       69                         var rang2 = coss2.Count - 1;
       70                         var h = rang1 + rang2; //站點數
       71                         var rs = msg_transOnce.FormatTo(afterDepLines.First().ToString(), depStation, rang1, clist.First(),
       72                             afterDestLines.First().ToString(), rang2, destStation,
       73                             coss1.ToJoinString(), coss2.Where(x => x != clist.First()).ToJoinString(), h);
       74                         result.Add(new QueryResult()
       75                         {
       76                             Description = rs,
       77                             Range = h,
       78                             TransferStations = new List<string>() { clist.First() },
       79                             TransferTimes = 1
       80                         });
       81                         #endregion
       82                     }
       83                     else
       84                     {
       85                         #region 不交叉,需要通過第三條線路換乘,即多次換乘
       86                         var depSta = GetStation(depStation);
       87                         var destSta = GetStation(destStation);
       88                         //找出兩條線路的可換乘站點,找出可換乘相同線路的站點
       89                         var trans1 = afterDepLines.First().GetTransStations();
       90                         var trans2 = afterDestLines.First().GetTransStations();
       91                         var trans3 = new List<Station>();
       92                         var trans4 = new List<Station>();
       93                         var expets = trans1.Join(trans2, x => x.TransferNo, y => y.TransferNo, (x, y) =>
       94                         {
       95                             trans3.Add(x);
       96                             trans4.Add(y);
       97                             return x.Name + "---" + y.Name;
       98                         }).ToList();
       99                         if (expets.Any())
      100                         {
      101                             #region 兩次換乘
      102                             //trans3.Count和trans4.Count必定相等
      103                             //計算最短距離,列出所有換乘方案
      104                             for (var i = 0; i < trans3.Count; i++)
      105                             {
      106                                 var tranLine = GetLine(trans3[i].TransferNo);
      107                                 //獲取這兩個站點在此線路的索引                   
      108                                 var ix1 = depSta.Index;
      109                                 var ix2 = destSta.Index;
      110                                 var iix1 = GetIndexOnLine(trans3[i].Name, depSta.LineNo);
      111                                 var iix2 = GetIndexOnLine(trans4[i].Name, destSta.LineNo);
      112                                 var tx1 = GetIndexOnLine(trans3[i].Name, tranLine);
      113                                 var tx2 = GetIndexOnLine(trans4[i].Name, tranLine);
      114 
      115                                 var depRange = afterDepLines.First().Stations.Between(ix1, iix1).Select(x => x.Name).ToList();
      116                                 var destRange = afterDestLines.First().Stations.Between(ix2, iix2).Select(x => x.Name).ToList();
      117                                 var transRange = tranLine.Stations.Between(tx1, tx2).Select(x => x.Name).ToList();
      118                                 if (ix1 > iix1) depRange.Reverse();
      119                                 if (ix2 < iix2) destRange.Reverse();
      120                                 if (tx1 > tx2) transRange.Reverse();
      121                                 var r1 = depRange.Count - 1;
      122                                 var r2 = destRange.Count - 1;
      123                                 var r3 = transRange.Count - 1;
      124                                 var r = r1 + r2 + r3;
      125                                 var rs = msg_transTwice.FormatTo(afterDepLines.First().ToString(), depStation, r1,
      126                                     trans3[i].Name,
      127                                     tranLine.ToString(), r3, trans4[i].Name, afterDestLines.First().ToString(), r2,
      128                                     destStation, depRange.ToJoinString(),
      129                                         transRange.Where(x => !x.IsSame(trans3[i].Name) && !x.IsSame(trans4[i].Name)).ToJoinString(),
      130                                      destRange.ToJoinString(), r);
      131                                 result.Add(new QueryResult()
      132                                 {
      133                                     Description = rs,
      134                                     Range = r,
      135                                     TransferTimes = 2,
      136                                     TransferStations = new List<string>() { trans3[i].Name, trans4[i].Name }
      137                                 });
      138                             }
      139                             #endregion
      140                         }
      141                         #region 查找3次以上換乘的可能結果,尋求最短距離
      142                         var trlines1 = afterDepLines.First().TransferLines.Select(GetLine).ToList();
      143                         var trlines2 = afterDestLines.First().TransferLines.Select(GetLine).ToList();
      144                         var destss = new List<Station>();
      145 
      146                         #region 換乘3次
      147                         foreach (var depline in trlines1)
      148                         {
      149                             foreach (var destline in trlines2)
      150                             {
      151                                 var ss = destline.GetAcrossStations(depline);
      152                                 if (!ss.Any()) continue; //3次換乘
      153                                 var slist1 = afterDepLines.First().GetAcrossStations(depline);
      154                                 if (!slist1.Any()) continue;
      155                                 var s1 = slist1.GetClosestStation(depSta.Name);
      156                                 var s1_ix1 = depSta.Index;
      157                                 var s1_ix2 = s1.Index;
      158                                 var s1_range =
      159                                     afterDepLines.First()
      160                                         .Stations.Between(s1_ix1, s1_ix2)
      161                                         .Select(x => x.Name)
      162                                         .ToList();
      163                                 var s1_h = s1_range.Count - 1;
      164                                 if (s1_ix1 > s1_ix2) s1_range.Reverse();
      165 
      166                                 var s2_ix1 = GetIndexOnLine(s1.Name, depline);
      167                                 var s2_ix2 = GetIndexOnLine(ss.First().Name, depline);
      168                                 var s2_range = depline.Stations.Between(s2_ix1, s2_ix2).Select(x => x.Name).ToList();
      169                                 var s2_h = s2_range.Count - 1;
      170                                 if (s2_ix1 > s2_ix2) s2_range.Reverse();
      171 
      172                                 var slist3 = destline.GetAcrossStations(afterDestLines.First());
      173                                 if (!slist3.Any()) continue;
      174                                 var s3 = slist3.GetClosestStation(ss.First().Name);
      175                                 var s3_ix1 = s3.Index;
      176                                 var s3_ix2 = ss.First().Index;
      177                                 var s3_range = destline.Stations.Between(s3_ix1, s3_ix2).Select(x => x.Name).ToList();
      178                                 var s3_h = s3_range.Count - 1;
      179                                 if (s3_ix1 < s3_ix2) s3_range.Reverse();
      180 
      181                                 var s4_ix1 = GetIndexOnLine(s3.Name, afterDestLines.First());
      182                                 var s4_ix2 = destSta.Index;
      183                                 var s4_range =
      184                                     afterDestLines.First()
      185                                         .Stations.Between(s4_ix1, s4_ix2)
      186                                         .Select(x => x.Name)
      187                                         .ToList();
      188                                 var s4_h = s4_range.Count - 1;
      189                                 if (s4_ix1 > s4_ix2) s4_range.Reverse();
      190 
      191                                 var h = s1_h + s2_h + s3_h + s4_h;
      192                                 var rs = msg_transThreetimes.FormatTo(afterDepLines.First().ToString(), depStation,
      193                                     s1_h, s1.Name,
      194                                     depline.ToString(), s2_h, ss.First().Name,
      195                                     GetLine(ss.First().LineNo).ToString(), s3_h, s3.Name,
      196                                     afterDestLines.First().ToString(), s4_h, destStation, s1_range.ToJoinString(),
      197                                     s2_range.Where(x => x != s1.Name).ToJoinString(),
      198                                     s3_range.Where(x => x != ss.First().Name).ToJoinString(),
      199                                     s4_range.Where(x => x != s3.Name).ToJoinString(), h);
      200                                 result.Add(new QueryResult()
      201                                 {
      202                                     Description = rs,
      203                                     Range = h,
      204                                     TransferTimes = 3,
      205                                     TransferStations =
      206                                         new List<string>()
      207                                         {
      208                                                         s1.Name,
      209                                                         ss.First().Name,
      210                                                         s3.Name
      211                                         }
      212                                 });
      213                                 destss.AddRange(ss);
      214                             }
      215                         }
      216                         #endregion
      217 
      218                         if (!destss.Any()) //換乘4次
      219                         {
      220                             #region 換乘4次
      221                             foreach (var depline in trlines1)
      222                             {
      223                                 foreach (var destline in trlines2)
      224                                 {
      225                                     var deptrlines =
      226                                         depline.TransferLines.Where(x => x != afterDepLines.First().No)
      227                                             .Select(GetLine)
      228                                             .ToList();
      229                                     foreach (var line in deptrlines)
      230                                     {
      231                                         var s1 = line.GetAcrossStations(destline);
      232                                         if (!s1.Any()) continue; //4次換乘
      233                                         var trlist1 = afterDepLines.First().GetAcrossStations(depline);
      234                                         if (!trlist1.Any()) continue;
      235                                         var tr1 = trlist1.GetClosestStation(depSta.Name);
      236                                         var s1_ix1 = depSta.Index;
      237                                         var s1_ix2 = tr1.Index;
      238                                         var s1_range =
      239                                             afterDepLines.First()
      240                                                 .Stations.Between(s1_ix1, s1_ix2)
      241                                                 .Select(x => x.Name)
      242                                                 .ToList();
      243                                         var h1 = s1_range.Count - 1;
      244                                         if (s1_ix1 > s1_ix2) s1_range.Reverse();
      245 
      246                                         var trlist2 = GetLine(tr1.TransferNo).GetAcrossStations(line);
      247                                         if (!trlist2.Any()) continue;
      248                                         var tr2 = trlist2.GetClosestStation(tr1.Name);
      249                                         var s2_ix1 = GetIndexOnLine(tr1.Name, depline);
      250                                         var s2_ix2 = tr2.Index;
      251                                         var s2_range =
      252                                             depline.Stations.Between(s2_ix1, s2_ix2)
      253                                                 .Select(x => x.Name)
      254                                                 .ToList();
      255                                         var h2 = s2_range.Count - 1;
      256                                         if (s2_ix1 > s2_ix2) s2_range.Reverse();
      257 
      258                                         var s3_ix1 = GetIndexOnLine(tr2.Name, line);
      259                                         var s3_ix2 = s1.First().Index;
      260                                         var s3_range =
      261                                             line.Stations.Between(s3_ix1, s3_ix2)
      262                                                 .Select(x => x.Name)
      263                                                 .ToList();
      264                                         var h3 = s3_range.Count - 1;
      265                                         if (s3_ix1 > s3_ix2) s3_range.Reverse();
      266 
      267                                         var trlist3 = destline.GetAcrossStations(afterDestLines.First());
      268                                         if (!trlist3.Any()) continue;
      269                                         var tr3 = trlist3.GetClosestStation(s1.First().Name);
      270                                         var s4_ix1 = GetIndexOnLine(s1.First().Name, destline);
      271                                         var s4_ix2 = tr3.Index;
      272                                         var s4_range =
      273                                             destline.Stations.Between(s4_ix1, s4_ix2)
      274                                                 .Select(x => x.Name)
      275                                                 .ToList();
      276                                         var h4 = s4_range.Count - 1;
      277                                         if (s4_ix1 > s4_ix2) s4_range.Reverse();
      278 
      279                                         var s5_ix1 = GetIndexOnLine(tr3.Name, afterDestLines.First());
      280                                         var s5_ix2 = destSta.Index;
      281                                         var s5_range =
      282                                             afterDestLines.First()
      283                                                 .Stations.Between(s5_ix1, s5_ix2)
      284                                                 .Select(x => x.Name)
      285                                                 .ToList();
      286                                         var h5 = s5_range.Count - 1;
      287                                         if (s5_ix1 > s5_ix2) s5_range.Reverse();
      288                                         var h = h1 + h2 + h3 + h4 + h5;
      289                                         var rs =
      290                                             msg_transFourtimes.FormatTo(afterDepLines.First().ToString(),
      291                                                 depStation, h1, tr1.Name,
      292                                                 depline.ToString(), h2, tr2.Name,
      293                                                 line.ToString(), h3, s1.First().Name,
      294                                                 destline.ToString(), h4, tr3.Name,
      295                                                afterDestLines.First().ToString(), h5, destStation,
      296                                                 s1_range.ToJoinString(),
      297                                                 s2_range.Where(x => x != tr1.Name).ToJoinString(),
      298                                                 s3_range.Where(x => x != tr2.Name).ToJoinString(),
      299                                                 s4_range.Where(x => x != tr2.Name && x != s1.First().Name).ToJoinString(),
      300                                                 s5_range.Where(x => x != tr3.Name).ToJoinString(), h);
      301                                         result.Add(new QueryResult()
      302                                         {
      303                                             Description = rs,
      304                                             Range = h,
      305                                             TransferTimes = 4,
      306                                             TransferStations =
      307                                                 new List<string>()
      308                                                 {
      309                                                             tr1.Name,
      310                                                             tr2.Name,
      311                                                             s1.First().Name,
      312                                                             tr3.Name
      313                                                 }
      314                                         });
      315                                         destss.AddRange(s1);
      316                                     }
      317                                 }
      318                             }
      319                             #endregion
      320                         }
      321                         if (!destss.Any())//換乘4次以上
      322                         {
      323 
      324                         }
      325                         #endregion
      326                         #endregion
      327                     }
      328                 }
      329                 else //始發站和到達站有其中一個是換乘站
      330                 {
      331                     //
            
      
      
      
        
      江苏快3 www.2061vv.com | www.337466.com | www.h7788r.com | 7508b.com | www.335274.com | www.9971004.com | www.sands6789.com | p2490.com | afcp07.com | www.c6127.com | www.4996ls.com | www.4107m.com | 3662k.com | z47479.com | www.3933f.cc | www.56011t.com | www.34889.com | 7792b.com | ee5443.com | www.126309.com | www.86267y.com | www.80969u.com | www.hg0088.lv | 00773u.com | 1407s.com | www.855608.com | www.3775d.com | www.fhyl99.com | www.68666m.com | 2147008.com | 6641q.com | www.931670.com | www.48330g.com | www.063263.com | www.hg158.ag | zhcpmm.com | 22299uu.com | 61329999.com | www.770001.com | www.311999.cc | www.n456x.com | www.66654666.com | yhw3.cc | 0123.com | 55zz8331.com | cr789.co | www.433112.com | www.50052x.com | www.6687b.com | www.3893k.com | www.www8181msc.com | 9949s.com | 62222x.com | 33382zz.com | www.536180.com | www.98528e.com | www.wns123k.com | www.8888bmw.com | www.969516.com | 5003ccc.com | a98c.com | 9506d.com | 5281999.c0m | 8522bbbb.com | www.391438.com | www.5091a.com | www.ylylc01.com | www.922424.com | www.2377msc.com | www.5500y8.com | www.0686000.com | 00jj8331.com | 3522ff.cc | 23478.com | 3379ff.com | 1005hh.com | www.347918.com | www.jcai3.com | www.4323n.com | www.42070010.com | www.d12189.com | www.c558.vip | www.3030011.com | www.901008.com | www.00618t.com | www.yun505.com | 3078m.com | 90307q.com | 750.com | 9506z.com | 36403355.com | 3568cc.com | 876878i.com | jing6222.com | 6628000.com | www.132918.com | www.550274.com | www.931670.com | www.2788cai.com | www.77210f.com | www.ihg5566.com | www.47707.net | www.4196n.com | www.8473i.com | www.wank3.com | www.cq0066.com | www.65833.com | www.698774.com | www.215252.com | www.0747700.com | www.799msc.com | www.hg2168.com | www.bet1677.com | www.629554.com | n07958.net | 44077y.com | 2934a.com | 8827ccc.com | zhcp33.com | 7744www.com | 7989z.com | tzvip2024.com | 7508m.com | 62222.com | df8z.com | 2618zz.com | www.un222.com | www.wst.vip | www.65533b.com | www.pj22886.com | www.xpj8878.com | www.pjbet555.com | www.ylg122.com | www.vns77999.com | www.yin3737.com | www.ggo.99233o.com | www.55545a.com | www.6880ll.com | www.06386666.com | www.8998887.com | www.pj56f.com | www.77802x.com | www.50064m.com | www.6364t.com | www.hcjt0.com | www.808910.com | www.533091.com | www.50026e.com | 80850y.com | 52688b.com | gg2949.com | aaa444000.com | 40033uuu.com | 2698w.com | www.033033v.com | www.cr689.com | www.6403jj.com | www.207622.com | www.b7b8.com | www.38775ii.com | www.4331o.com | www.62355.com | www.cp7836.com | www.398793.com | vns1.vip | 3967g.com | 30688a.com | 62222z.com | 5456o.com | www.hg755.com | www.js40123.com | www.c44kk.com | www.530079.com | www.8998883.com | www.2632u.com | www.567231.com | 55oo8332.com | mg437788.com | gg3888.com | www.yun388.com | www.133414.com | www.1389oo.com | www.4408598.com | www.hg99957.com | www.022gx.cc | 5539822.com | 0199955.com | 5856hhh.com | ambjl03.com | www.4107n.com | www.fhyl99.com | www.2021x.com | www.77801l.com | www.638809.com | 998j.cc | 2767f.com | 000000oe.cn | www.ylhg9898.com | www.lpj2222.com | www.y6091.com | www.12455s.com | www.444070.com | 28758z.com | 66671d.com | 188qq22.com | www.y186x.com | www.789ww.com | www.yh7771.com | www.825126.com | 5558940.com | 3568kk.com | pj677x.com | www.192299.com | www.80188x.com | www.61524s.com | www.223085.com | 78112233.com | 2820i.com | www.6666zs.com | www.yh234g.com | www.55587.com | www.88065e.com | 300089v.com | 8577h.cc | www.rb362.com | www.48330e.com | www.701504.com | 61789q.com | 5309a.com | www.xjs8891.com | www.sha2299.com | www.86889.cc | 4503.com | pj7686.com | www.99399c.com | www.e3410.com | www.978261.com | js75.com | 1077xxx.com | www.872878.com | www.100a56.com | www.622709.com | 19991o.com | zhcpvv.com | www.bz7888.com | www.16065r.com | www.103380.com | 4880x.com | www.yinhecc77.com | www.4694n.com | www.7793m.com | 450371.com | 8722ffff.com | www.0733fdc.net | www.13434a.com | www.196148.com | hbs226.com | www.lfg000.com | www.123044.com | www.916730.com | 11555156.com | www.wnsr858.com | www.hg98b.com | www.hy5508.com | 01885.com | 47749i.com | www.lyjcp.cc | www.605999aa.com | 9149g.com | www.vns0809.com | www.js79903.com | www.586960.com | 0289l.com | www.hj200766.com | www.flb905.com | www.153880.com | 32555b.com | www.hg8357.com | www.99677z.com | 228888n.com | 500000701.com | www.27363y.com | www.zfcp2.com | 365vip500.cc | www.66930022.com | www.4323w.com | 77662007.com | www.56733g.com | www.x80288.com | www.367474.com | 55967l.com | www.hg8043.com | www.32123q.com | 084939.com | www.wn2008.com | www.5719v.com | www.006150.com | bs78911.com | www.3846j.com | www.cp8009.cc | 92266z.com | www.yh22338.com | www.7406.AG | 6594tt.com | www.cp2y.com | www.hg7122.com | 31435544.com | www.tyc9907.com | www.w84b.com | 99111mm.com | 3544b.com | www.t32031.com | jianluntan.pw | 51133d.com | www.d8007.com | www.gu64.com | 3566ss.com | www.js504.com | www.tx65.com | 641768.com | www.lzlylc.com | www.904830.com | 9068dd.com | www.063261.com | www.595601.com | 2234.cc | www.000clf.com | www.534680.com | 6261ee.com | www.jz95533.com | www.239544.com | 2643r.com | www.33678bb.com | 123456xx.cc | www.888vip8.com | www.hd8679.com | hb9788.com | www.xpj99896.com | www.102ak.com | 9506g.com | www.caipiao88d.com | www.204500.com | 2373.com | www.v556677.com | 10050533.com | www.322511.com | www.857981.com | 7720.net | www.38775ee.com | j72227.com | www.1770q.com | www.hczx9.com | 6261e.com | www.1559507.com | 4195e.com | www.nbe666.com | www.11ttz.com | nn500t.com | www.47506e.com | 3169c.com | www.1443b.com | www.912162.com | 3049y.com | www.12345602.cc | x88833.com | www.1www.0079988.com | www.66652o.com | www.pjliaoning.com | www.08588t.com | 5888.ch | www.v88139.com | 996622zz.com | www.jb11111.com | www.605733.com | 2649pp.com | www.4323f.com | ss67890.com | www.sha0044.com | 131vv.net | www.tyc658.com | www.371679.com | www.wn2088.com | www.2934m.com | 28288o.com | www.598282c.com | 3473e.com | www.hyi3.com | 444144.com | www.9611ll.com | 2096t.com | www.pj6767.com | www.586974.com | www.ylhg1818.com | www.df76.com | 3936b.com | www.5086b.com | 8883.cc | www.99788j.com | 50067x.com | www.68993277.com | 3640pp.com | www.8866kcd.com | 4789cz.com | www.704902.com | 1188xpj.com | www.bet91487.com | y01234.com | www.88166h.com | 3678.com | www.00773f.com | 20042.com | www.28000y.com | 56987bb.com | www.rycp165.com | js1.com | www.1168a.com | feicai0311.com | www.0057c.com | 61999ff.com | www.19019y.com | 1775vv.com | www.999jyh.com | 00773x.com | www.678js555.com | 8037w.com | www.087s.com | 3685c.com | www.89894g.com | 0033e.cc | www.ztc7.com | www.bet1699.com | www.529799.com | www.o27229.com | www.163025.com | www.xg536.com | 88773885.com | www.50999f.com | bwin8o.com | www.12136o.com | sss40033.com | www.66621w.com | 8036cc.com | www.939763.com | www.hgbet66.com | www.099210.com | www.800hm.com | 1389rr.com | www.bwinyz44.com | 4165a.com | www.176.ag | 256777.com | www.819920.com | www.330099u.com | 9694j.com | www.85857r.com | bwinkkk.com | www.7249j.com | 500000751.com | www.hqcp1.com | www.40686d.com | 2546n.com | www.pj88u.com | 2214c.com | www.78700k.com | www.0686222.com | www.217030.com | www.hg8359.com | 7736o.com | www.789583.com | 2381i.com | www.641277.com | www.hg833.com | 131z.net | www.581137.com | 2805n.com | www.399180.com | www.9196hg.com | 8381ii.com | www.0601u.com | www.y611.com | 67877n.com | www.04567w.com | zb11.com | www.rcw8844.com | www.8797aavv.com | 3334136.com | www.js18683.com | www.814suncity.com | 7196hh.com | www.9b007.com | 8037t.com | www.ch8456.com | www.bm9998.com | 9089.com | www.12455h.com | www.09569u.com | hunibe.com | www.67kk.com | www.617707.com | 3983012.com | www.12136s.com | 6177009.com | 88905353.com | www.80188g.com | 3225k.com | www.209713.com | www.7415ww.com | vns9539.com | www.473552.com | www.27363x.com | 50067f.com | www.606285.com | www.dfh261.com | 2078l.com | www.550294.com | www.7370.com | xl224.com | www.80075o.com | www.173151.com | xx56988.com | 0033l.cc | www.j63568.com | www.23426b.com | 1669n.com | www.ya2019l.com | www.8814b8.com | 9964j.com | www.5854a.cc | www.76775g.com | wx2211.com | www.338062.com | www.89677n.com | xpj70064.com | blm385.com | www.39500hh.com | www.yh18826.com | 3640zz.com | www.697206.com | www.5446pp.com | 7004.am | 9068t.com | www.91233p.com | www.xy9999.com | 51133vv.com | www.366098.com | www.l063801.com | www.zr9933.com | yun889.com | www.wct3.com | www.hh635.com | 97799w.com | 2373e.com | www.33588d.com | www.113470.com | 44uu8332.com | zx3144.com | www.151019.com | www.hg0019.com | h787.com | 22p1.cc | www.97655n.com | www.86939.com | 1506766.com | 80850ff.com | www.35155m.com | www.bai3311.com | 2373x.com | 08820066.com | www.565hc.com | www.jj55826.com | www.dz826.com | 21289455.com | www.550347.com | www.12136k.com | www.22995004.com | 00556132.com | hgyz88.com | www.50064q.com | www.5049b.com | 6146b.com | 55331s.com | www.616330.com | www.38775rr.com | www.vinisi06.com | 540855.com | 159666b.com | www.zcwf1.com | www.vip9584.com | www.3643e.com | 35222w.com | 66300vip44.com | www.9478d.com | www.88166e.com | www.63877o.com | 4167d.com | 6594ss.com | www.50051s.com | www.38345f.com | www.1111wnsr.com | 4288k.com | 8790q.com | www.yfa3.com | www.32031.com | www.97321f.com | 3122w.com | hd81366.com | www.377291.com | www.0883888.com | www.lfcp123.com | www.am9977.com | 4167e.com | byj10.com | www.920959.com | www.63800d.com | www.432kj.com | www.xjs8893.com | uuu4165.com | 4997.com | www.936336.com | www.50.cc | www.lefa3333.com | www.v3304.com | 11005q.com | 1211.cc | www.069963.com | www.26163x.com | www.8645004.com | www.c6444.com | 1592m.com | 04666o.com | js06.app | www.202370.com | www.35918d.com | www.47506m.com | www.868681.com | www.kb840.com | 7605v.com | 51133ww.com | 4809d.com | www.c103.cc | www.6889782.com | www.19019d.com | www.yxlmwx.net | 19991.com | js92359.com | vv40033.com | 8294k.com | www.920564.com | www.pj56l.com | www.64566d.com | www.pj19119.com | www.40818f.com | 44yy8331.com | 4255ff.com | hh3336.com | qycp01.com | www.541911.com | www.8499o.com | www.59999.am | www.15365z.com | www.646456.com | www.40818b.com | 2381m.com | 822.cc | 33432z.com | n2894.com | 8018522.com | www.673290.com | www.00840j.com | www.bjl917.com | www.4058i.com | www.87665w.com | www.s874.vip | www.6666845.com | ca7099.com | 45637z.com | www4165.com | 3404p.cc | xh066.com | 80892b.com | www.269707.com | www.890482.com | www.9928ff.com | www.80wb.top | www.xpj6886.com | www.04567v.com | www.93036511.com | www.822822.com | www.66930044.com | www.93456.com | ee360360.cn | 2649kk.com | 3301855.com | 9068g.com | ww00558.com | 4037.com | P7570.com | vip66702.com | 075yy.com | www.062166.com | www.550374.com | www.877719.com | www.55clf.com | www.21202p.com | www.bet353657.com | www.81608f.com | www.yl61332.com | www.9895a.com | www.4996sd.com | www.7415t.com | www.01711.com | www.rk1177.com | www.8888tm.com | www.xg289.net | www.511111.com | www.44889u.com | www.v58854.com | www.0860c.com | www.10054455.com | www.332905.com | www.js46123.com | www.88365.net | www.9374v.com | www.pj8819.com | www.hg0056.com | www.95449j.com | www.56733n.com | www.jz977.com | www.long8603.com | www.48373.com | www.xinhao2233.com | www.hg1528.com | www.799003.com | www.w32126.cc | www.xhtd08.com | www.js30859.com | www.77788807.com | www.js05888.com | www.88837y.com | www.788078.com | www.36989c.com | www.929777.com | www.928668.com | www.vns3938.com | www.491888.com | www.cp0017.com | www.5099jj.com | www.673888f.com | www.yh234g.com | www.jsdc9111.com | www.0343g.com | www.954321g.com | www.95777w.com | www.25688k.com | www.88goc.com | www.897060.com | www.550214.com | www.158267.com | 301111.com | 15a43.net | pj00.com | 9659o.com | 55992007.com | 56988d.vip | www.hg430.com | www.55268xx.com | www.bb8005.com | www.www-26499.com | www.klcp385.com | www.1813bb.com | www.yh08118.com | www.95666w.com | www.015ac.com | www.633720.com | 9539u.com | 3mgmmmm.com | 58539999.com | sss4255.com | 44488u.com | www.4123uu.com | www.22gg940.com | www.397888b.com | www.hyi5.com | www.1117.com | www.8839j.com | www.653182.com | 99567j.com | 4774b.com | 61999.com | 9994cc15.com | www.fh6666.com | www.183543.com | www.l9478.com | www.1754r.com | www.770802.com | www.5zxz.com | www.150883.com | 3775w.com | 22411.com | 61329977.com | www.pjxianggang.com | www.33455b.com | www.55545y.com | www.bjl915.com | www.3416d.com | www.342377.com | 6868vv.cc | 277.ag | 588xxx.cc | www.wxr11.com | www.hjcp55.com | www.3846f.com | www.75850.cc | www.332092.com | 8577e.cc | 3534g.com | fuhao123.com | www.jing6667.com | www.10999q.com | www.110073.com | www.775780.com | 7945jj.com | kkkk19927.com | 8036ww.com | www.vns608.com | www.28000s.com | www.9286777.com | www.788464.com | 33567p.com | 3967z.com | 500000413.com | www.mng88.com | www.ts055.com | www.77803l.com | www.395477.com | jidu9.com | bet36500600.com | www.40818e.com | www.8k002.com | www.b98478.com | www.595953.com | tt6827.com | a2490.com | www.pj4180.com | www.19yh6.com | www.79520d.com | www.187516.com | 55323k.com | oo56988.com | www.yh8283.com | www.80188w.com | www.5522v.cc | l00351.com | 3467z.com | www.3089e.com | www.20199pp.com | www.6613622.com | www.314005.com | 6728.com | 9411uuu.com | www.hg7664.com | www.48330f.com | www.552703.com | hg986.com | 500000712.com | www.bj448.com | www.42456666.com | www.539126.com | 9506z.com | 5369l.com | www.55526o.com | www.0270j.com | www.50054a.com | ss4119.com | www.sun008.cc | www.28000w.com | www.5091j.com | 3552h.com | 62222g.com | www.5678096.com | www.50pay.cc | www.209881.com | 0289q.com | www.zzzz0291.com | www.4196y.com | www.876433.com | 876878p.com | 14340008.com | www.rycp163.com | www.23636vip.com | 2805u.com | 65005r.com | www.792777.com | www.16878e.com | cao568.com | 0015ff.com | www.004439.com | www.99080077.com | 2096p.com | 00773u.com | www.44400.cc | www.0270t.com | 5004rrr.com | 537a.cc | www.063263.com | www.5522z.cc | 06385353.com | www.dfs779.com | www.hg8ww.com | www.959209.com | s1915s.com | www.ts11888.com | www.078121.top | www.rcw789.com | 6664553.com | www.135605.com | www.89777e.com | 7935a.com | 2846n.com | www.808888k.com | www.c166.vip | 7945ll.com | www.f4737.com | www.flb677.com | 143545.com | 500000518.com | www.5049e.com | www.az0908.com | 88770076.com | www.fh7.927go.com | www.pj88.com | 777p1.cc | 2019tt.cc | www.7334h.com | www.755740.com | h4042.com | www.xpj195.com | www.50732j.com | 38989g.com | www.hg9952.com | www.js6969.com | www.055982.com | 4131.com | www.58665l.com | www.939809.com | 2172299.com | www.hg83555.com | www.417714.com | 1259w.com | www.10061006.com | www.xpj8668.com | vic81.com | 33115qq.com | www.b83377.com | 11018n.com | 6220gg.com | www.62979.com | 2443c.com | 5003g.com | www.2997709.com | 38989r.com | 40660007.com | www.68365e.com | 55555309.com | www.76060v.com | www.6889798.com | k8381.com | www.333133x.com | www.77803m.com | 9101908.com | www.33166.com | www.ban03.com | pp01234.com | www.2tyc.com | www.534554.com | 08820022com | www.6880kk.com | xmhouse.com | www.yh77701.com | www.68993238.com | bb0666.com | www.7165502.com | www.3479n.com | 8037mm.com | www.yh269831.com | www.377613.com | 11989s.com | www.7036fh.com | 0860b.com | www.uu0096.com | www.981jc.com | 8037nnn.com | www.4446aaa.com | 1cp2.com | www.35000.cc | www.67258c.com | 779644.com | www.35252q.com | www.037211.com | www.1869i.com | www.180662.com | 78117766.com | www.8886567.com | www.233104.com | 59599z.com | www.pjzxyl.cn | bet577t.com | www.77731l.com | 84496677.com | www.xhtd0099.com | www.99830.cc | 1294x.com | www.bwin930.co | 22995156.com | www.44447837.com | www.960201.com | 0033e.cc | www.1466o.com | 333pj8.cc | www.79500x.com | 105boo.com | www.21365ee.com | www.okw8.com | swtyxxx.com | www.159957.com | 2613l.com | www.cai73.cc | dd56988.com | www.910633.com | www.755903.com | 403144.com | www.0270d.com | eee67890.com | www.2000f.cc | 73567tg1.com | www.1667777.com | www.ba502.com | 1463m.com | www.g4042.com | 9971001.com | www.8522cn.com | www.612110.com | www.3983130.com | www.6832h.com | 32126x.net | www.16065w.com | 6723888.com | www.32031g.com | 44077.com | www.xpj5959.com | 3379yy.com | www.984365.com | 500000572.com | www.hxcp6.com | www.127283.com | www.4938t.com | www.577032.com | www.18735528058.com | www.0014p.com | feicai0599.com | www.60108s.com | 86811o.com | www.yl978.com | 8956789.com | www.93gj01.com | 55323d.com | www.57jsc.com | hjcp77.com | www.11599059.com | 67890aa.com | www.1434h.com | 4136q.com | www.0088hg.com | 57157v.com | www.087c.com | 67890xx.com | www.hg7225.com | 4036111.com | www.065815.com | ss00558.com |