锘??xml version="1.0" encoding="utf-8" standalone="yes"?>性欧美18~19sex高清播放,亚洲午夜在线,亚洲精品1区http://m.shnenglu.com/proyao/category/10226.html鍩虹涓嶇墷錛屽湴鍔ㄥ北鎽?.. 鎬ヤ笉寰?..zh-cnFri, 13 Aug 2010 01:02:39 GMTFri, 13 Aug 2010 01:02:39 GMT60Pick瀹氱悊錛堝緢鐗涚殑瀹氱悊錛?[杞琞http://m.shnenglu.com/proyao/archive/2009/10/06/97960.htmlAcaini.yaoyaoziiAcaini.yaoyaoziiTue, 06 Oct 2009 09:59:00 GMThttp://m.shnenglu.com/proyao/archive/2009/10/06/97960.htmlhttp://m.shnenglu.com/proyao/comments/97960.htmlhttp://m.shnenglu.com/proyao/archive/2009/10/06/97960.html#Feedback0http://m.shnenglu.com/proyao/comments/commentRss/97960.htmlhttp://m.shnenglu.com/proyao/services/trackbacks/97960.html緇欏畾欏剁偣搴ф爣鍧囨槸鏁寸偣錛堟垨姝f柟褰?/font>鏍肩偣錛夌殑綆鍗?a title=澶氶倞褰?>澶氳竟褰?/font>錛?strong>鐨厠瀹氱悊璇存槑浜嗗叾闈㈢НA鍜屽唴閮ㄦ牸鐐規(guī)暟鐩?em>i銆佽竟涓婃牸鐐規(guī)暟鐩?em>b鐨勫叧緋伙細A = i + b/2 - 1銆?

璇佹槑

鍥犱負鎵鏈夌畝鍗曞杈瑰艦閮藉彲鍒囧壊涓轟竴涓?a title=涓夎褰?>涓夎褰?/font>鍜屽彟涓涓畝鍗曞杈瑰艦銆傝冭檻涓涓畝鍗曞杈瑰艦P錛屽強璺?em>P鏈変竴鏉″叡鍚岃竟鐨勪笁瑙掑艦T銆傝嫢P絎﹀悎鐨厠鍏紡錛屽垯鍙璇佹槑P鍔犱笂T鐨?em>PT浜︾鍚堢毊鍏嬪叕寮忥紙I錛夛紝涓庡強涓夎褰㈢鍚堢毊鍏嬪叕寮忥紙II錛夛紝灝卞彲鏍規(guī)嵁鏁板褰掔撼娉?/font>錛屽浜庢墍鏈夌畝鍗曞杈瑰艦鐨厠鍏紡閮芥槸鎴愮珛鐨勩?

澶氳竟褰?/h3>

璁?em>P鍜?em>T鐨勫叡鍚岃竟涓婃湁c涓牸鐐廣?

  • P鐨勯潰縐細 iP + bP/2 - 1
  • T鐨勯潰縐細 iT + bT/2 - 1
  • PT鐨勯潰縐細
(iT + iP + c - 2) + (bT- c + 2 + bP - c + 2 ) /2 - 1
= iPT + bPT/2 - 1

涓夎褰?/h3>

璇佹槑鍒嗕笁閮ㄥ垎錛氳瘉鏄庝互涓嬬殑鍥懼艦絎﹀悎鐨厠瀹氱悊錛?

  1. 鎵鏈夊鉤琛屼簬杞寸嚎鐨勭煩褰紱
  2. 浠ヤ笂榪扮煩褰㈢殑涓ゆ潯閭昏竟鍜屽瑙掔嚎緇勬垚鐨勭洿瑙掍笁瑙掑艦錛?
  3. 鎵鏈変笁瑙掑艦錛堝洜涓哄畠浠兘鍙唴鎺ヤ簬鐭╁艦鍐咃紝灝嗙煩褰㈠垎鍓叉垚鍘熶笁瑙掑艦鍜岃嚦澶?涓浜岀偣鎻愬埌鐨勭洿瑙掍笁瑙掑艦錛夈?

鐭╁艦

璁劇煩褰?em>R闀胯竟鐭竟鍚勬湁m,n涓牸鐐癸細

  • AR = (m-1)(n-1)
  • iR = (m-2)(n-2)
  • bR = 2(m+n)-4
iR + bR/2 - 1
= (m-2)(n-2) + (m+n) - 2 - 1
= mn - (m + n) +1
= (m-1)(n-1)

鐩磋涓夎褰?/h4>

鏄撹涓ゆ潯閭昏竟鍜?a title=灝嶈綬?>瀵硅綰?/font>緇勬垚鐨勪袱涓洿瑙掍笁瑙掑艦鍏ㄧ瓑錛屼笖i,b鐩哥瓑銆傝鍏舵枩杈逛笂鏈?em>c涓牸鐐廣?

  • b = m+n+c-3
  • i = ((m-2)(n-2) - c + 2)/2
i + b/2 - 1
= ((m-2)(n-2) - c + 2)/2 + (m+n+c-3)/2 - 1
= (m-2)(n-2)/2 + (m+n - 3)/2
= (m-1)(n-1)/2

涓鑸笁瑙掑艦

鎺ㄥ箍

  • 鍙栨牸鐐圭殑緇勬垚鍥懼艦鐨勯潰縐負涓鍗曚綅銆傚湪騫寵鍥涜竟褰?/font>鏍肩偣錛岀毊鍏嬪畾鐞嗕緷鐒舵垚绔嬨傚鐢ㄤ簬浠繪剰涓夎褰㈡牸鐐癸紝鐨厠瀹氱悊鍒欐槸A = 2i + b - 2銆?
  • 瀵逛簬闈炵畝鍗曠殑澶氳竟褰?em>P錛岀毊鍏嬪畾鐞?em>A = i + b/2 - χ(P)錛屽叾涓?#967;(P)琛ㄧずP鐨?a title=嬈ф媺鐗瑰緛鏁?>嬈ф媺鐗瑰緛鏁?/font>銆?
  • 楂樼淮鎺ㄥ箍錛?a class=new title=Ehrhart澶氶爡寮?>Ehrhart澶氶」寮?/font>錛涗竴緇達細妞嶆爲闂銆?
  • 鐨厠瀹氱悊鍜屾鎷夊叕寮忥紙V-E+F=2錛夌瓑浠楓?

瀹氱悊鎻愬嚭鑰?/h2>

Georg Alexander Pick錛?a title=1859騫?>1859騫?/font>鐢熶簬緇翠篃綰?/font>錛?a title=1943騫?>1943騫?/font>姝諱簬鐗硅幈瑗挎仼鏂藉鐗歸泦涓惀銆?

鐩稿叧涔︾睄

澶栭儴榪炵粨

en:Pick's theorem fr:Théorème de Pick it:Teorema di Pick pl:Wzór Picka ru:孝械芯褉械屑邪 袩懈瀉邪



]]>璁$畻鍑犱綍甯哥敤綆楁硶姒傝http://m.shnenglu.com/proyao/archive/2009/10/06/97940.htmlAcaini.yaoyaoziiAcaini.yaoyaoziiTue, 06 Oct 2009 06:38:00 GMThttp://m.shnenglu.com/proyao/archive/2009/10/06/97940.htmlhttp://m.shnenglu.com/proyao/comments/97940.htmlhttp://m.shnenglu.com/proyao/archive/2009/10/06/97940.html#Feedback0http://m.shnenglu.com/proyao/comments/commentRss/97940.htmlhttp://m.shnenglu.com/proyao/services/trackbacks/97940.html涓銆佸紩璦

璁$畻鏈虹殑鍑虹幇浣垮緱寰堝鍘熸湰鍗佸垎綣佺悙鐨勫伐浣滃緱浠ュぇ騫呭害綆鍖栵紝浣嗘槸涔熸湁涓浜涘湪浜轟滑鐩磋鐪嬫潵寰堝鏄撶殑闂鍗撮渶瑕佹嬁鍑轟竴濂楀茍涓嶇畝鍗曠殑閫氱敤瑙e喅鏂規(guī)錛屾瘮濡傚嚑浣曢棶棰樸備綔涓鴻綆楁満縐戝鐨勪竴涓垎鏀紝璁$畻鍑犱綍涓昏鐮旂┒瑙e喅鍑犱綍闂鐨勭畻娉曘傚湪鐜頒唬宸ョ▼鍜屾暟瀛﹂鍩燂紝璁$畻鍑犱綍鍦ㄥ浘褰㈠銆佹満鍣ㄤ漢鎶鏈佽秴澶ц妯¢泦鎴愮數(shù)璺璁″拰緇熻絳夎澶氶鍩熸湁鐫鍗佸垎閲嶈鐨勫簲鐢ㄣ傚湪鏈枃涓紝鎴戜滑灝嗗璁$畻鍑犱綍甯哥敤鐨勫熀鏈畻娉曞仛涓涓叏闈㈢殑浠嬬粛錛屽笇鏈涘鎮(zhèn)ㄤ簡瑙e茍搴旂敤璁$畻鍑犱綍鐨勭煡璇嗚В鍐抽棶棰樿搗鍒板府鍔┿?br>
浜屻佺洰褰?/strong>

銆銆鏈枃鏁寸悊鐨勮綆楀嚑浣曞熀鏈蹇靛拰甯哥敤綆楁硶鍖呮嫭濡備笅鍐呭錛?br>
銆銆鐭㈤噺鐨勬蹇?br>
銆銆鐭㈤噺鍔犲噺娉?br>
銆銆鐭㈤噺鍙夌Н

銆銆鎶樼嚎孌電殑鎷愬悜鍒ゆ柇

銆銆鍒ゆ柇鐐規(guī)槸鍚﹀湪綰挎涓?br>
銆銆鍒ゆ柇涓ょ嚎孌墊槸鍚︾浉浜?br>
銆銆鍒ゆ柇綰挎鍜岀洿綰挎槸鍚︾浉浜?br>
銆銆鍒ゆ柇鐭╁艦鏄惁鍖呭惈鐐?br>
銆銆鍒ゆ柇綰挎銆佹姌綰褲佸杈瑰艦鏄惁鍦ㄧ煩褰腑

銆銆鍒ゆ柇鐭╁艦鏄惁鍦ㄧ煩褰腑

銆銆鍒ゆ柇鍦嗘槸鍚﹀湪鐭╁艦涓?br>
銆銆鍒ゆ柇鐐規(guī)槸鍚﹀湪澶氳竟褰腑

銆銆鍒ゆ柇綰挎鏄惁鍦ㄥ杈瑰艦鍐?br>
銆銆鍒ゆ柇鎶樼嚎鏄惁鍦ㄥ杈瑰艦鍐?br>
銆銆鍒ゆ柇澶氳竟褰㈡槸鍚﹀湪澶氳竟褰㈠唴

銆銆鍒ゆ柇鐭╁艦鏄惁鍦ㄥ杈瑰艦鍐?br>
銆銆鍒ゆ柇鍦嗘槸鍚﹀湪澶氳竟褰㈠唴

銆銆鍒ゆ柇鐐規(guī)槸鍚﹀湪鍦嗗唴

銆銆鍒ゆ柇綰挎銆佹姌綰褲佺煩褰€佸杈瑰艦鏄惁鍦ㄥ渾鍐?br>
銆銆鍒ゆ柇鍦嗘槸鍚﹀湪鍦嗗唴

銆銆璁$畻鐐瑰埌綰挎鐨勬渶榪戠偣

銆銆璁$畻鐐瑰埌鎶樼嚎銆佺煩褰€佸杈瑰艦鐨勬渶榪戠偣

銆銆璁$畻鐐瑰埌鍦嗙殑鏈榪戣窛紱誨強浜ょ偣鍧愭爣

銆銆璁$畻涓ゆ潯鍏辯嚎鐨勭嚎孌電殑浜ょ偣

銆銆璁$畻綰挎鎴栫洿綰夸笌綰挎鐨勪氦鐐?br>
銆銆姹傜嚎孌墊垨鐩寸嚎涓庢姌綰褲佺煩褰€佸杈瑰艦鐨勪氦鐐?br>
銆銆姹傜嚎孌墊垨鐩寸嚎涓庡渾鐨勪氦鐐?br>
銆銆鍑稿寘鐨勬蹇?br>
銆銆鍑稿寘鐨勬眰娉?br>
涓夈佺畻娉曚粙緇?/strong>

鐭㈤噺鐨勬蹇碉細

濡傛灉涓鏉$嚎孌電殑绔偣鏄湁嬈″簭涔嬪垎鐨勶紝鎴戜滑鎶婅繖縐嶇嚎孌墊垚涓烘湁鍚戠嚎孌?directed segment)銆傚鏋滄湁鍚戠嚎孌祊1p2鐨勮搗鐐筽1鍦ㄥ潗鏍囧師鐐癸紝鎴戜滑鍙互鎶婂畠縐頒負鐭㈤噺(vector)p2銆?br>
鐭㈤噺鍙夌Н錛?/strong>

璁$畻鐭㈤噺鍙夌Н鏄笌鐩寸嚎鍜岀嚎孌電浉鍏崇畻娉曠殑鏍稿績閮ㄥ垎銆傝鐭㈤噺P = 錛坸1,y1錛?錛孮 = (x2,y2)錛屽垯鐭㈤噺鍙夌Н瀹氫箟涓虹敱(0,0)銆乸1銆乸2鍜宲1+p2鎵緇勬垚鐨勫鉤琛屽洓杈瑰艦鐨勫甫絎﹀彿鐨勯潰縐紝鍗籌細P × Q = x1*y2 - x2*y1錛屽叾緇撴灉鏄竴涓爣閲忋傛樉鐒舵湁鎬ц川 P × Q = - ( Q × P ) 鍜?P × ( - Q ) = - ( P × Q )銆備竴鑸湪涓嶅姞璇存槑鐨勬儏鍐典笅錛屾湰鏂囦笅榪扮畻娉曚腑鎵鏈夌殑鐐歸兘鐪嬩綔鐭㈤噺錛屼袱鐐圭殑鍔犲噺娉曞氨鏄煝閲忕浉鍔犲噺錛岃岀偣鐨勪箻娉曞垯鐪嬩綔鐭㈤噺鍙夌Н銆?br>
銆銆鍙夌Н鐨勪竴涓潪甯擱噸瑕佹ц川鏄彲浠ラ氳繃瀹冪殑絎﹀彿鍒ゆ柇涓ょ煝閲忕浉浜掍箣闂寸殑欏洪嗘椂閽堝叧緋伙細

銆銆鑻?P × Q > 0 , 鍒橮鍦≦鐨勯『鏃墮拡鏂瑰悜銆?br>銆銆鑻?P × Q < 0 , 鍒橮鍦≦鐨勯嗘椂閽堟柟鍚戙?br>銆銆鑻?P × Q = 0 , 鍒橮涓嶲鍏辯嚎錛屼絾鍙兘鍚屽悜涔熷彲鑳藉弽鍚戙?br>
鎶樼嚎孌電殑鎷愬悜鍒ゆ柇錛?/strong>

銆銆鎶樼嚎孌電殑鎷愬悜鍒ゆ柇鏂規(guī)硶鍙互鐩存帴鐢辯煝閲忓弶縐殑鎬ц川鎺ㄥ嚭銆傚浜庢湁鍏叡绔偣鐨勭嚎孌祊0p1鍜宲1p2錛岄氳繃璁$畻(p2 - p0) × (p1 - p0)鐨勭鍙蜂究鍙互紜畾鎶樼嚎孌電殑鎷愬悜錛?br>
銆銆鑻?p2 - p0) × (p1 - p0) > 0,鍒檖0p1鍦╬1鐐規(guī)嫄鍚戝彸渚у悗寰楀埌p1p2銆?br>
銆銆鑻?p2 - p0) × (p1 - p0) < 0,鍒檖0p1鍦╬1鐐規(guī)嫄鍚戝乏渚у悗寰楀埌p1p2銆?br>
銆銆鑻?p2 - p0) × (p1 - p0) = 0,鍒檖0銆乸1銆乸2涓夌偣鍏辯嚎銆?br>
銆銆鍏蜂綋鎯呭喌鍙弬鐓т笅鍥撅細

鍒ゆ柇鐐規(guī)槸鍚﹀湪綰挎涓婏細

銆銆璁劇偣涓篞錛岀嚎孌典負P1P2 錛屽垽鏂偣Q鍦ㄨ綰挎涓婄殑渚濇嵁鏄細( Q - P1 ) × ( P2 - P1 ) = 0 涓?Q 鍦ㄤ互 P1錛孭2涓哄瑙掗《鐐圭殑鐭╁艦鍐呫傚墠鑰呬繚璇丵鐐瑰湪鐩寸嚎P1P2涓婏紝鍚庤呮槸淇濊瘉Q鐐逛笉鍦ㄧ嚎孌礟1P2鐨勫歡闀跨嚎鎴栧弽鍚戝歡闀跨嚎涓婏紝瀵逛簬榪欎竴姝ラ鐨勫垽鏂彲浠ョ敤浠ヤ笅榪囩▼瀹炵幇錛?br>
銆銆ON-SEGMENT(pi,pj,pk)

銆銆if min(xi,xj)<=xk<=max(xi,xj) and min(yi,yj)<=yk<=max(yi,yj)

銆銆then return true;

銆銆else return false;

銆銆鐗瑰埆瑕佹敞鎰忕殑鏄紝鐢變簬闇瑕佽冭檻姘村鉤綰挎鍜屽瀭鐩寸嚎孌典袱縐嶇壒孌婃儏鍐碉紝min(xi,xj)<=xk<=max(xi,xj)鍜宮in(yi,yj)<=yk<=max(yi,yj)涓や釜鏉′歡蹇呴』鍚屾椂婊¤凍鎵嶈兘榪斿洖鐪熷箋?br>
鍒ゆ柇涓ょ嚎孌墊槸鍚︾浉浜わ細

鎴戜滑鍒嗕袱姝ョ‘瀹氫袱鏉$嚎孌墊槸鍚︾浉浜わ細

銆銆(1)蹇熸帓鏂ヨ瘯楠?br>
銆銆璁句互綰挎 P1P2 涓哄瑙掔嚎鐨勭煩褰負R錛?璁句互綰挎 Q1Q2 涓哄瑙掔嚎鐨勭煩褰負T錛屽鏋淩鍜孴涓嶇浉浜わ紝鏄劇劧涓ょ嚎孌典笉浼氱浉浜ゃ?br>
銆銆(2)璺ㄧ珛璇曢獙

銆銆濡傛灉涓ょ嚎孌電浉浜わ紝鍒欎袱綰挎蹇呯劧鐩鎬簰璺ㄧ珛瀵規(guī)柟銆傝嫢P1P2璺ㄧ珛Q1Q2 錛屽垯鐭㈤噺 ( P1 - Q1 ) 鍜? P2 - Q1 )浣嶄簬鐭㈤噺( Q2 - Q1 ) 鐨勪袱渚э紝鍗? P1 - Q1 ) × ( Q2 - Q1 ) * ( P2 - Q1 ) × ( Q2 - Q1 ) < 0銆備笂寮忓彲鏀瑰啓鎴? P1 - Q1 ) × ( Q2 - Q1 ) * ( Q2 - Q1 ) × ( P2 - Q1 ) > 0銆傚綋 ( P1 - Q1 ) × ( Q2 - Q1 ) = 0 鏃訛紝璇存槑 ( P1 - Q1 ) 鍜?( Q2 - Q1 )鍏辯嚎錛屼絾鏄洜涓哄凡緇忛氳繃蹇熸帓鏂ヨ瘯楠岋紝鎵浠?P1 涓瀹氬湪綰挎 Q1Q2涓婏紱鍚岀悊錛? Q2 - Q1 ) ×(P2 - Q1 ) = 0 璇存槑 P2 涓瀹氬湪綰挎 Q1Q2涓娿傛墍浠ュ垽鏂璓1P2璺ㄧ珛Q1Q2鐨勪緷鎹槸錛? P1 - Q1 ) × ( Q2 - Q1 ) * ( Q2 - Q1 ) × ( P2 - Q1 ) >= 0銆傚悓鐞嗗垽鏂璔1Q2璺ㄧ珛P1P2鐨勪緷鎹槸錛? Q1 - P1 ) × ( P2 - P1 ) * ( P2 - P1 ) × ( Q2 - P1 ) >= 0銆傚叿浣撴儏鍐靛涓嬪浘鎵紺猴細

鍦ㄧ浉鍚岀殑鍘熺悊涓嬶紝瀵規(guī)綆楁硶鐨勫叿浣撶殑瀹炵幇緇嗚妭鍙兘浼氫笌姝ゆ湁鎵涓嶅悓錛岄櫎浜嗚繖縐嶈繃紼嬪錛屽ぇ瀹朵篃鍙互鍙傝冦婄畻娉曞璁恒嬩笂鐨勫疄鐜般?br>
鍒ゆ柇綰挎鍜岀洿綰挎槸鍚︾浉浜わ細

鏈変簡涓婇潰鐨勫熀紜錛岃繖涓畻娉曞氨寰堝鏄撲簡銆傚鏋滅嚎孌礟1P2鍜岀洿綰縌1Q2鐩鎬氦錛屽垯P1P2璺ㄧ珛Q1Q2錛屽嵆錛? P1 - Q1 ) × ( Q2 - Q1 ) * ( Q2 - Q1 ) × ( P2 - Q1 ) >= 0銆?br>
鍒ゆ柇鐭╁艦鏄惁鍖呭惈鐐癸細

鍙鍒ゆ柇璇ョ偣鐨勬í鍧愭爣鍜岀旱鍧愭爣鏄惁澶瑰湪鐭╁艦鐨勫乏鍙寵竟鍜屼笂涓嬭竟涔嬮棿銆?br>
鍒ゆ柇綰挎銆佹姌綰褲佸杈瑰艦鏄惁鍦ㄧ煩褰腑錛?/strong>

鍥犱負鐭╁艦鏄釜鍑擱泦錛屾墍浠ュ彧瑕佸垽鏂墍鏈夌鐐規(guī)槸鍚﹂兘鍦ㄧ煩褰腑灝卞彲浠ヤ簡銆?br>
鍒ゆ柇鐭╁艦鏄惁鍦ㄧ煩褰腑錛?/strong>

鍙姣旇緝宸﹀彸杈圭晫鍜屼笂涓嬭竟鐣屽氨鍙互浜嗐?br>
鍒ゆ柇鍦嗘槸鍚﹀湪鐭╁艦涓細

寰堝鏄撹瘉鏄庯紝鍦嗗湪鐭╁艦涓殑鍏呰鏉′歡鏄細鍦嗗績鍦ㄧ煩褰腑涓斿渾鐨勫崐寰勫皬浜庣瓑浜庡渾蹇冨埌鐭╁艦鍥涜竟鐨勮窛紱葷殑鏈灝忓箋?br>
鍒ゆ柇鐐規(guī)槸鍚﹀湪澶氳竟褰腑錛?/strong>

銆銆鍒ゆ柇鐐筆鏄惁鍦ㄥ杈瑰艦涓槸璁$畻鍑犱綍涓竴涓潪甯稿熀鏈絾鏄崄鍒嗛噸瑕佺殑綆楁硶銆備互鐐筆涓虹鐐癸紝鍚戝乏鏂逛綔灝勭嚎L錛岀敱浜庡杈瑰艦鏄湁鐣岀殑錛屾墍浠ュ皠綰縇鐨勫乏绔竴瀹氬湪澶氳竟褰㈠錛岃冭檻娌跨潃L浠庢棤絀瘋繙澶勫紑濮嬭嚜宸﹀悜鍙崇Щ鍔紝閬囧埌鍜屽杈瑰艦鐨勭涓涓氦鐐圭殑鏃跺欙紝榪涘叆鍒頒簡澶氳竟褰㈢殑鍐呴儴錛岄亣鍒扮浜屼釜浜ょ偣鐨勬椂鍊欙紝紱誨紑浜嗗杈瑰艦錛?#8230;…鎵浠ュ緢瀹規(guī)槗鐪嬪嚭褰揕鍜屽杈瑰艦鐨勪氦鐐規(guī)暟鐩瓹鏄鏁扮殑鏃跺欙紝P鍦ㄥ杈瑰艦鍐咃紝鏄伓鏁扮殑璇漃鍦ㄥ杈瑰艦澶栥?br>
銆銆浣嗘槸鏈変簺鐗規(guī)畩鎯呭喌瑕佸姞浠ヨ冭檻銆傚鍥句笅鍥?a)(b)(c)(d)鎵紺恒傚湪鍥?a)涓紝L鍜屽杈瑰艦鐨勯《鐐圭浉浜わ紝榪欐椂鍊欎氦鐐瑰彧鑳借綆椾竴涓紱鍦ㄥ浘(b)涓紝L鍜屽杈瑰艦欏剁偣鐨勪氦鐐逛笉搴旇璁$畻錛涘湪鍥?c)鍜?d) 涓紝L鍜屽杈瑰艦鐨勪竴鏉¤竟閲嶅悎錛岃繖鏉¤竟搴旇琚拷鐣ヤ笉璁°傚鏋淟鍜屽杈瑰艦鐨勪竴鏉¤竟閲嶅悎錛岃繖鏉¤竟搴旇琚拷鐣ヤ笉璁°?/p>

涓轟簡緇熶竴璧瘋錛屾垜浠湪璁$畻灝勭嚎L鍜屽杈瑰艦鐨勪氦鐐圭殑鏃跺欙紝1銆傚浜庡杈瑰艦鐨勬按騫寵竟涓嶄綔鑰冭檻錛?銆傚浜庡杈瑰艦鐨勯《鐐瑰拰L鐩鎬氦鐨勬儏鍐碉紝濡傛灉璇ラ《鐐規(guī)槸鍏舵墍灞炵殑杈逛笂綰靛潗鏍囪緝澶х殑欏剁偣錛屽垯璁℃暟錛屽惁鍒欏拷鐣ワ紱3銆傚浜嶱鍦ㄥ杈瑰艦杈逛笂鐨勬儏褰紝鐩存帴鍙垽鏂璓灞炰簬澶氳竟琛屻傜敱姝ゅ緱鍑虹畻娉曠殑浼唬鐮佸涓嬶細

銆銆count ← 0;
銆銆浠涓虹鐐癸紝浣滀粠鍙沖悜宸︾殑灝勭嚎L;
銆銆for 澶氳竟褰㈢殑姣忔潯杈箂
銆銆do if P鍦ㄨ竟s涓?
銆銆then return true;
銆銆if s涓嶆槸姘村鉤鐨?br>銆銆then if s鐨勪竴涓鐐瑰湪L涓?br>銆銆if 璇ョ鐐規(guī)槸s涓ょ鐐逛腑綰靛潗鏍囪緝澶х殑绔偣
銆銆then count ← count+1
銆銆else if s鍜孡鐩鎬氦
銆銆then count ← count+1;
銆銆if count mod 2 = 1
銆銆then return true;
銆銆else return false;

銆銆鍏朵腑鍋氬皠綰縇鐨勬柟娉曟槸錛氳P'鐨勭旱鍧愭爣鍜孭鐩稿悓錛屾í鍧愭爣涓烘鏃犵┓澶э紙寰堝ぇ鐨勪竴涓鏁幫級錛屽垯P鍜孭'灝辯‘瀹氫簡灝勭嚎L銆?

銆銆鍒ゆ柇鐐規(guī)槸鍚﹀湪澶氳竟褰腑鐨勮繖涓畻娉曠殑鏃墮棿澶嶆潅搴︿負O(n)銆?br>
銆銆鍙﹀榪樻湁涓縐嶇畻娉曟槸鐢ㄥ甫絎﹀彿鐨勪笁瑙掑艦闈㈢Н涔嬪拰涓庡杈瑰艦闈㈢Н榪涜姣旇緝錛岃繖縐嶇畻娉曠敱浜庝嬌鐢ㄦ誕鐐規(guī)暟榪愮畻鎵浠ヤ細甯︽潵涓瀹氳宸紝涓嶆帹鑽愬ぇ瀹朵嬌鐢ㄣ?

鍒ゆ柇綰挎鏄惁鍦ㄥ杈瑰艦鍐咃細

銆銆綰挎鍦ㄥ杈瑰艦鍐呯殑涓涓繀瑕佹潯浠舵槸綰挎鐨勪袱涓鐐歸兘鍦ㄥ杈瑰艦鍐咃紝浣嗙敱浜庡杈瑰艦鍙兘涓哄嚬錛屾墍浠ヨ繖涓嶈兘鎴愪負鍒ゆ柇鐨勫厖鍒嗘潯浠躲傚鏋滅嚎孌靛拰澶氳竟褰㈢殑鏌愭潯杈瑰唴浜わ紙涓ょ嚎孌靛唴浜ゆ槸鎸囦袱綰挎鐩鎬氦涓斾氦鐐逛笉鍦ㄤ袱綰挎鐨勭鐐癸級錛屽洜涓哄杈瑰艦鐨勮竟鐨勫乏鍙充袱渚у垎灞炲杈瑰艦鍐呭涓嶅悓閮ㄥ垎錛屾墍浠ョ嚎孌典竴瀹氫細鏈変竴閮ㄥ垎鍦ㄥ杈瑰艦澶?瑙佸浘a)銆備簬鏄垜浠緱鍒扮嚎孌靛湪澶氳竟褰㈠唴鐨勭浜屼釜蹇呰鏉′歡錛氱嚎孌靛拰澶氳竟褰㈢殑鎵鏈夎竟閮戒笉鍐呬氦銆?

銆銆綰挎鍜屽杈瑰艦浜や簬綰挎鐨勪袱绔偣騫朵笉浼氬獎鍝嶇嚎孌墊槸鍚﹀湪澶氳竟褰㈠唴錛涗絾鏄鏋滃杈瑰艦鐨勬煇涓《鐐瑰拰綰挎鐩鎬氦錛岃繕蹇呴』鍒ゆ柇涓ょ浉閭諱氦鐐逛箣闂寸殑綰挎鏄惁鍖呭惈浜庡杈瑰艦鍐呴儴錛堝弽渚嬭鍥綽)銆?/p>

鍥犳鎴戜滑鍙互鍏堟眰鍑烘墍鏈夊拰綰挎鐩鎬氦鐨勫杈瑰艦鐨勯《鐐癸紝鐒跺悗鎸夌収X-Y鍧愭爣鎺掑簭(X鍧愭爣灝忕殑鎺掑湪鍓嶉潰錛屽浜嶺鍧愭爣鐩稿悓鐨勭偣錛孻鍧愭爣灝忕殑鎺掑湪鍓嶉潰錛岃繖縐嶆帓搴忓噯鍒欎篃鏄負浜嗕繚璇佹按騫沖拰鍨傜洿鎯呭喌鐨勫垽鏂紜?錛岃繖鏍風浉閭?cè)潥勪袱涓偣灏辨槸鍦ňU挎涓婄浉閭?cè)潥勪袱浜ょ偣锛屽鏋滀焕L剰鐩擱偦涓ょ偣鐨勪腑鐐逛篃鍦ㄥ杈瑰艦鍐咃紝鍒欒綰挎涓瀹氬湪澶氳竟褰㈠唴銆?

銆銆璇佹槑濡備笅錛?br>
銆銆鍛介1錛?br>
銆銆濡傛灉綰挎鍜屽杈瑰艦鐨勪袱鐩擱偦浜ょ偣P1 錛孭2鐨勪腑鐐筆' 涔熷湪澶氳竟褰㈠唴錛屽垯P1, P2涔嬮棿鐨勬墍鏈夌偣閮藉湪澶氳竟褰㈠唴銆?br>
銆銆璇佹槑錛?br>
銆銆鍋囪P1,P2涔嬮棿鍚湁涓嶅湪澶氳竟褰㈠唴鐨勭偣錛屼笉濡ㄨ璇ョ偣涓篞錛屽湪P1, P'涔嬮棿錛屽洜涓哄杈瑰艦鏄棴鍚堟洸綰匡紝鎵浠ュ叾鍐呭閮ㄤ箣闂存湁鐣岋紝鑰孭1灞炰簬澶氳竟琛屽唴閮紝Q灞炰簬澶氳竟鎬у閮紝P'灞炰簬澶氳竟鎬у唴閮紝P1-Q-P'瀹屽叏榪炵畫錛屾墍浠1Q鍜孮P'涓瀹氳法瓚婂杈瑰艦鐨勮竟鐣岋紝鍥犳鍦≒1,P'涔嬮棿鑷沖皯榪樻湁涓や釜璇ョ嚎孌靛拰澶氳竟褰㈢殑浜ょ偣錛岃繖鍜孭1P2鏄浉閭諱袱浜ょ偣鐭涚浘錛屾晠鍛介鎴愮珛銆傝瘉姣曘?

銆銆鐢卞懡棰?鐩存帴鍙緱鍑烘帹璁猴細

銆銆鎺ㄨ2錛?br>
銆銆璁懼杈瑰艦鍜岀嚎孌礟Q鐨勪氦鐐逛緷嬈′負P1,P2,……Pn錛屽叾涓璓i鍜孭i+1鏄浉閭諱袱浜ょ偣錛岀嚎孌礟Q鍦ㄥ杈瑰艦鍐呯殑鍏呰鏉′歡鏄細P錛孮鍦ㄥ杈瑰艦鍐呬笖瀵逛簬i =1, 2,……, n-1錛孭i ,Pi+1鐨勪腑鐐逛篃鍦ㄥ杈瑰艦鍐呫?br>
銆銆鍦ㄥ疄闄呯紪紼嬩腑錛屾病鏈夊繀瑕佽綆楁墍鏈夌殑浜ょ偣錛岄鍏堝簲鍒ゆ柇綰挎鍜屽杈瑰艦鐨勮竟鏄惁鍐呬氦錛屽樿嫢綰挎鍜屽杈瑰艦鐨勬煇鏉¤竟鍐呬氦鍒欑嚎孌典竴瀹氬湪澶氳竟褰㈠錛涘鏋滅嚎孌靛拰澶氳竟褰㈢殑姣忎竴鏉¤竟閮戒笉鍐呬氦錛屽垯綰挎鍜屽杈瑰艦鐨勪氦鐐逛竴瀹氭槸綰挎鐨勭鐐規(guī)垨鑰呭杈瑰艦鐨勯《鐐癸紝鍙鍒ゆ柇鐐規(guī)槸鍚﹀湪綰挎涓婂氨鍙互浜嗐?br>
銆銆鑷蟲鎴戜滑寰楀嚭綆楁硶濡備笅錛?br>
銆銆if 綰跨PQ鐨勭鐐逛笉閮藉湪澶氳竟褰㈠唴
銆銆then return false;
銆銆鐐歸泦pointSet鍒濆鍖栦負絀?
銆銆for 澶氳竟褰㈢殑姣忔潯杈箂
銆銆do if 綰挎鐨勬煇涓鐐瑰湪s涓?br>銆銆then 灝嗚绔偣鍔犲叆pointSet;
銆銆else if s鐨勬煇涓鐐瑰湪綰挎PQ涓?br>銆銆then 灝嗚绔偣鍔犲叆pointSet;
銆銆else if s鍜岀嚎孌礟Q鐩鎬氦 // 榪欐椂鍊欏凡緇忓彲浠ヨ偗瀹氭槸鍐呬氦浜?br>銆銆then return false;
銆銆灝唒ointSet涓殑鐐規(guī)寜鐓-Y鍧愭爣鎺掑簭;
銆銆for pointSet涓瘡涓や釜鐩擱偦鐐?pointSet[i] , pointSet[ i+1]
銆銆do if pointSet[i] , pointSet[ i+1] 鐨勪腑鐐逛笉鍦ㄥ杈瑰艦涓?br>銆銆then return false;
銆銆return true;

銆銆榪欎釜榪囩▼涓殑鎺掑簭鍥犱負浜ょ偣鏁扮洰鑲畾榪滃皬浜庡杈瑰艦鐨勯《鐐規(guī)暟鐩畁錛屾墍浠ユ渶澶氭槸甯告暟綰х殑澶嶆潅搴︼紝鍑犱箮鍙互蹇界暐涓嶈銆傚洜姝ょ畻娉曠殑鏃墮棿澶嶆潅搴︿篃鏄疧(n)銆?

鍒ゆ柇鎶樼嚎鏄惁鍦ㄥ杈瑰艦鍐咃細

銆銆鍙鍒ゆ柇鎶樼嚎鐨勬瘡鏉$嚎孌墊槸鍚﹂兘鍦ㄥ杈瑰艦鍐呭嵆鍙傝鎶樼嚎鏈塵鏉$嚎孌碉紝澶氳竟褰㈡湁n涓《鐐癸紝鍒欒綆楁硶鐨勬椂闂村鏉傚害涓篛(m*n)銆?

銆鍒ゆ柇澶氳竟褰㈡槸鍚﹀湪澶氳竟褰㈠唴錛?

銆銆鍙鍒ゆ柇澶氳竟褰㈢殑姣忔潯杈規(guī)槸鍚﹂兘鍦ㄥ杈瑰艦鍐呭嵆鍙傚垽鏂竴涓湁m涓《鐐圭殑澶氳竟褰㈡槸鍚﹀湪涓涓湁n涓《鐐圭殑澶氳竟褰㈠唴澶嶆潅搴︿負O(m*n)銆?br>
銆鍒ゆ柇鐭╁艦鏄惁鍦ㄥ杈瑰艦鍐咃細

灝嗙煩褰㈣漿鍖栦負澶氳竟褰紝鐒跺悗鍐嶅垽鏂槸鍚﹀湪澶氳竟褰㈠唴銆?

鍒ゆ柇鍦嗘槸鍚﹀湪澶氳竟褰㈠唴錛?/strong>

銆銆鍙璁$畻鍦嗗績鍒板杈瑰艦鐨勬瘡鏉¤竟鐨勬渶鐭窛紱伙紝濡傛灉璇ヨ窛紱誨ぇ浜庣瓑浜庡渾鍗婂緞鍒欒鍦嗗湪澶氳竟褰㈠唴銆傝綆楀渾蹇冨埌澶氳竟褰㈡瘡鏉¤竟鏈鐭窛紱葷殑綆楁硶鍦ㄥ悗鏂囬槓榪般?

鍒ゆ柇鐐規(guī)槸鍚﹀湪鍦嗗唴錛?/strong>

璁$畻鍦嗗績鍒拌鐐圭殑璺濈錛屽鏋滃皬浜庣瓑浜庡崐寰勫垯璇ョ偣鍦ㄥ渾鍐呫?br>
鍒ゆ柇綰挎銆佹姌綰褲佺煩褰€佸杈瑰艦鏄惁鍦ㄥ渾鍐?

鍥犱負鍦嗘槸鍑擱泦錛屾墍浠ュ彧瑕佸垽鏂槸鍚︽瘡涓《鐐歸兘鍦ㄥ渾鍐呭嵆鍙?

鍒ゆ柇鍦嗘槸鍚﹀湪鍦嗗唴錛?/strong>

銆璁句袱鍦嗕負O1,O2錛屽崐寰勫垎鍒負r1, r2錛岃鍒ゆ柇O2鏄惁鍦∣1鍐呫傚厛姣旇緝r1錛宺2鐨勫ぇ灝忥紝濡傛灉r1<r2鍒橭2涓嶅彲鑳藉湪O1鍐咃紱鍚﹀垯濡傛灉涓ゅ渾蹇冪殑璺濈澶т簬r1 - r2 錛屽垯O2涓嶅湪O1鍐咃紱鍚﹀垯O2鍦∣1鍐呫?

璁$畻鐐瑰埌綰挎鐨勬渶榪戠偣錛?/strong>

銆銆濡傛灉璇ョ嚎孌靛鉤琛屼簬X杞達紙Y杞達級錛屽垯榪囩偣point浣滆綰挎鎵鍦ㄧ洿綰跨殑鍨傜嚎錛屽瀭瓚沖緢瀹規(guī)槗姹傚緱錛岀劧鍚庤綆楀嚭鍨傝凍錛屽鏋滃瀭瓚沖湪綰挎涓婂垯榪斿洖鍨傝凍錛屽惁鍒欒繑鍥炵鍨傝凍榪戠殑绔偣錛涘鏋滆綰挎涓嶅鉤琛屼簬X杞翠篃涓嶅鉤琛屼簬Y杞達紝鍒欐枩鐜囧瓨鍦ㄤ笖涓嶄負0銆傝綰挎鐨勪袱绔偣涓簆t1鍜宲t2錛屾枩鐜囦負錛歬 = ( pt2.y - pt1. y ) / (pt2.x - pt1.x );璇ョ洿綰挎柟紼嬩負錛歽 = k* ( x - pt1.x) + pt1.y銆傚叾鍨傜嚎鐨勬枩鐜囦負 - 1 / k錛屽瀭綰挎柟紼嬩負錛歽 = (-1/k) * (x - point.x) + point.y 銆?

銆銆鑱旂珛涓ょ洿綰挎柟紼嬭В寰楋細x = ( k^2 * pt1.x + k * (point.y - pt1.y ) + point.x ) / ( k^2 + 1) 錛寉 = k * ( x - pt1.x) + pt1.y;鐒跺悗鍐嶅垽鏂瀭瓚蟲槸鍚﹀湪綰挎涓婏紝濡傛灉鍦ㄧ嚎孌典笂鍒欒繑鍥炲瀭瓚籌紱濡傛灉涓嶅湪鍒欒綆椾袱绔偣鍒板瀭瓚崇殑璺濈錛岄夋嫨璺濈鍨傝凍杈冭繎鐨勭鐐硅繑鍥炪?

璁$畻鐐瑰埌鎶樼嚎銆佺煩褰€佸杈瑰艦鐨勬渶榪戠偣錛?/strong>

鍙鍒嗗埆璁$畻鐐瑰埌姣忔潯綰挎鐨勬渶榪戠偣錛岃褰曟渶榪戣窛紱伙紝鍙栧叾涓渶榪戣窛紱繪渶灝忕殑鐐瑰嵆鍙?

璁$畻鐐瑰埌鍦嗙殑鏈榪戣窛紱誨強浜ょ偣鍧愭爣錛?/strong>

銆銆濡傛灉璇ョ偣鍦ㄥ渾蹇冿紝鍥犱負鍦嗗績鍒板渾鍛ㄤ換涓鐐圭殑璺濈鐩哥瓑錛岃繑鍥濽NDEFINED銆?

銆銆榪炴帴鐐筆鍜屽渾蹇僌錛屽鏋淧O騫寵浜嶺杞達紝鍒欐牴鎹甈鍦∣鐨勫乏杈硅繕鏄彸杈硅綆楀嚭鏈榪戠偣鐨勬í鍧愭爣涓篶enterPoint.x - radius 鎴?centerPoint.x + radius銆傚鏋淧O騫寵浜嶻杞達紝鍒欐牴鎹甈鍦∣鐨勪笂杈硅繕鏄笅杈硅綆楀嚭鏈榪戠偣鐨勭旱鍧愭爣涓?centerPoint.y -+radius鎴?centerPoint.y - radius銆傚鏋淧O涓嶅鉤琛屼簬X杞村拰Y杞達紝鍒橮O鐨勬枩鐜囧瓨鍦ㄤ笖涓嶄負0錛岃繖鏃剁洿綰縋O鏂滅巼涓簁 = 錛?P.y - O.y 錛? ( P.x - O.x )銆傜洿綰縋O鐨勬柟紼嬩負錛歽 = k * ( x - P.x) + P.y銆傝鍦嗘柟紼嬩負:(x - O.x ) ^2 + ( y - O.y ) ^2 = r ^2錛岃仈绔嬩袱鏂圭▼緇勫彲浠ヨВ鍑虹洿綰縋O鍜屽渾鐨勪氦鐐癸紝鍙栧叾涓P鐐硅緝榪戠殑浜ょ偣鍗沖彲銆?

璁$畻涓ゆ潯鍏辯嚎鐨勭嚎孌電殑浜ょ偣錛?/strong>

銆銆瀵逛簬涓ゆ潯鍏辯嚎鐨勭嚎孌碉紝瀹冧滑涔嬮棿鐨勪綅緗叧緋繪湁涓嬪浘鎵紺虹殑鍑犵鎯呭喌銆傚浘(a)涓袱鏉$嚎孌墊病鏈変氦鐐癸紱鍥?(b) 鍜?(d) 涓袱鏉$嚎孌墊湁鏃犵┓鐒︾偣錛涘浘 (c) 涓袱鏉$嚎孌墊湁涓涓氦鐐廣傝line1鏄袱鏉$嚎孌典腑杈冮暱鐨勪竴鏉★紝line2鏄緝鐭殑涓鏉★紝濡傛灉line1鍖呭惈浜唋ine2鐨勪袱涓鐐癸紝鍒欐槸鍥?d)鐨勬儏鍐碉紝涓ょ嚎孌墊湁鏃犵┓浜ょ偣錛涘鏋渓ine1鍙寘鍚玪ine2鐨勪竴涓鐐癸紝閭d箞濡傛灉line1鐨勬煇涓鐐圭瓑浜庤line1鍖呭惈鐨刲ine2鐨勯偅涓鐐癸紝鍒欐槸鍥?c)鐨勬儏鍐碉紝榪欐椂涓ょ嚎孌靛彧鏈変竴涓氦鐐癸紝鍚﹀垯灝辨槸鍥?b)鐨勬儏鍐碉紝涓ょ嚎孌典篃鏄湁鏃犵┓鐨勪氦鐐癸紱濡傛灉line1涓嶅寘鍚玪ine2鐨勪換浣曠鐐癸紝鍒欐槸鍥?a)鐨勬儏鍐碉紝榪欐椂涓ょ嚎孌墊病鏈変氦鐐廣?/p>

 

璁$畻綰挎鎴栫洿綰夸笌綰挎鐨勪氦鐐?

銆銆璁句竴鏉$嚎孌典負L0 = P1P2錛屽彟涓鏉$嚎孌墊垨鐩寸嚎涓篖1 = Q1Q2 錛岃璁$畻鐨勫氨鏄疞0鍜孡1鐨勪氦鐐廣?br>
銆銆1錛?棣栧厛鍒ゆ柇L0鍜孡1鏄惁鐩鎬氦錛堟柟娉曞凡鍦ㄥ墠鏂囪璁鴻繃錛夛紝濡傛灉涓嶇浉浜ゅ垯娌℃湁浜ょ偣錛屽惁鍒欒鏄嶭0鍜孡1涓瀹氭湁浜ょ偣錛屼笅闈㈠氨灝哃0鍜孡1閮界湅浣滅洿綰挎潵鑰冭檻銆?

銆銆2錛?濡傛灉P1鍜孭2妯潗鏍囩浉鍚岋紝鍗矻0騫寵浜嶻杞?

銆銆a) 鑻1涔熷鉤琛屼簬Y杞達紝

銆銆i. 鑻1鐨勭旱鍧愭爣鍜孮1鐨勭旱鍧愭爣鐩稿悓錛岃鏄嶭0鍜孡1鍏辯嚎錛屽亣濡侺1鏄洿綰跨殑璇濅粬浠湁鏃犵┓鐨勪氦鐐癸紝鍋囧L1鏄嚎孌電殑璇濆彲鐢?璁$畻涓ゆ潯鍏辯嚎綰挎鐨勪氦鐐?鐨勭畻娉曟眰浠栦滑鐨勪氦鐐癸紙璇ユ柟娉曞湪鍓嶆枃宸茶璁鴻繃錛夛紱

銆銆ii. 鍚﹀垯璇存槑L0鍜孡1騫寵錛屼粬浠病鏈変氦鐐癸紱

銆銆b) 鑻1涓嶅鉤琛屼簬Y杞達紝鍒欎氦鐐規(guī)í鍧愭爣涓篜1鐨勬í鍧愭爣錛屼唬鍏ュ埌L1鐨勭洿綰挎柟紼嬩腑鍙互璁$畻鍑轟氦鐐圭旱鍧愭爣錛?

銆銆3錛?濡傛灉P1鍜孭2妯潗鏍囦笉鍚岋紝浣嗘槸Q1鍜孮2妯潗鏍囩浉鍚岋紝鍗矻1騫寵浜嶻杞達紝鍒欎氦鐐規(guī)í鍧愭爣涓篞1鐨勬í鍧愭爣錛屼唬鍏ュ埌L0鐨勭洿綰挎柟紼嬩腑鍙互璁$畻鍑轟氦鐐圭旱鍧愭爣錛?

銆銆4錛?濡傛灉P1鍜孭2綰靛潗鏍囩浉鍚岋紝鍗矻0騫寵浜嶺杞?

銆銆a) 鑻1涔熷鉤琛屼簬X杞達紝

銆銆i. 鑻1鐨勬í鍧愭爣鍜孮1鐨勬í鍧愭爣鐩稿悓錛岃鏄嶭0鍜孡1鍏辯嚎錛屽亣濡侺1鏄洿綰跨殑璇濅粬浠湁鏃犵┓鐨勪氦鐐癸紝鍋囧L1鏄嚎孌電殑璇濆彲鐢?璁$畻涓ゆ潯鍏辯嚎綰挎鐨勪氦鐐?鐨勭畻娉曟眰浠栦滑鐨勪氦鐐癸紙璇ユ柟娉曞湪鍓嶆枃宸茶璁鴻繃錛夛紱

銆銆ii. 鍚﹀垯璇存槑L0鍜孡1騫寵錛屼粬浠病鏈変氦鐐癸紱

銆銆b) 鑻1涓嶅鉤琛屼簬X杞達紝鍒欎氦鐐圭旱鍧愭爣涓篜1鐨勭旱鍧愭爣錛屼唬鍏ュ埌L1鐨勭洿綰挎柟紼嬩腑鍙互璁$畻鍑轟氦鐐規(guī)í鍧愭爣錛?

銆銆5錛?濡傛灉P1鍜孭2綰靛潗鏍囦笉鍚岋紝浣嗘槸Q1鍜孮2綰靛潗鏍囩浉鍚岋紝鍗矻1騫寵浜嶺杞達紝鍒欎氦鐐圭旱鍧愭爣涓篞1鐨勭旱鍧愭爣錛屼唬鍏ュ埌L0鐨勭洿綰挎柟紼嬩腑鍙互璁$畻鍑轟氦鐐規(guī)í鍧愭爣錛?

銆銆6錛?鍓╀笅鐨勬儏鍐靛氨鏄疞1鍜孡0鐨勬枩鐜囧潎瀛樺湪涓斾笉涓?鐨勬儏鍐?

銆銆a) 璁$畻鍑篖0鐨勬枩鐜嘖0錛孡1鐨勬枩鐜嘖1 錛?

銆銆b) 濡傛灉K1 = K2

銆銆i. 濡傛灉Q1鍦↙0涓婏紝鍒欒鏄嶭0鍜孡1鍏辯嚎錛屽亣濡侺1鏄洿綰跨殑璇濇湁鏃犵┓浜ょ偣錛屽亣濡侺1鏄嚎孌電殑璇濆彲鐢?璁$畻涓ゆ潯鍏辯嚎綰挎鐨勪氦鐐?鐨勭畻娉曟眰浠栦滑鐨勪氦鐐癸紙璇ユ柟娉曞湪鍓嶆枃宸茶璁鴻繃錛夛紱

銆銆ii. 濡傛灉Q1涓嶅湪L0涓婏紝鍒欒鏄嶭0鍜孡1騫寵錛屼粬浠病鏈変氦鐐廣?br>
銆銆c) 鑱旂珛涓ょ洿綰跨殑鏂圭▼緇勫彲浠ヨВ鍑轟氦鐐規(guī)潵

銆銆榪欎釜綆楁硶騫朵笉澶嶆潅錛屼絾鏄鍒嗘儏鍐佃璁烘竻妤氾紝灝ゅ叾鏄綋涓ゆ潯綰挎鍏辯嚎鐨勬儏鍐甸渶瑕佸崟鐙冭檻錛屾墍浠ュ湪鍓嶆枃灝嗘眰涓ゆ潯鍏辯嚎綰挎鐨勭畻娉曞崟鐙啓鍑烘潵銆傚彟澶栵紝涓寮濮嬪氨鍏堝埄鐢ㄧ煝閲忓弶涔樺垽鏂嚎孌典笌綰挎錛堟垨鐩寸嚎錛夋槸鍚︾浉浜わ紝濡傛灉緇撴灉鏄浉浜わ紝閭d箞鍦ㄥ悗闈㈠氨鍙互灝嗙嚎孌靛叏閮ㄧ湅浣滅洿綰挎潵鑰冭檻銆傞渶瑕佹敞鎰忕殑鏄紝鎴戜滑鍙互灝嗙洿綰挎垨綰挎鏂圭▼鏀瑰啓涓篴x+by+c=0鐨勫艦寮忥紝榪欐牱涓鏉ヤ笂榪拌繃紼嬬殑閮ㄥ垎姝ラ鍙互鍚堝茍錛岀緝鐭簡浠g爜闀垮害錛屼絾鏄敱浜庡厛瑕佹眰鍑哄弬鏁幫紝榪欑綆楁硶灝嗚姳璐規(guī)洿澶氱殑鏃墮棿銆?

姹傜嚎孌墊垨鐩寸嚎涓庢姌綰褲佺煩褰€佸杈瑰艦鐨勪氦鐐癸細

鍒嗗埆姹備笌姣忔潯杈圭殑浜ょ偣鍗沖彲銆?

姹傜嚎孌墊垨鐩寸嚎涓庡渾鐨勪氦鐐?

銆銆璁懼渾蹇冧負O錛屽渾鍗婂緞涓簉錛岀洿綰匡紙鎴栫嚎孌碉級L涓婄殑涓ょ偣涓篜1,P2銆?

銆銆1. 濡傛灉L鏄嚎孌典笖P1錛孭2閮藉寘鍚湪鍦哋鍐咃紝鍒欐病鏈変氦鐐癸紱鍚﹀垯榪涜涓嬩竴姝ャ?

銆銆2. 濡傛灉L騫寵浜嶻杞達紝

銆銆a) 璁$畻鍦嗗績鍒癓鐨勮窛紱籨is錛?br>銆銆b) 濡傛灉dis > r 鍒橪鍜屽渾娌℃湁浜ょ偣錛?br>銆銆c) 鍒╃敤鍕捐偂瀹氱悊錛屽彲浠ユ眰鍑轟袱浜ょ偣鍧愭爣錛屼絾瑕佹敞鎰忚冭檻L鍜屽渾鐨勭浉鍒囨儏鍐點?br>
銆銆3. 濡傛灉L騫寵浜嶺杞達紝鍋氭硶涓嶭騫寵浜嶻杞寸殑鎯呭喌綾諱技錛?

銆銆4. 濡傛灉L鏃笉騫寵X杞翠篃涓嶅鉤琛孻杞達紝鍙互姹傚嚭L鐨勬枩鐜嘖錛岀劧鍚庡垪鍑篖鐨勭偣鏂滃紡鏂圭▼錛屽拰鍦嗘柟紼嬭仈绔嬪嵆鍙眰瑙e嚭L鍜屽渾鐨勪袱涓氦鐐癸紱

銆銆5. 濡傛灉L鏄嚎孌碉紝瀵逛簬2錛?錛?涓眰鍑虹殑浜ょ偣榪樿鍒嗗埆鍒ゆ柇鏄惁灞炰簬璇ョ嚎孌電殑鑼冨洿鍐呫?

鍑稿寘鐨勬蹇碉細

銆銆鐐歸泦Q鐨勫嚫鍖?convex hull)鏄寚涓涓渶灝忓嚫澶氳竟褰紝婊¤凍Q涓殑鐐規(guī)垨鑰呭湪澶氳竟褰㈣竟涓婃垨鑰呭湪鍏跺唴銆備笅鍥句腑鐢辯孩鑹茬嚎孌佃〃紺虹殑澶氳竟褰㈠氨鏄偣闆哘={p0,p1,...p12}鐨勫嚫鍖呫?/p>

 

鍑稿寘鐨勬眰娉曪細

銆銆鐜板湪宸茬粡璇佹槑浜嗗嚫鍖呯畻娉曠殑鏃墮棿澶嶆潅搴︿笅鐣屾槸O(n*logn),浣嗘槸褰撳嚫鍖呯殑欏剁偣鏁癶涔熻鑰冭檻榪涘幓鐨勮瘽錛孠rikpatrick鍜孲eidel鐨勫壀鏋濇悳绱㈢畻娉曞彲浠ヨ揪鍒癘(n*logh)錛屽湪娓愯繘鎰忎箟涓嬭揪鍒版渶浼樸傛渶甯哥敤鐨勫嚫鍖呯畻娉曟槸Graham鎵弿娉曞拰Jarvis姝ヨ繘娉曘傛湰鏂囧彧綆鍗曚粙緇嶄竴涓婫raham鎵弿娉曪紝鍏舵紜х殑璇佹槑鍜孞arvis姝ヨ繘娉曠殑榪囩▼澶у鍙互鍙傝冦婄畻娉曞璁恒嬨?

銆銆瀵逛簬涓涓湁涓変釜鎴栦互涓婄偣鐨勭偣闆哘錛孏raham鎵弿娉曠殑榪囩▼濡備笅錛?

銆銆浠0涓篞涓璝-X鍧愭爣鎺掑簭涓嬫渶灝忕殑鐐?

銆銆璁?lt;p1,p2,...pm>涓哄鍏朵綑鐐規(guī)寜浠0涓轟腑蹇冪殑鏋佽閫嗘椂閽堟帓搴忔墍寰楃殑鐐歸泦錛堝鏋滄湁澶氫釜鐐規(guī)湁鐩稿悓鐨勬瀬瑙掞紝闄や簡璺漰0鏈榪滅殑鐐瑰鍏ㄩ儴縐婚櫎

銆銆鍘媝0榪涙爤S
銆銆鍘媝1榪涙爤S
銆銆鍘媝2榪涙爤S
銆銆for i ← 3 to m
銆銆do while 鐢盨鐨勬爤欏跺厓绱犵殑涓嬩竴涓厓绱犮丼鐨勬爤欏跺厓绱犱互鍙妏i鏋勬垚鐨勬姌綰挎涓嶆嫄鍚戝乏渚?br>銆銆瀵筍寮規(guī)爤
銆銆鍘媝i榪涙爤S
銆銆return S;

銆銆姝よ繃紼嬫墽琛屽悗錛屾爤S鐢卞簳鑷抽《鐨勫厓绱犲氨鏄疩鐨勫嚫鍖呴《鐐規(guī)寜閫嗘椂閽堟帓鍒楃殑鐐瑰簭鍒椼傞渶瑕佹敞鎰忕殑鏄紝鎴戜滑瀵圭偣鎸夋瀬瑙掗嗘椂閽堟帓搴忔椂錛屽茍涓嶉渶瑕佺湡姝f眰鍑烘瀬瑙掞紝鍙渶瑕佹眰鍑轟換鎰忎袱鐐圭殑嬈″簭灝卞彲浠ヤ簡銆傝岃繖涓楠ゅ彲浠ョ敤鍓嶈堪鐨勭煝閲忓弶縐ц川瀹炵幇銆?

鍥涖佺粨璇?/strong>

銆銆灝界浜虹被瀵瑰嚑浣曞鐨勭爺絀朵粠鍙や唬璧蜂究娌℃湁涓柇榪囷紝浣嗘槸鍏蜂綋鍒板熷姪璁$畻鏈烘潵瑙e喅鍑犱綍闂鐨勭爺絀訛紝榪樺彧鏄仠鐣欏湪涓涓垵綰ч樁孌碉紝鏃犺浠庡簲鐢ㄩ鍩熻繕鏄彂灞曞墠鏅潵鐪嬶紝璁$畻鍑犱綍瀛﹂兘鍊煎緱鎴戜滑璁ょ湡瀛︿範銆佸姞浠ヨ繍鐢紝甯屾湜榪欑瘒鏂囩珷鑳藉甫浣犺蛋榪涜繖涓赴瀵屽褰╃殑涓栫晫銆?/p>



]]>
璁$畻鍑犱綍甯哥敤綆楁硶姒傝http://m.shnenglu.com/proyao/archive/2009/10/06/97941.htmlAcaini.yaoyaoziiAcaini.yaoyaoziiTue, 06 Oct 2009 06:38:00 GMThttp://m.shnenglu.com/proyao/archive/2009/10/06/97941.htmlhttp://m.shnenglu.com/proyao/comments/97941.htmlhttp://m.shnenglu.com/proyao/archive/2009/10/06/97941.html#Feedback0http://m.shnenglu.com/proyao/comments/commentRss/97941.htmlhttp://m.shnenglu.com/proyao/services/trackbacks/97941.html涓銆佸紩璦

璁$畻鏈虹殑鍑虹幇浣垮緱寰堝鍘熸湰鍗佸垎綣佺悙鐨勫伐浣滃緱浠ュぇ騫呭害綆鍖栵紝浣嗘槸涔熸湁涓浜涘湪浜轟滑鐩磋鐪嬫潵寰堝鏄撶殑闂鍗撮渶瑕佹嬁鍑轟竴濂楀茍涓嶇畝鍗曠殑閫氱敤瑙e喅鏂規(guī)錛屾瘮濡傚嚑浣曢棶棰樸備綔涓鴻綆楁満縐戝鐨勪竴涓垎鏀紝璁$畻鍑犱綍涓昏鐮旂┒瑙e喅鍑犱綍闂鐨勭畻娉曘傚湪鐜頒唬宸ョ▼鍜屾暟瀛﹂鍩燂紝璁$畻鍑犱綍鍦ㄥ浘褰㈠銆佹満鍣ㄤ漢鎶鏈佽秴澶ц妯¢泦鎴愮數(shù)璺璁″拰緇熻絳夎澶氶鍩熸湁鐫鍗佸垎閲嶈鐨勫簲鐢ㄣ傚湪鏈枃涓紝鎴戜滑灝嗗璁$畻鍑犱綍甯哥敤鐨勫熀鏈畻娉曞仛涓涓叏闈㈢殑浠嬬粛錛屽笇鏈涘鎮(zhèn)ㄤ簡瑙e茍搴旂敤璁$畻鍑犱綍鐨勭煡璇嗚В鍐抽棶棰樿搗鍒板府鍔┿?br>
浜屻佺洰褰?/strong>

銆銆鏈枃鏁寸悊鐨勮綆楀嚑浣曞熀鏈蹇靛拰甯哥敤綆楁硶鍖呮嫭濡備笅鍐呭錛?br>
銆銆鐭㈤噺鐨勬蹇?br>
銆銆鐭㈤噺鍔犲噺娉?br>
銆銆鐭㈤噺鍙夌Н

銆銆鎶樼嚎孌電殑鎷愬悜鍒ゆ柇

銆銆鍒ゆ柇鐐規(guī)槸鍚﹀湪綰挎涓?br>
銆銆鍒ゆ柇涓ょ嚎孌墊槸鍚︾浉浜?br>
銆銆鍒ゆ柇綰挎鍜岀洿綰挎槸鍚︾浉浜?br>
銆銆鍒ゆ柇鐭╁艦鏄惁鍖呭惈鐐?br>
銆銆鍒ゆ柇綰挎銆佹姌綰褲佸杈瑰艦鏄惁鍦ㄧ煩褰腑

銆銆鍒ゆ柇鐭╁艦鏄惁鍦ㄧ煩褰腑

銆銆鍒ゆ柇鍦嗘槸鍚﹀湪鐭╁艦涓?br>
銆銆鍒ゆ柇鐐規(guī)槸鍚﹀湪澶氳竟褰腑

銆銆鍒ゆ柇綰挎鏄惁鍦ㄥ杈瑰艦鍐?br>
銆銆鍒ゆ柇鎶樼嚎鏄惁鍦ㄥ杈瑰艦鍐?br>
銆銆鍒ゆ柇澶氳竟褰㈡槸鍚﹀湪澶氳竟褰㈠唴

銆銆鍒ゆ柇鐭╁艦鏄惁鍦ㄥ杈瑰艦鍐?br>
銆銆鍒ゆ柇鍦嗘槸鍚﹀湪澶氳竟褰㈠唴

銆銆鍒ゆ柇鐐規(guī)槸鍚﹀湪鍦嗗唴

銆銆鍒ゆ柇綰挎銆佹姌綰褲佺煩褰€佸杈瑰艦鏄惁鍦ㄥ渾鍐?br>
銆銆鍒ゆ柇鍦嗘槸鍚﹀湪鍦嗗唴

銆銆璁$畻鐐瑰埌綰挎鐨勬渶榪戠偣

銆銆璁$畻鐐瑰埌鎶樼嚎銆佺煩褰€佸杈瑰艦鐨勬渶榪戠偣

銆銆璁$畻鐐瑰埌鍦嗙殑鏈榪戣窛紱誨強浜ょ偣鍧愭爣

銆銆璁$畻涓ゆ潯鍏辯嚎鐨勭嚎孌電殑浜ょ偣

銆銆璁$畻綰挎鎴栫洿綰夸笌綰挎鐨勪氦鐐?br>
銆銆姹傜嚎孌墊垨鐩寸嚎涓庢姌綰褲佺煩褰€佸杈瑰艦鐨勪氦鐐?br>
銆銆姹傜嚎孌墊垨鐩寸嚎涓庡渾鐨勪氦鐐?br>
銆銆鍑稿寘鐨勬蹇?br>
銆銆鍑稿寘鐨勬眰娉?br>
涓夈佺畻娉曚粙緇?/strong>

鐭㈤噺鐨勬蹇碉細

濡傛灉涓鏉$嚎孌電殑绔偣鏄湁嬈″簭涔嬪垎鐨勶紝鎴戜滑鎶婅繖縐嶇嚎孌墊垚涓烘湁鍚戠嚎孌?directed segment)銆傚鏋滄湁鍚戠嚎孌祊1p2鐨勮搗鐐筽1鍦ㄥ潗鏍囧師鐐癸紝鎴戜滑鍙互鎶婂畠縐頒負鐭㈤噺(vector)p2銆?br>
鐭㈤噺鍙夌Н錛?/strong>

璁$畻鐭㈤噺鍙夌Н鏄笌鐩寸嚎鍜岀嚎孌電浉鍏崇畻娉曠殑鏍稿績閮ㄥ垎銆傝鐭㈤噺P = 錛坸1,y1錛?錛孮 = (x2,y2)錛屽垯鐭㈤噺鍙夌Н瀹氫箟涓虹敱(0,0)銆乸1銆乸2鍜宲1+p2鎵緇勬垚鐨勫鉤琛屽洓杈瑰艦鐨勫甫絎﹀彿鐨勯潰縐紝鍗籌細P × Q = x1*y2 - x2*y1錛屽叾緇撴灉鏄竴涓爣閲忋傛樉鐒舵湁鎬ц川 P × Q = - ( Q × P ) 鍜?P × ( - Q ) = - ( P × Q )銆備竴鑸湪涓嶅姞璇存槑鐨勬儏鍐典笅錛屾湰鏂囦笅榪扮畻娉曚腑鎵鏈夌殑鐐歸兘鐪嬩綔鐭㈤噺錛屼袱鐐圭殑鍔犲噺娉曞氨鏄煝閲忕浉鍔犲噺錛岃岀偣鐨勪箻娉曞垯鐪嬩綔鐭㈤噺鍙夌Н銆?br>
銆銆鍙夌Н鐨勪竴涓潪甯擱噸瑕佹ц川鏄彲浠ラ氳繃瀹冪殑絎﹀彿鍒ゆ柇涓ょ煝閲忕浉浜掍箣闂寸殑欏洪嗘椂閽堝叧緋伙細

銆銆鑻?P × Q > 0 , 鍒橮鍦≦鐨勯『鏃墮拡鏂瑰悜銆?br>銆銆鑻?P × Q < 0 , 鍒橮鍦≦鐨勯嗘椂閽堟柟鍚戙?br>銆銆鑻?P × Q = 0 , 鍒橮涓嶲鍏辯嚎錛屼絾鍙兘鍚屽悜涔熷彲鑳藉弽鍚戙?br>
鎶樼嚎孌電殑鎷愬悜鍒ゆ柇錛?/strong>

銆銆鎶樼嚎孌電殑鎷愬悜鍒ゆ柇鏂規(guī)硶鍙互鐩存帴鐢辯煝閲忓弶縐殑鎬ц川鎺ㄥ嚭銆傚浜庢湁鍏叡绔偣鐨勭嚎孌祊0p1鍜宲1p2錛岄氳繃璁$畻(p2 - p0) × (p1 - p0)鐨勭鍙蜂究鍙互紜畾鎶樼嚎孌電殑鎷愬悜錛?br>
銆銆鑻?p2 - p0) × (p1 - p0) > 0,鍒檖0p1鍦╬1鐐規(guī)嫄鍚戝彸渚у悗寰楀埌p1p2銆?br>
銆銆鑻?p2 - p0) × (p1 - p0) < 0,鍒檖0p1鍦╬1鐐規(guī)嫄鍚戝乏渚у悗寰楀埌p1p2銆?br>
銆銆鑻?p2 - p0) × (p1 - p0) = 0,鍒檖0銆乸1銆乸2涓夌偣鍏辯嚎銆?br>
銆銆鍏蜂綋鎯呭喌鍙弬鐓т笅鍥撅細

鍒ゆ柇鐐規(guī)槸鍚﹀湪綰挎涓婏細

銆銆璁劇偣涓篞錛岀嚎孌典負P1P2 錛屽垽鏂偣Q鍦ㄨ綰挎涓婄殑渚濇嵁鏄細( Q - P1 ) × ( P2 - P1 ) = 0 涓?Q 鍦ㄤ互 P1錛孭2涓哄瑙掗《鐐圭殑鐭╁艦鍐呫傚墠鑰呬繚璇丵鐐瑰湪鐩寸嚎P1P2涓婏紝鍚庤呮槸淇濊瘉Q鐐逛笉鍦ㄧ嚎孌礟1P2鐨勫歡闀跨嚎鎴栧弽鍚戝歡闀跨嚎涓婏紝瀵逛簬榪欎竴姝ラ鐨勫垽鏂彲浠ョ敤浠ヤ笅榪囩▼瀹炵幇錛?br>
銆銆ON-SEGMENT(pi,pj,pk)

銆銆if min(xi,xj)<=xk<=max(xi,xj) and min(yi,yj)<=yk<=max(yi,yj)

銆銆then return true;

銆銆else return false;

銆銆鐗瑰埆瑕佹敞鎰忕殑鏄紝鐢變簬闇瑕佽冭檻姘村鉤綰挎鍜屽瀭鐩寸嚎孌典袱縐嶇壒孌婃儏鍐碉紝min(xi,xj)<=xk<=max(xi,xj)鍜宮in(yi,yj)<=yk<=max(yi,yj)涓や釜鏉′歡蹇呴』鍚屾椂婊¤凍鎵嶈兘榪斿洖鐪熷箋?br>
鍒ゆ柇涓ょ嚎孌墊槸鍚︾浉浜わ細

鎴戜滑鍒嗕袱姝ョ‘瀹氫袱鏉$嚎孌墊槸鍚︾浉浜わ細

銆銆(1)蹇熸帓鏂ヨ瘯楠?br>
銆銆璁句互綰挎 P1P2 涓哄瑙掔嚎鐨勭煩褰負R錛?璁句互綰挎 Q1Q2 涓哄瑙掔嚎鐨勭煩褰負T錛屽鏋淩鍜孴涓嶇浉浜わ紝鏄劇劧涓ょ嚎孌典笉浼氱浉浜ゃ?br>
銆銆(2)璺ㄧ珛璇曢獙

銆銆濡傛灉涓ょ嚎孌電浉浜わ紝鍒欎袱綰挎蹇呯劧鐩鎬簰璺ㄧ珛瀵規(guī)柟銆傝嫢P1P2璺ㄧ珛Q1Q2 錛屽垯鐭㈤噺 ( P1 - Q1 ) 鍜? P2 - Q1 )浣嶄簬鐭㈤噺( Q2 - Q1 ) 鐨勪袱渚э紝鍗? P1 - Q1 ) × ( Q2 - Q1 ) * ( P2 - Q1 ) × ( Q2 - Q1 ) < 0銆備笂寮忓彲鏀瑰啓鎴? P1 - Q1 ) × ( Q2 - Q1 ) * ( Q2 - Q1 ) × ( P2 - Q1 ) > 0銆傚綋 ( P1 - Q1 ) × ( Q2 - Q1 ) = 0 鏃訛紝璇存槑 ( P1 - Q1 ) 鍜?( Q2 - Q1 )鍏辯嚎錛屼絾鏄洜涓哄凡緇忛氳繃蹇熸帓鏂ヨ瘯楠岋紝鎵浠?P1 涓瀹氬湪綰挎 Q1Q2涓婏紱鍚岀悊錛? Q2 - Q1 ) ×(P2 - Q1 ) = 0 璇存槑 P2 涓瀹氬湪綰挎 Q1Q2涓娿傛墍浠ュ垽鏂璓1P2璺ㄧ珛Q1Q2鐨勪緷鎹槸錛? P1 - Q1 ) × ( Q2 - Q1 ) * ( Q2 - Q1 ) × ( P2 - Q1 ) >= 0銆傚悓鐞嗗垽鏂璔1Q2璺ㄧ珛P1P2鐨勪緷鎹槸錛? Q1 - P1 ) × ( P2 - P1 ) * ( P2 - P1 ) × ( Q2 - P1 ) >= 0銆傚叿浣撴儏鍐靛涓嬪浘鎵紺猴細

鍦ㄧ浉鍚岀殑鍘熺悊涓嬶紝瀵規(guī)綆楁硶鐨勫叿浣撶殑瀹炵幇緇嗚妭鍙兘浼氫笌姝ゆ湁鎵涓嶅悓錛岄櫎浜嗚繖縐嶈繃紼嬪錛屽ぇ瀹朵篃鍙互鍙傝冦婄畻娉曞璁恒嬩笂鐨勫疄鐜般?br>
鍒ゆ柇綰挎鍜岀洿綰挎槸鍚︾浉浜わ細

鏈変簡涓婇潰鐨勫熀紜錛岃繖涓畻娉曞氨寰堝鏄撲簡銆傚鏋滅嚎孌礟1P2鍜岀洿綰縌1Q2鐩鎬氦錛屽垯P1P2璺ㄧ珛Q1Q2錛屽嵆錛? P1 - Q1 ) × ( Q2 - Q1 ) * ( Q2 - Q1 ) × ( P2 - Q1 ) >= 0銆?br>
鍒ゆ柇鐭╁艦鏄惁鍖呭惈鐐癸細

鍙鍒ゆ柇璇ョ偣鐨勬í鍧愭爣鍜岀旱鍧愭爣鏄惁澶瑰湪鐭╁艦鐨勫乏鍙寵竟鍜屼笂涓嬭竟涔嬮棿銆?br>
鍒ゆ柇綰挎銆佹姌綰褲佸杈瑰艦鏄惁鍦ㄧ煩褰腑錛?/strong>

鍥犱負鐭╁艦鏄釜鍑擱泦錛屾墍浠ュ彧瑕佸垽鏂墍鏈夌鐐規(guī)槸鍚﹂兘鍦ㄧ煩褰腑灝卞彲浠ヤ簡銆?br>
鍒ゆ柇鐭╁艦鏄惁鍦ㄧ煩褰腑錛?/strong>

鍙姣旇緝宸﹀彸杈圭晫鍜屼笂涓嬭竟鐣屽氨鍙互浜嗐?br>
鍒ゆ柇鍦嗘槸鍚﹀湪鐭╁艦涓細

寰堝鏄撹瘉鏄庯紝鍦嗗湪鐭╁艦涓殑鍏呰鏉′歡鏄細鍦嗗績鍦ㄧ煩褰腑涓斿渾鐨勫崐寰勫皬浜庣瓑浜庡渾蹇冨埌鐭╁艦鍥涜竟鐨勮窛紱葷殑鏈灝忓箋?br>
鍒ゆ柇鐐規(guī)槸鍚﹀湪澶氳竟褰腑錛?/strong>

銆銆鍒ゆ柇鐐筆鏄惁鍦ㄥ杈瑰艦涓槸璁$畻鍑犱綍涓竴涓潪甯稿熀鏈絾鏄崄鍒嗛噸瑕佺殑綆楁硶銆備互鐐筆涓虹鐐癸紝鍚戝乏鏂逛綔灝勭嚎L錛岀敱浜庡杈瑰艦鏄湁鐣岀殑錛屾墍浠ュ皠綰縇鐨勫乏绔竴瀹氬湪澶氳竟褰㈠錛岃冭檻娌跨潃L浠庢棤絀瘋繙澶勫紑濮嬭嚜宸﹀悜鍙崇Щ鍔紝閬囧埌鍜屽杈瑰艦鐨勭涓涓氦鐐圭殑鏃跺欙紝榪涘叆鍒頒簡澶氳竟褰㈢殑鍐呴儴錛岄亣鍒扮浜屼釜浜ょ偣鐨勬椂鍊欙紝紱誨紑浜嗗杈瑰艦錛?#8230;…鎵浠ュ緢瀹規(guī)槗鐪嬪嚭褰揕鍜屽杈瑰艦鐨勪氦鐐規(guī)暟鐩瓹鏄鏁扮殑鏃跺欙紝P鍦ㄥ杈瑰艦鍐咃紝鏄伓鏁扮殑璇漃鍦ㄥ杈瑰艦澶栥?br>
銆銆浣嗘槸鏈変簺鐗規(guī)畩鎯呭喌瑕佸姞浠ヨ冭檻銆傚鍥句笅鍥?a)(b)(c)(d)鎵紺恒傚湪鍥?a)涓紝L鍜屽杈瑰艦鐨勯《鐐圭浉浜わ紝榪欐椂鍊欎氦鐐瑰彧鑳借綆椾竴涓紱鍦ㄥ浘(b)涓紝L鍜屽杈瑰艦欏剁偣鐨勪氦鐐逛笉搴旇璁$畻錛涘湪鍥?c)鍜?d) 涓紝L鍜屽杈瑰艦鐨勪竴鏉¤竟閲嶅悎錛岃繖鏉¤竟搴旇琚拷鐣ヤ笉璁°傚鏋淟鍜屽杈瑰艦鐨勪竴鏉¤竟閲嶅悎錛岃繖鏉¤竟搴旇琚拷鐣ヤ笉璁°?/p>

涓轟簡緇熶竴璧瘋錛屾垜浠湪璁$畻灝勭嚎L鍜屽杈瑰艦鐨勪氦鐐圭殑鏃跺欙紝1銆傚浜庡杈瑰艦鐨勬按騫寵竟涓嶄綔鑰冭檻錛?銆傚浜庡杈瑰艦鐨勯《鐐瑰拰L鐩鎬氦鐨勬儏鍐碉紝濡傛灉璇ラ《鐐規(guī)槸鍏舵墍灞炵殑杈逛笂綰靛潗鏍囪緝澶х殑欏剁偣錛屽垯璁℃暟錛屽惁鍒欏拷鐣ワ紱3銆傚浜嶱鍦ㄥ杈瑰艦杈逛笂鐨勬儏褰紝鐩存帴鍙垽鏂璓灞炰簬澶氳竟琛屻傜敱姝ゅ緱鍑虹畻娉曠殑浼唬鐮佸涓嬶細

銆銆count ← 0;
銆銆浠涓虹鐐癸紝浣滀粠鍙沖悜宸︾殑灝勭嚎L;
銆銆for 澶氳竟褰㈢殑姣忔潯杈箂
銆銆do if P鍦ㄨ竟s涓?
銆銆then return true;
銆銆if s涓嶆槸姘村鉤鐨?br>銆銆then if s鐨勪竴涓鐐瑰湪L涓?br>銆銆if 璇ョ鐐規(guī)槸s涓ょ鐐逛腑綰靛潗鏍囪緝澶х殑绔偣
銆銆then count ← count+1
銆銆else if s鍜孡鐩鎬氦
銆銆then count ← count+1;
銆銆if count mod 2 = 1
銆銆then return true;
銆銆else return false;

銆銆鍏朵腑鍋氬皠綰縇鐨勬柟娉曟槸錛氳P'鐨勭旱鍧愭爣鍜孭鐩稿悓錛屾í鍧愭爣涓烘鏃犵┓澶э紙寰堝ぇ鐨勪竴涓鏁幫級錛屽垯P鍜孭'灝辯‘瀹氫簡灝勭嚎L銆?

銆銆鍒ゆ柇鐐規(guī)槸鍚﹀湪澶氳竟褰腑鐨勮繖涓畻娉曠殑鏃墮棿澶嶆潅搴︿負O(n)銆?br>
銆銆鍙﹀榪樻湁涓縐嶇畻娉曟槸鐢ㄥ甫絎﹀彿鐨勪笁瑙掑艦闈㈢Н涔嬪拰涓庡杈瑰艦闈㈢Н榪涜姣旇緝錛岃繖縐嶇畻娉曠敱浜庝嬌鐢ㄦ誕鐐規(guī)暟榪愮畻鎵浠ヤ細甯︽潵涓瀹氳宸紝涓嶆帹鑽愬ぇ瀹朵嬌鐢ㄣ?

鍒ゆ柇綰挎鏄惁鍦ㄥ杈瑰艦鍐咃細

銆銆綰挎鍦ㄥ杈瑰艦鍐呯殑涓涓繀瑕佹潯浠舵槸綰挎鐨勪袱涓鐐歸兘鍦ㄥ杈瑰艦鍐咃紝浣嗙敱浜庡杈瑰艦鍙兘涓哄嚬錛屾墍浠ヨ繖涓嶈兘鎴愪負鍒ゆ柇鐨勫厖鍒嗘潯浠躲傚鏋滅嚎孌靛拰澶氳竟褰㈢殑鏌愭潯杈瑰唴浜わ紙涓ょ嚎孌靛唴浜ゆ槸鎸囦袱綰挎鐩鎬氦涓斾氦鐐逛笉鍦ㄤ袱綰挎鐨勭鐐癸級錛屽洜涓哄杈瑰艦鐨勮竟鐨勫乏鍙充袱渚у垎灞炲杈瑰艦鍐呭涓嶅悓閮ㄥ垎錛屾墍浠ョ嚎孌典竴瀹氫細鏈変竴閮ㄥ垎鍦ㄥ杈瑰艦澶?瑙佸浘a)銆備簬鏄垜浠緱鍒扮嚎孌靛湪澶氳竟褰㈠唴鐨勭浜屼釜蹇呰鏉′歡錛氱嚎孌靛拰澶氳竟褰㈢殑鎵鏈夎竟閮戒笉鍐呬氦銆?

銆銆綰挎鍜屽杈瑰艦浜や簬綰挎鐨勪袱绔偣騫朵笉浼氬獎鍝嶇嚎孌墊槸鍚﹀湪澶氳竟褰㈠唴錛涗絾鏄鏋滃杈瑰艦鐨勬煇涓《鐐瑰拰綰挎鐩鎬氦錛岃繕蹇呴』鍒ゆ柇涓ょ浉閭諱氦鐐逛箣闂寸殑綰挎鏄惁鍖呭惈浜庡杈瑰艦鍐呴儴錛堝弽渚嬭鍥綽)銆?/p>

鍥犳鎴戜滑鍙互鍏堟眰鍑烘墍鏈夊拰綰挎鐩鎬氦鐨勫杈瑰艦鐨勯《鐐癸紝鐒跺悗鎸夌収X-Y鍧愭爣鎺掑簭(X鍧愭爣灝忕殑鎺掑湪鍓嶉潰錛屽浜嶺鍧愭爣鐩稿悓鐨勭偣錛孻鍧愭爣灝忕殑鎺掑湪鍓嶉潰錛岃繖縐嶆帓搴忓噯鍒欎篃鏄負浜嗕繚璇佹按騫沖拰鍨傜洿鎯呭喌鐨勫垽鏂紜?錛岃繖鏍風浉閭?cè)潥勪袱涓偣灏辨槸鍦ňU挎涓婄浉閭?cè)潥勪袱浜ょ偣锛屽鏋滀焕L剰鐩擱偦涓ょ偣鐨勪腑鐐逛篃鍦ㄥ杈瑰艦鍐咃紝鍒欒綰挎涓瀹氬湪澶氳竟褰㈠唴銆?

銆銆璇佹槑濡備笅錛?br>
銆銆鍛介1錛?br>
銆銆濡傛灉綰挎鍜屽杈瑰艦鐨勪袱鐩擱偦浜ょ偣P1 錛孭2鐨勪腑鐐筆' 涔熷湪澶氳竟褰㈠唴錛屽垯P1, P2涔嬮棿鐨勬墍鏈夌偣閮藉湪澶氳竟褰㈠唴銆?br>
銆銆璇佹槑錛?br>
銆銆鍋囪P1,P2涔嬮棿鍚湁涓嶅湪澶氳竟褰㈠唴鐨勭偣錛屼笉濡ㄨ璇ョ偣涓篞錛屽湪P1, P'涔嬮棿錛屽洜涓哄杈瑰艦鏄棴鍚堟洸綰匡紝鎵浠ュ叾鍐呭閮ㄤ箣闂存湁鐣岋紝鑰孭1灞炰簬澶氳竟琛屽唴閮紝Q灞炰簬澶氳竟鎬у閮紝P'灞炰簬澶氳竟鎬у唴閮紝P1-Q-P'瀹屽叏榪炵畫錛屾墍浠1Q鍜孮P'涓瀹氳法瓚婂杈瑰艦鐨勮竟鐣岋紝鍥犳鍦≒1,P'涔嬮棿鑷沖皯榪樻湁涓や釜璇ョ嚎孌靛拰澶氳竟褰㈢殑浜ょ偣錛岃繖鍜孭1P2鏄浉閭諱袱浜ょ偣鐭涚浘錛屾晠鍛介鎴愮珛銆傝瘉姣曘?

銆銆鐢卞懡棰?鐩存帴鍙緱鍑烘帹璁猴細

銆銆鎺ㄨ2錛?br>
銆銆璁懼杈瑰艦鍜岀嚎孌礟Q鐨勪氦鐐逛緷嬈′負P1,P2,……Pn錛屽叾涓璓i鍜孭i+1鏄浉閭諱袱浜ょ偣錛岀嚎孌礟Q鍦ㄥ杈瑰艦鍐呯殑鍏呰鏉′歡鏄細P錛孮鍦ㄥ杈瑰艦鍐呬笖瀵逛簬i =1, 2,……, n-1錛孭i ,Pi+1鐨勪腑鐐逛篃鍦ㄥ杈瑰艦鍐呫?br>
銆銆鍦ㄥ疄闄呯紪紼嬩腑錛屾病鏈夊繀瑕佽綆楁墍鏈夌殑浜ょ偣錛岄鍏堝簲鍒ゆ柇綰挎鍜屽杈瑰艦鐨勮竟鏄惁鍐呬氦錛屽樿嫢綰挎鍜屽杈瑰艦鐨勬煇鏉¤竟鍐呬氦鍒欑嚎孌典竴瀹氬湪澶氳竟褰㈠錛涘鏋滅嚎孌靛拰澶氳竟褰㈢殑姣忎竴鏉¤竟閮戒笉鍐呬氦錛屽垯綰挎鍜屽杈瑰艦鐨勪氦鐐逛竴瀹氭槸綰挎鐨勭鐐規(guī)垨鑰呭杈瑰艦鐨勯《鐐癸紝鍙鍒ゆ柇鐐規(guī)槸鍚﹀湪綰挎涓婂氨鍙互浜嗐?br>
銆銆鑷蟲鎴戜滑寰楀嚭綆楁硶濡備笅錛?br>
銆銆if 綰跨PQ鐨勭鐐逛笉閮藉湪澶氳竟褰㈠唴
銆銆then return false;
銆銆鐐歸泦pointSet鍒濆鍖栦負絀?
銆銆for 澶氳竟褰㈢殑姣忔潯杈箂
銆銆do if 綰挎鐨勬煇涓鐐瑰湪s涓?br>銆銆then 灝嗚绔偣鍔犲叆pointSet;
銆銆else if s鐨勬煇涓鐐瑰湪綰挎PQ涓?br>銆銆then 灝嗚绔偣鍔犲叆pointSet;
銆銆else if s鍜岀嚎孌礟Q鐩鎬氦 // 榪欐椂鍊欏凡緇忓彲浠ヨ偗瀹氭槸鍐呬氦浜?br>銆銆then return false;
銆銆灝唒ointSet涓殑鐐規(guī)寜鐓-Y鍧愭爣鎺掑簭;
銆銆for pointSet涓瘡涓や釜鐩擱偦鐐?pointSet[i] , pointSet[ i+1]
銆銆do if pointSet[i] , pointSet[ i+1] 鐨勪腑鐐逛笉鍦ㄥ杈瑰艦涓?br>銆銆then return false;
銆銆return true;

銆銆榪欎釜榪囩▼涓殑鎺掑簭鍥犱負浜ょ偣鏁扮洰鑲畾榪滃皬浜庡杈瑰艦鐨勯《鐐規(guī)暟鐩畁錛屾墍浠ユ渶澶氭槸甯告暟綰х殑澶嶆潅搴︼紝鍑犱箮鍙互蹇界暐涓嶈銆傚洜姝ょ畻娉曠殑鏃墮棿澶嶆潅搴︿篃鏄疧(n)銆?

鍒ゆ柇鎶樼嚎鏄惁鍦ㄥ杈瑰艦鍐咃細

銆銆鍙鍒ゆ柇鎶樼嚎鐨勬瘡鏉$嚎孌墊槸鍚﹂兘鍦ㄥ杈瑰艦鍐呭嵆鍙傝鎶樼嚎鏈塵鏉$嚎孌碉紝澶氳竟褰㈡湁n涓《鐐癸紝鍒欒綆楁硶鐨勬椂闂村鏉傚害涓篛(m*n)銆?

銆鍒ゆ柇澶氳竟褰㈡槸鍚﹀湪澶氳竟褰㈠唴錛?

銆銆鍙鍒ゆ柇澶氳竟褰㈢殑姣忔潯杈規(guī)槸鍚﹂兘鍦ㄥ杈瑰艦鍐呭嵆鍙傚垽鏂竴涓湁m涓《鐐圭殑澶氳竟褰㈡槸鍚﹀湪涓涓湁n涓《鐐圭殑澶氳竟褰㈠唴澶嶆潅搴︿負O(m*n)銆?br>
銆鍒ゆ柇鐭╁艦鏄惁鍦ㄥ杈瑰艦鍐咃細

灝嗙煩褰㈣漿鍖栦負澶氳竟褰紝鐒跺悗鍐嶅垽鏂槸鍚﹀湪澶氳竟褰㈠唴銆?

鍒ゆ柇鍦嗘槸鍚﹀湪澶氳竟褰㈠唴錛?/strong>

銆銆鍙璁$畻鍦嗗績鍒板杈瑰艦鐨勬瘡鏉¤竟鐨勬渶鐭窛紱伙紝濡傛灉璇ヨ窛紱誨ぇ浜庣瓑浜庡渾鍗婂緞鍒欒鍦嗗湪澶氳竟褰㈠唴銆傝綆楀渾蹇冨埌澶氳竟褰㈡瘡鏉¤竟鏈鐭窛紱葷殑綆楁硶鍦ㄥ悗鏂囬槓榪般?

鍒ゆ柇鐐規(guī)槸鍚﹀湪鍦嗗唴錛?/strong>

璁$畻鍦嗗績鍒拌鐐圭殑璺濈錛屽鏋滃皬浜庣瓑浜庡崐寰勫垯璇ョ偣鍦ㄥ渾鍐呫?br>
鍒ゆ柇綰挎銆佹姌綰褲佺煩褰€佸杈瑰艦鏄惁鍦ㄥ渾鍐?

鍥犱負鍦嗘槸鍑擱泦錛屾墍浠ュ彧瑕佸垽鏂槸鍚︽瘡涓《鐐歸兘鍦ㄥ渾鍐呭嵆鍙?

鍒ゆ柇鍦嗘槸鍚﹀湪鍦嗗唴錛?/strong>

銆璁句袱鍦嗕負O1,O2錛屽崐寰勫垎鍒負r1, r2錛岃鍒ゆ柇O2鏄惁鍦∣1鍐呫傚厛姣旇緝r1錛宺2鐨勫ぇ灝忥紝濡傛灉r1<r2鍒橭2涓嶅彲鑳藉湪O1鍐咃紱鍚﹀垯濡傛灉涓ゅ渾蹇冪殑璺濈澶т簬r1 - r2 錛屽垯O2涓嶅湪O1鍐咃紱鍚﹀垯O2鍦∣1鍐呫?

璁$畻鐐瑰埌綰挎鐨勬渶榪戠偣錛?/strong>

銆銆濡傛灉璇ョ嚎孌靛鉤琛屼簬X杞達紙Y杞達級錛屽垯榪囩偣point浣滆綰挎鎵鍦ㄧ洿綰跨殑鍨傜嚎錛屽瀭瓚沖緢瀹規(guī)槗姹傚緱錛岀劧鍚庤綆楀嚭鍨傝凍錛屽鏋滃瀭瓚沖湪綰挎涓婂垯榪斿洖鍨傝凍錛屽惁鍒欒繑鍥炵鍨傝凍榪戠殑绔偣錛涘鏋滆綰挎涓嶅鉤琛屼簬X杞翠篃涓嶅鉤琛屼簬Y杞達紝鍒欐枩鐜囧瓨鍦ㄤ笖涓嶄負0銆傝綰挎鐨勪袱绔偣涓簆t1鍜宲t2錛屾枩鐜囦負錛歬 = ( pt2.y - pt1. y ) / (pt2.x - pt1.x );璇ョ洿綰挎柟紼嬩負錛歽 = k* ( x - pt1.x) + pt1.y銆傚叾鍨傜嚎鐨勬枩鐜囦負 - 1 / k錛屽瀭綰挎柟紼嬩負錛歽 = (-1/k) * (x - point.x) + point.y 銆?

銆銆鑱旂珛涓ょ洿綰挎柟紼嬭В寰楋細x = ( k^2 * pt1.x + k * (point.y - pt1.y ) + point.x ) / ( k^2 + 1) 錛寉 = k * ( x - pt1.x) + pt1.y;鐒跺悗鍐嶅垽鏂瀭瓚蟲槸鍚﹀湪綰挎涓婏紝濡傛灉鍦ㄧ嚎孌典笂鍒欒繑鍥炲瀭瓚籌紱濡傛灉涓嶅湪鍒欒綆椾袱绔偣鍒板瀭瓚崇殑璺濈錛岄夋嫨璺濈鍨傝凍杈冭繎鐨勭鐐硅繑鍥炪?

璁$畻鐐瑰埌鎶樼嚎銆佺煩褰€佸杈瑰艦鐨勬渶榪戠偣錛?/strong>

鍙鍒嗗埆璁$畻鐐瑰埌姣忔潯綰挎鐨勬渶榪戠偣錛岃褰曟渶榪戣窛紱伙紝鍙栧叾涓渶榪戣窛紱繪渶灝忕殑鐐瑰嵆鍙?

璁$畻鐐瑰埌鍦嗙殑鏈榪戣窛紱誨強浜ょ偣鍧愭爣錛?/strong>

銆銆濡傛灉璇ョ偣鍦ㄥ渾蹇冿紝鍥犱負鍦嗗績鍒板渾鍛ㄤ換涓鐐圭殑璺濈鐩哥瓑錛岃繑鍥濽NDEFINED銆?

銆銆榪炴帴鐐筆鍜屽渾蹇僌錛屽鏋淧O騫寵浜嶺杞達紝鍒欐牴鎹甈鍦∣鐨勫乏杈硅繕鏄彸杈硅綆楀嚭鏈榪戠偣鐨勬í鍧愭爣涓篶enterPoint.x - radius 鎴?centerPoint.x + radius銆傚鏋淧O騫寵浜嶻杞達紝鍒欐牴鎹甈鍦∣鐨勪笂杈硅繕鏄笅杈硅綆楀嚭鏈榪戠偣鐨勭旱鍧愭爣涓?centerPoint.y -+radius鎴?centerPoint.y - radius銆傚鏋淧O涓嶅鉤琛屼簬X杞村拰Y杞達紝鍒橮O鐨勬枩鐜囧瓨鍦ㄤ笖涓嶄負0錛岃繖鏃剁洿綰縋O鏂滅巼涓簁 = 錛?P.y - O.y 錛? ( P.x - O.x )銆傜洿綰縋O鐨勬柟紼嬩負錛歽 = k * ( x - P.x) + P.y銆傝鍦嗘柟紼嬩負:(x - O.x ) ^2 + ( y - O.y ) ^2 = r ^2錛岃仈绔嬩袱鏂圭▼緇勫彲浠ヨВ鍑虹洿綰縋O鍜屽渾鐨勪氦鐐癸紝鍙栧叾涓P鐐硅緝榪戠殑浜ょ偣鍗沖彲銆?

璁$畻涓ゆ潯鍏辯嚎鐨勭嚎孌電殑浜ょ偣錛?/strong>

銆銆瀵逛簬涓ゆ潯鍏辯嚎鐨勭嚎孌碉紝瀹冧滑涔嬮棿鐨勪綅緗叧緋繪湁涓嬪浘鎵紺虹殑鍑犵鎯呭喌銆傚浘(a)涓袱鏉$嚎孌墊病鏈変氦鐐癸紱鍥?(b) 鍜?(d) 涓袱鏉$嚎孌墊湁鏃犵┓鐒︾偣錛涘浘 (c) 涓袱鏉$嚎孌墊湁涓涓氦鐐廣傝line1鏄袱鏉$嚎孌典腑杈冮暱鐨勪竴鏉★紝line2鏄緝鐭殑涓鏉★紝濡傛灉line1鍖呭惈浜唋ine2鐨勪袱涓鐐癸紝鍒欐槸鍥?d)鐨勬儏鍐碉紝涓ょ嚎孌墊湁鏃犵┓浜ょ偣錛涘鏋渓ine1鍙寘鍚玪ine2鐨勪竴涓鐐癸紝閭d箞濡傛灉line1鐨勬煇涓鐐圭瓑浜庤line1鍖呭惈鐨刲ine2鐨勯偅涓鐐癸紝鍒欐槸鍥?c)鐨勬儏鍐碉紝榪欐椂涓ょ嚎孌靛彧鏈変竴涓氦鐐癸紝鍚﹀垯灝辨槸鍥?b)鐨勬儏鍐碉紝涓ょ嚎孌典篃鏄湁鏃犵┓鐨勪氦鐐癸紱濡傛灉line1涓嶅寘鍚玪ine2鐨勪換浣曠鐐癸紝鍒欐槸鍥?a)鐨勬儏鍐碉紝榪欐椂涓ょ嚎孌墊病鏈変氦鐐廣?/p>

 

璁$畻綰挎鎴栫洿綰夸笌綰挎鐨勪氦鐐?

銆銆璁句竴鏉$嚎孌典負L0 = P1P2錛屽彟涓鏉$嚎孌墊垨鐩寸嚎涓篖1 = Q1Q2 錛岃璁$畻鐨勫氨鏄疞0鍜孡1鐨勪氦鐐廣?br>
銆銆1錛?棣栧厛鍒ゆ柇L0鍜孡1鏄惁鐩鎬氦錛堟柟娉曞凡鍦ㄥ墠鏂囪璁鴻繃錛夛紝濡傛灉涓嶇浉浜ゅ垯娌℃湁浜ょ偣錛屽惁鍒欒鏄嶭0鍜孡1涓瀹氭湁浜ょ偣錛屼笅闈㈠氨灝哃0鍜孡1閮界湅浣滅洿綰挎潵鑰冭檻銆?

銆銆2錛?濡傛灉P1鍜孭2妯潗鏍囩浉鍚岋紝鍗矻0騫寵浜嶻杞?

銆銆a) 鑻1涔熷鉤琛屼簬Y杞達紝

銆銆i. 鑻1鐨勭旱鍧愭爣鍜孮1鐨勭旱鍧愭爣鐩稿悓錛岃鏄嶭0鍜孡1鍏辯嚎錛屽亣濡侺1鏄洿綰跨殑璇濅粬浠湁鏃犵┓鐨勪氦鐐癸紝鍋囧L1鏄嚎孌電殑璇濆彲鐢?璁$畻涓ゆ潯鍏辯嚎綰挎鐨勪氦鐐?鐨勭畻娉曟眰浠栦滑鐨勪氦鐐癸紙璇ユ柟娉曞湪鍓嶆枃宸茶璁鴻繃錛夛紱

銆銆ii. 鍚﹀垯璇存槑L0鍜孡1騫寵錛屼粬浠病鏈変氦鐐癸紱

銆銆b) 鑻1涓嶅鉤琛屼簬Y杞達紝鍒欎氦鐐規(guī)í鍧愭爣涓篜1鐨勬í鍧愭爣錛屼唬鍏ュ埌L1鐨勭洿綰挎柟紼嬩腑鍙互璁$畻鍑轟氦鐐圭旱鍧愭爣錛?

銆銆3錛?濡傛灉P1鍜孭2妯潗鏍囦笉鍚岋紝浣嗘槸Q1鍜孮2妯潗鏍囩浉鍚岋紝鍗矻1騫寵浜嶻杞達紝鍒欎氦鐐規(guī)í鍧愭爣涓篞1鐨勬í鍧愭爣錛屼唬鍏ュ埌L0鐨勭洿綰挎柟紼嬩腑鍙互璁$畻鍑轟氦鐐圭旱鍧愭爣錛?

銆銆4錛?濡傛灉P1鍜孭2綰靛潗鏍囩浉鍚岋紝鍗矻0騫寵浜嶺杞?

銆銆a) 鑻1涔熷鉤琛屼簬X杞達紝

銆銆i. 鑻1鐨勬í鍧愭爣鍜孮1鐨勬í鍧愭爣鐩稿悓錛岃鏄嶭0鍜孡1鍏辯嚎錛屽亣濡侺1鏄洿綰跨殑璇濅粬浠湁鏃犵┓鐨勪氦鐐癸紝鍋囧L1鏄嚎孌電殑璇濆彲鐢?璁$畻涓ゆ潯鍏辯嚎綰挎鐨勪氦鐐?鐨勭畻娉曟眰浠栦滑鐨勪氦鐐癸紙璇ユ柟娉曞湪鍓嶆枃宸茶璁鴻繃錛夛紱

銆銆ii. 鍚﹀垯璇存槑L0鍜孡1騫寵錛屼粬浠病鏈変氦鐐癸紱

銆銆b) 鑻1涓嶅鉤琛屼簬X杞達紝鍒欎氦鐐圭旱鍧愭爣涓篜1鐨勭旱鍧愭爣錛屼唬鍏ュ埌L1鐨勭洿綰挎柟紼嬩腑鍙互璁$畻鍑轟氦鐐規(guī)í鍧愭爣錛?

銆銆5錛?濡傛灉P1鍜孭2綰靛潗鏍囦笉鍚岋紝浣嗘槸Q1鍜孮2綰靛潗鏍囩浉鍚岋紝鍗矻1騫寵浜嶺杞達紝鍒欎氦鐐圭旱鍧愭爣涓篞1鐨勭旱鍧愭爣錛屼唬鍏ュ埌L0鐨勭洿綰挎柟紼嬩腑鍙互璁$畻鍑轟氦鐐規(guī)í鍧愭爣錛?

銆銆6錛?鍓╀笅鐨勬儏鍐靛氨鏄疞1鍜孡0鐨勬枩鐜囧潎瀛樺湪涓斾笉涓?鐨勬儏鍐?

銆銆a) 璁$畻鍑篖0鐨勬枩鐜嘖0錛孡1鐨勬枩鐜嘖1 錛?

銆銆b) 濡傛灉K1 = K2

銆銆i. 濡傛灉Q1鍦↙0涓婏紝鍒欒鏄嶭0鍜孡1鍏辯嚎錛屽亣濡侺1鏄洿綰跨殑璇濇湁鏃犵┓浜ょ偣錛屽亣濡侺1鏄嚎孌電殑璇濆彲鐢?璁$畻涓ゆ潯鍏辯嚎綰挎鐨勪氦鐐?鐨勭畻娉曟眰浠栦滑鐨勪氦鐐癸紙璇ユ柟娉曞湪鍓嶆枃宸茶璁鴻繃錛夛紱

銆銆ii. 濡傛灉Q1涓嶅湪L0涓婏紝鍒欒鏄嶭0鍜孡1騫寵錛屼粬浠病鏈変氦鐐廣?br>
銆銆c) 鑱旂珛涓ょ洿綰跨殑鏂圭▼緇勫彲浠ヨВ鍑轟氦鐐規(guī)潵

銆銆榪欎釜綆楁硶騫朵笉澶嶆潅錛屼絾鏄鍒嗘儏鍐佃璁烘竻妤氾紝灝ゅ叾鏄綋涓ゆ潯綰挎鍏辯嚎鐨勬儏鍐甸渶瑕佸崟鐙冭檻錛屾墍浠ュ湪鍓嶆枃灝嗘眰涓ゆ潯鍏辯嚎綰挎鐨勭畻娉曞崟鐙啓鍑烘潵銆傚彟澶栵紝涓寮濮嬪氨鍏堝埄鐢ㄧ煝閲忓弶涔樺垽鏂嚎孌典笌綰挎錛堟垨鐩寸嚎錛夋槸鍚︾浉浜わ紝濡傛灉緇撴灉鏄浉浜わ紝閭d箞鍦ㄥ悗闈㈠氨鍙互灝嗙嚎孌靛叏閮ㄧ湅浣滅洿綰挎潵鑰冭檻銆傞渶瑕佹敞鎰忕殑鏄紝鎴戜滑鍙互灝嗙洿綰挎垨綰挎鏂圭▼鏀瑰啓涓篴x+by+c=0鐨勫艦寮忥紝榪欐牱涓鏉ヤ笂榪拌繃紼嬬殑閮ㄥ垎姝ラ鍙互鍚堝茍錛岀緝鐭簡浠g爜闀垮害錛屼絾鏄敱浜庡厛瑕佹眰鍑哄弬鏁幫紝榪欑綆楁硶灝嗚姳璐規(guī)洿澶氱殑鏃墮棿銆?

姹傜嚎孌墊垨鐩寸嚎涓庢姌綰褲佺煩褰€佸杈瑰艦鐨勪氦鐐癸細

鍒嗗埆姹備笌姣忔潯杈圭殑浜ょ偣鍗沖彲銆?

姹傜嚎孌墊垨鐩寸嚎涓庡渾鐨勪氦鐐?

銆銆璁懼渾蹇冧負O錛屽渾鍗婂緞涓簉錛岀洿綰匡紙鎴栫嚎孌碉級L涓婄殑涓ょ偣涓篜1,P2銆?

銆銆1. 濡傛灉L鏄嚎孌典笖P1錛孭2閮藉寘鍚湪鍦哋鍐咃紝鍒欐病鏈変氦鐐癸紱鍚﹀垯榪涜涓嬩竴姝ャ?

銆銆2. 濡傛灉L騫寵浜嶻杞達紝

銆銆a) 璁$畻鍦嗗績鍒癓鐨勮窛紱籨is錛?br>銆銆b) 濡傛灉dis > r 鍒橪鍜屽渾娌℃湁浜ょ偣錛?br>銆銆c) 鍒╃敤鍕捐偂瀹氱悊錛屽彲浠ユ眰鍑轟袱浜ょ偣鍧愭爣錛屼絾瑕佹敞鎰忚冭檻L鍜屽渾鐨勭浉鍒囨儏鍐點?br>
銆銆3. 濡傛灉L騫寵浜嶺杞達紝鍋氭硶涓嶭騫寵浜嶻杞寸殑鎯呭喌綾諱技錛?

銆銆4. 濡傛灉L鏃笉騫寵X杞翠篃涓嶅鉤琛孻杞達紝鍙互姹傚嚭L鐨勬枩鐜嘖錛岀劧鍚庡垪鍑篖鐨勭偣鏂滃紡鏂圭▼錛屽拰鍦嗘柟紼嬭仈绔嬪嵆鍙眰瑙e嚭L鍜屽渾鐨勪袱涓氦鐐癸紱

銆銆5. 濡傛灉L鏄嚎孌碉紝瀵逛簬2錛?錛?涓眰鍑虹殑浜ょ偣榪樿鍒嗗埆鍒ゆ柇鏄惁灞炰簬璇ョ嚎孌電殑鑼冨洿鍐呫?

鍑稿寘鐨勬蹇碉細

銆銆鐐歸泦Q鐨勫嚫鍖?convex hull)鏄寚涓涓渶灝忓嚫澶氳竟褰紝婊¤凍Q涓殑鐐規(guī)垨鑰呭湪澶氳竟褰㈣竟涓婃垨鑰呭湪鍏跺唴銆備笅鍥句腑鐢辯孩鑹茬嚎孌佃〃紺虹殑澶氳竟褰㈠氨鏄偣闆哘={p0,p1,...p12}鐨勫嚫鍖呫?/p>

 

鍑稿寘鐨勬眰娉曪細

銆銆鐜板湪宸茬粡璇佹槑浜嗗嚫鍖呯畻娉曠殑鏃墮棿澶嶆潅搴︿笅鐣屾槸O(n*logn),浣嗘槸褰撳嚫鍖呯殑欏剁偣鏁癶涔熻鑰冭檻榪涘幓鐨勮瘽錛孠rikpatrick鍜孲eidel鐨勫壀鏋濇悳绱㈢畻娉曞彲浠ヨ揪鍒癘(n*logh)錛屽湪娓愯繘鎰忎箟涓嬭揪鍒版渶浼樸傛渶甯哥敤鐨勫嚫鍖呯畻娉曟槸Graham鎵弿娉曞拰Jarvis姝ヨ繘娉曘傛湰鏂囧彧綆鍗曚粙緇嶄竴涓婫raham鎵弿娉曪紝鍏舵紜х殑璇佹槑鍜孞arvis姝ヨ繘娉曠殑榪囩▼澶у鍙互鍙傝冦婄畻娉曞璁恒嬨?

銆銆瀵逛簬涓涓湁涓変釜鎴栦互涓婄偣鐨勭偣闆哘錛孏raham鎵弿娉曠殑榪囩▼濡備笅錛?

銆銆浠0涓篞涓璝-X鍧愭爣鎺掑簭涓嬫渶灝忕殑鐐?

銆銆璁?lt;p1,p2,...pm>涓哄鍏朵綑鐐規(guī)寜浠0涓轟腑蹇冪殑鏋佽閫嗘椂閽堟帓搴忔墍寰楃殑鐐歸泦錛堝鏋滄湁澶氫釜鐐規(guī)湁鐩稿悓鐨勬瀬瑙掞紝闄や簡璺漰0鏈榪滅殑鐐瑰鍏ㄩ儴縐婚櫎

銆銆鍘媝0榪涙爤S
銆銆鍘媝1榪涙爤S
銆銆鍘媝2榪涙爤S
銆銆for i ← 3 to m
銆銆do while 鐢盨鐨勬爤欏跺厓绱犵殑涓嬩竴涓厓绱犮丼鐨勬爤欏跺厓绱犱互鍙妏i鏋勬垚鐨勬姌綰挎涓嶆嫄鍚戝乏渚?br>銆銆瀵筍寮規(guī)爤
銆銆鍘媝i榪涙爤S
銆銆return S;

銆銆姝よ繃紼嬫墽琛屽悗錛屾爤S鐢卞簳鑷抽《鐨勫厓绱犲氨鏄疩鐨勫嚫鍖呴《鐐規(guī)寜閫嗘椂閽堟帓鍒楃殑鐐瑰簭鍒椼傞渶瑕佹敞鎰忕殑鏄紝鎴戜滑瀵圭偣鎸夋瀬瑙掗嗘椂閽堟帓搴忔椂錛屽茍涓嶉渶瑕佺湡姝f眰鍑烘瀬瑙掞紝鍙渶瑕佹眰鍑轟換鎰忎袱鐐圭殑嬈″簭灝卞彲浠ヤ簡銆傝岃繖涓楠ゅ彲浠ョ敤鍓嶈堪鐨勭煝閲忓弶縐ц川瀹炵幇銆?

鍥涖佺粨璇?/strong>

銆銆灝界浜虹被瀵瑰嚑浣曞鐨勭爺絀朵粠鍙や唬璧蜂究娌℃湁涓柇榪囷紝浣嗘槸鍏蜂綋鍒板熷姪璁$畻鏈烘潵瑙e喅鍑犱綍闂鐨勭爺絀訛紝榪樺彧鏄仠鐣欏湪涓涓垵綰ч樁孌碉紝鏃犺浠庡簲鐢ㄩ鍩熻繕鏄彂灞曞墠鏅潵鐪嬶紝璁$畻鍑犱綍瀛﹂兘鍊煎緱鎴戜滑璁ょ湡瀛︿範銆佸姞浠ヨ繍鐢紝甯屾湜榪欑瘒鏂囩珷鑳藉甫浣犺蛋榪涜繖涓赴瀵屽褰╃殑涓栫晫銆?/p>



]]>
鍏充簬鈥滈嗗簭鏁扳漑杞琞http://m.shnenglu.com/proyao/archive/2009/07/12/89863.htmlAcaini.yaoyaoziiAcaini.yaoyaoziiSun, 12 Jul 2009 06:57:00 GMThttp://m.shnenglu.com/proyao/archive/2009/07/12/89863.htmlhttp://m.shnenglu.com/proyao/comments/89863.htmlhttp://m.shnenglu.com/proyao/archive/2009/07/12/89863.html#Feedback0http://m.shnenglu.com/proyao/comments/commentRss/89863.htmlhttp://m.shnenglu.com/proyao/services/trackbacks/89863.html鏄ㄥぉ鎴戜滑鍋氫簡娓呭崕鐨勯閫夎禌錛屾矆澶с佹鑰佸ぇ銆佽倴鍙夊悇鎼炲畾涓閬撻錛岄櫓浜涜穼鍑?0鍚嶃傛垜鍋氫簡B鍜孎錛屽叾涓璅鏄叧浜庨嗗簭鏁扮殑棰樼洰錛屽鏉傚害鏄?nlog2n+mn 鏈宸殑澶嶆潅搴﹀彲鑳介檷涓篛(n^2)銆備絾鎴戞彁浜ょ殑緇撴灉涓嶆槸TLE錛岃屾槸MLE鍜孯E銆傜湡涓嶇煡閬撴槸娓呭崕鍒ら緋葷粺鏈夐棶棰樿繕鏄垜鐨勭▼搴忔湁闂銆傛諱箣錛屾垜蹇冩湁涓嶆湇鍟婏紝鎵浠ュ喅瀹氫粖澶╄姳鐐規(guī)椂闂村綊綰充竴涓?#8220;閫嗗簭瀵?#8221;鐨勯鐩紝緇欏ぇ瀹跺啓浠芥姤鍛婏紝鎻愪緵鐐硅祫鏂欍?棣栧厛錛岄嗗簭瀵癸紙inversion pair錛夋槸鎸囧湪搴忓垪{a0,a1,a2...an}涓紝鑻i<aj(i>j)錛屽垯(ai,aj)涓婁竴瀵歸嗗簭瀵廣傝岄嗗簭鏁幫紙inversion number錛夐【鍚嶆濅箟灝辨槸搴忓垪涓嗗簭瀵圭殑涓暟銆備緥濡傦細 1 2 3鏄『搴忥紝鍒欓嗗簭鏁版槸0錛? 3 2涓?2,3)婊¤凍閫嗗簭瀵圭殑鏉′歡錛屾墍浠ラ嗗簭鏁板彧鏈?錛?3 2 1涓?1,2)(1,3)(2,3)婊¤凍閫嗗簭瀵癸紝鎵浠ラ嗗簭鏄?銆傜敱瀹氫箟涓嶈兘鎯寵薄錛屽簭鍒梟鐨勯嗗簭鏁拌寖鍥村湪[0,n*(n-1)/2]錛屽叾涓『搴忔椂閫嗗簭鏁頒負0錛屽畬鍏ㄩ嗗簭鏃墮嗗簭鏁版槸n*(n-1)/2銆?/p>

鐩墠鎴戠煡閬撶殑姹傞嗗簭鏈蹇殑閫傚悎ACM/ICPC鐨勭畻娉曟槸褰掑茍鎺掑簭鏃惰綆楅嗗簭涓暟錛屾椂闂村鏉傚害鏄痭log2n錛岃岀┖闂村鏉傚害2n銆侸AVA妯℃澘錛堟湇鍔″櫒鏄牎鍐呯殑錛夈?/p>

褰掑茍姹傞嗗簭綆鍗曞師鐞嗭細
褰掑茍鎺掑簭鏄垎娌葷殑鎬濇兂錛屽叿浣撳師鐞嗚嚜宸卞幓鐪嬩功鍚с傚埄鐢ㄥ綊騫舵眰閫嗗簭鏄寚鍦ㄥ瀛愬簭鍒?s1鍜宻2鍦ㄥ綊騫舵椂錛岃嫢s1[i]>s2[j]錛堥嗗簭鐘跺喌錛夛紝鍒欓嗗簭鏁板姞涓妔1.length-i,鍥犱負s1涓璱鍚庨潰鐨勬暟瀛楀浜巗2[j]閮芥槸閫嗗簭鐨勩?/p>

TJU 2242:
鐩存帴涓婃ā鏉匡紝璁板緱m鐨勫鍋惰鑰冭檻鐨勫摝銆?/p>

PKU 1007:
姹傞嗗簭鏁幫紝鐒跺悗鎺掑簭杈撳嚭灝辮浜嗐?/p>

PKU 1804, PKU 2299:
鏄渶綆鍗曠殑鍏充簬閫嗗簭瀵圭殑棰樼洰錛岄鐩ぇ鎰忔槸緇欏嚭涓涓簭鍒楋紝姹傛渶灝戠Щ鍔ㄥ灝戞鍙兘浣垮畠欏哄簭錛岃瀹氬彧鑳界浉閭?cè)潷诲姩銆?br>鐩擱偦縐誨姩鐨勮瘽錛屽亣璁綼 b 鐩擱偦錛岃嫢a<b 浜ゆ崲浼氬鍔犻嗗簭鏁幫紝鎵浠ユ渶濂戒笉瑕佸仛姝や氦鎹紱鑻==b 浜ゆ崲鏃犳剰鎬濓紝涔熶笉瑕佽繘琛屾浜ゆ崲錛沘>b鏃訛紝浜ゆ崲浼氬噺灝戦嗗簭錛屼嬌搴忓垪鏇撮『搴忥紝鎵浠ュ仛浜ゆ崲銆?br>鐢變笂鍙煡錛屾墍璋撶殑縐誨姩鍙湁涓縐嶆儏鍐碉紝鍗砤>b錛屼笖涓嬈$Щ鍔ㄧ殑緇撴灉鏄嗗簭鍑?銆傚亣璁懼垵濮嬮嗗簭鏄痭錛屾瘡嬈$Щ鍔ㄥ噺1錛岄偅涔堝氨闇瑕乶嬈$Щ鍔ㄦ椂搴忓垪鍙樹負欏哄簭銆傛墍浠ラ鐩漿鍖栦負鐩存帴姹傚簭鍒楃殑閫嗗簭渚垮彲浠ヤ簡銆?/p>

ZJU 1481:
榪欓鍜屾湰嬈¢閫夎禌鐨凢鐣ユ湁鐩鎬技錛屼笉榪囪綆鍗曞緱澶氥傞鎰忔槸緇欏畾搴忓垪s錛岀劧鍚庝緷嬈″皢搴忓垪棣栭」縐昏嚦搴忓垪灝撅紝榪欐牱鍏辨湁n-1嬈℃搷浣滀究鍥炲埌浜嗗師搴忓垪錛堟搷浣滅被浼間簬寰幆宸︾Щ錛夈傞棶榪檔-1嬈℃搷浣滃拰鍘熷簭鍒楋紝浠栦滑鐨勯嗗簭鏁版渶灝忕殑涓嬈℃槸澶氬皯錛?br>鏈夋ā鏉垮湪鎵嬶紝鐩磋鍦板彲浠ユ兂鍒版槸錛屽浜庤繖n嬈¢兘姹傞嗗簭鏁幫紝鐒跺悗杈撳嚭鏈灝忕殑涓嬈″氨鍙互浜嗭紝浣嗚繖鏍峰仛鐨勫鏉傚害鏈塐(n*nlogn),澶繃澶嶆潅銆?br>濡傛灉鍙眰鍒濆搴忓垪鐨勯嗗簭鏁扮殑璇濓紝鍙鍚庨潰鐨刵-1嬈℃搷浣滅殑閫嗗簭鏁拌兘澶熷湪O(1)鐨勭畻娉曚笅姹傚緱錛屽氨鑳戒繚璇佹諱綋O(nlogn)鐨勫鏉傚害浜嗐備簨瀹炰笂錛屽浜庢瘡嬈℃搷浣滅‘瀹炲彲浠ョ敤O(1)鐨勭畻娉曟眰寰楅嗗簭鏁般傚皢搴忓垪涓璦i縐誨埌aj鐨勫悗闈紝灝辨槸ai鍋歫-i嬈′笌鍙抽偦鐨勪氦鎹紝鑰屾瘡嬈′氦鎹㈡湁涓変釜緇撴灉錛氶嗗簭+1銆侀嗗簭-1銆侀嗗簭涓嶅彉銆傜敱浜庨鐩腑璇存槑搴忓垪涓棤鐩稿悓欏癸紝鎵浠ラ嗗簭涓嶅彉鍙互蹇界暐銆傞嗗簭鐨勫姞鍑忔槸鐪媋i涓巃j闂達紙鍖呮嫭aj錛夌殑鏁板瓧澶у皬鍏崇郴錛屾墍浠ユ眰鍑篴i涓巃j闂村ぇ浜巃i鐨勬暟瀛椾釜鏁板拰灝忎簬ai鐨勬暟瀛椾釜鏁扮劧鍚庡彇宸紝灝辨槸ai縐誨姩鍒癮j鍚庨潰鎵瀵艱嚧鐨勯嗗簭鍊煎彉鍖栦簡銆?br>渚濇嵁涓婇潰鐨勯亾鐞嗭紝鍥犱負棰樼洰鏈夎姹俛i鏄Щ鍔ㄥ埌鏈鍚庝竴涓暟錛岃宎i鍙堝繀瀹氭槸澶撮」錛屾墍浠ュ彧瑕佽綆楀ぇ浜巃i鐨勪釜鏁板拰灝忎簬ai鐨勪釜鏁頒箣宸氨琛屼簡銆傜劧鍚庢瘡嬈″浜庡墠涓嬈$殑閫嗗簭鏁板姞涓婅繖涓樊錛屽氨鏄粡榪囪繖嬈℃搷浣滃悗鐨勯嗗簭鏁板間簡銆?/p>

PKU 2086:
榪欓涓嶆槸姹傞嗗簭瀵癸紝鑰屾槸鐭ラ亾閫嗗簭鏁発鏉ュ埗閫犱竴涓簭鍒椼傝姹傚簭鍒楁渶灝忥紝涓や釜搴忓垪姣旇緝澶у皬鏄嚜宸﹀悜鍙充緷嬈℃瘮杈冮」錛屾嫢鏈夎緝澶ч」鐨勫簭鍒楀ぇ銆?
鍏跺疄閫犲簭鍒楀茍涓嶉毦錛岀敱1804鍙煡錛屽彧瑕佸鐩擱偦鏁板仛璋冩暣灝辮兘鍋氬埌鏌愪釜閫嗗簭鏁頒簡銆傞毦鐐規(guī)槸鍦ㄦ眰鏈灝忕殑搴忓垪銆備婦渚?1 2 3 4 5,瑕佹眰閫嗗簭1鐨勬渶灝忓簭鍒楁槸浜ゆ崲4 5錛屽鏋滀氦鎹㈠叾浠栦換鎰忕浉閭繪暟閮芥棤娉曚繚璇佹渶灝忋傜敱姝ゅ彲浠ユ兂鍒幫紝瑕佷繚璇佸簭鍒楁渶灝忥紝鍓嶉儴鍒嗗簭鍒楀彲浠ヤ笉鍔紙鍥犱負浠栦滑宸茬粡鏄渶灝忕殑浜嗭級錛屽彧鏀瑰姩鍚庡崐閮ㄥ垎銆傝屾垜浠煡閬搉涓暟鐨勬渶澶ч嗗簭鏁版槸n*(n-1)/2錛屾墍浠ュ彲浠ユ眰涓涓渶灝忕殑p錛屼嬌寰?k<p*(p-1)/2銆傚緱鍒板墠鍗婇儴鍒嗘槸1鍒皀-p錛屾墍鏈夌殑閫嗗簭閮芥槸鐢卞悗鍗婇儴鍒唒涓暟瀹屾垚鐨勩?br>鑰冭檻k=7,n=6鐨勬儏鍐碉紝姹傚緱p=5,鍗沖墠閮ㄥ垎1涓嶅姩錛屽悗闈?涓暟瀛楄皟鏁淬?涓暟鐨勬渶澶ч嗗簭鏄? 4 3 2,閫嗗簭鏁版槸6錛?涓暟鏄? 5 4 3 2,閫嗗簭鏁版槸10銆傚彲浠ョ寽鎯沖埌錛屼繚璇?涓?涓暟鐨勯嗗簭涓嶅姩錛岃皟鏁村彟涓涓暟鐨勪綅緗氨鍙互澧炲姞鎴栧噺灝戦嗗簭鏁幫紝榪欐牱灝辮兘璋冩暣鍑?-10闂寸殑浠繪剰閫嗗簭銆備負浜嗕繚璇佹渶灝忥紝鎴戜滑鍙互鍙栧敖閲忓皬鐨勬暟鍓嶇Щ鍒版渶宸︾殑浣嶇疆灝辮浜嗐?鍓嶇Щ鍚庨嗗簭璋冩暣4錛?鍓嶇Щ鍚庤皟鏁翠簡3錛?璋冩暣2錛?璋冩暣1錛屼笉鍔ㄦ槸璋冩暣0錛屽彲浠ラ氳繃榪欐牱璋冩暣寰楀埌鍑?-10錛屾墍浠ヨ寰嬪氨鏄壘鍒伴渶瑕佽皟鏁寸殑鏁幫紝鍓╀笅鐨勯儴鍒嗗氨閫嗗簭杈撳嚭銆傞渶瑕佽皟鏁寸殑鏁板彲浠ラ氳繃鎬婚嗗簭k-(p-1)*(p-2)/2+(n-p)姹傚緱銆?/p>

PKU 1455:
榪欐槸涓閬撴瘮杈冮毦鐨勫叧浜庨嗗簭鏁版帹鐞嗙殑棰樼洰錛岄鐩姹傛槸n浜虹粍鎴愪竴涓幆錛屾眰鍋氱浉閭諱氦鎹㈢殑鎿嶄綔鏈灝戝灝戞鍙互浣挎瘡涓漢宸﹀彸鐨勯偦灞呬簰鎹紝鍗沖師鍏堝乏杈圭殑鍒板彸杈瑰幓錛屽師鍙寵竟鐨勫幓宸﹁竟銆傚鏄撴兂鍒扮殑鏄粰n涓漢緙栧彿錛屼粠1..n錛岄偅涔堝垵濮嬫佹槸1..n鐒跺悗n鍙寵竟鏄?錛岀洰鏍囨佹槸n..1錛宯宸﹁竟鏄?銆?br>鍒濇鐪嬩笂鍘誨ソ璞$粨鏋滃氨鏄眰涓嬮嗗簭錛坣*(n-1)/2 ?錛夛紝浣嗘槸闅劇偣鏄棰樼殑搴忓垪鏄竴涓幆銆傚湪鐜殑鎯呭喌涓嬶紝鍙互鍑忓皯璁稿嬈$Щ鍔ㄣ傚厛浠庨潪鐜殑鎯呭喌鎬濊冿紝鍘?-n鐨勫簭鍒楄杞寲鎴恘-1鐨勫簭鍒楋紝灝辨槸鍋歯(n-1)/2嬈℃搷浣溿傚洜涓烘槸鐜紝鎵浠?k)..1,n..k+1涔熷彲浠ョ畻鏄洰鏍囨併備緥濡傦細1 2 3 4 5 6鐨勭洰鏍囧彲浠ユ槸 6 5 4 3 2 1,涔熷彲浠ユ槸 4 3 2 1 6 5銆傛墍浠ワ紝闂鍙互杞寲涓烘眰褰㈠(k)..1,n..k+1鐨勭洰鏍囨佷腑k鍙栦綍鍊兼椂錛岄嗗簭鏁版渶灝忋?br>緇忚繃涓婇潰鐨勬楠わ紝闂宸茬粡鍜孼JU1481綾諱技鐨勩備絾鍏跺疄錛岃繕鏄湁瑙勫緥鍙驚鐨勩傚浜庢煇k錛屼粬鐨勯嗗簭鏁版槸宸﹁竟鐨勯嗗簭鏁?鍙寵竟鐨勯嗗簭鏁幫紝涔熷氨鏄?k*(k-1)/2)+((n-k)*(n-k-1)/2) 錛坘>=1 && k<=n錛夈傚睍寮涓涓嬶紝鍙互姹傚緱k絳変簬n/2鏃墮嗗簭鏁版渶灝忎負((n*n-n)/2)錛岀幇鍦ㄦ妸k浠e叆榪涘幓灝卞彲浠ュ緱鍒拌В浜嗐?br>瑕佹敞鎰忕殑鏄痥鏄暣鏁幫紝n/2涓嶄竴瀹氭槸鏁存暟錛屾墍浠ュ叕寮忚繕鏈変慨鏀圭殑浣欏湴錛屽彲浠ラ氱敤鍦版敼涓?n/2)*(n-1)/2銆?/p>

PKU 2893:
鐢ㄥ埌浜嗘眰閫嗗簭鏁扮殑鎬濇兂錛屼絾閽堝棰樼洰榪樻湁浼樺寲錛屽彲瑙丮*N PUZZLE鐨勪紭鍖栥?/p>

PKU 1077:
姣旇緝緇忓吀鐨勬悳绱㈤錛屼絾鍦ㄥ垽鏂棤瑙g殑鎯呭喌涓嬶紝閫嗗簭鏁板府浜嗗ぇ蹇欙紝鍙鍏暟鐮佸疄楠屾姤鍛娿?/p>

 

鏈枃鏉ヨ嚜CSDN鍗氬錛岃漿杞借鏍囨槑鍑哄錛?a >http://blog.csdn.net/ray58750034/archive/2006/10/08/1325939.aspx

鏈枃鏉ヨ嚜CSDN鍗氬錛岃漿杞借鏍囨槑鍑哄錛?a >http://blog.csdn.net/ray58750034/archive/2006/10/08/1325939.aspx

鏈枃鏉ヨ嚜CSDN鍗氬錛岃漿杞借鏍囨槑鍑哄錛?a >http://blog.csdn.net/ray58750034/archive/2006/10/08/1325939.aspx



]]>
騫舵煡闆嗗強鍏跺簲鐢╗杞琞http://m.shnenglu.com/proyao/archive/2009/04/21/80611.htmlAcaini.yaoyaoziiAcaini.yaoyaoziiTue, 21 Apr 2009 06:56:00 GMThttp://m.shnenglu.com/proyao/archive/2009/04/21/80611.htmlhttp://m.shnenglu.com/proyao/comments/80611.htmlhttp://m.shnenglu.com/proyao/archive/2009/04/21/80611.html#Feedback0http://m.shnenglu.com/proyao/comments/commentRss/80611.htmlhttp://m.shnenglu.com/proyao/services/trackbacks/80611.htmlhttp://hi.baidu.com/fandywang_jlu/blog/item/b49e40893ddbb0b00f244485.html
騫舵煡闆嗭細(union-find sets)鏄竴縐嶇畝鍗曠殑鐢ㄩ斿箍娉涚殑闆嗗悎. 騫舵煡闆嗘槸鑻ュ共涓笉鐩鎬氦闆嗗悎錛岃兘澶熷疄鐜拌緝蹇殑鍚堝茍鍜屽垽鏂厓绱犳墍鍦ㄩ泦鍚堢殑鎿嶄綔錛屽簲鐢ㄥ緢澶氾紝濡傚叾姹傛棤鍚戝浘鐨勮繛閫氬垎閲忎釜鏁般佹渶灝忓叕鍏辯鍏堛佸甫闄愬埗鐨勪綔涓氭帓搴忥紝榪樻湁鏈瀹岀編鐨勫簲鐢細瀹炵幇Kruskar綆楁硶姹傛渶灝忕敓鎴愭爲銆傚叾瀹烇紝榪欎竴閮ㄥ垎銆婄畻娉曞璁恒嬭鐨勫緢綺劇偧銆?

       涓鑸噰鍙栨爲褰㈢粨鏋勬潵瀛樺偍騫舵煡闆嗭紝鍦ㄥ悎騫舵搷浣滄椂鍙互鍒╃敤鏍戠殑鑺傜偣鏁?鍔犳潈瑙勫垯)鎴栬呭埄鐢ㄤ竴涓猺ank鏁扮粍鏉ュ瓨鍌ㄩ泦鍚堢殑娣卞害涓嬬晫--鍚彂寮忓嚱鏁幫紝鍦ㄦ煡鎵炬搷浣滄椂榪涜璺緞鍘嬬緝浣垮悗緇殑鏌ユ壘鎿嶄綔鍔犻熴?/font>榪欐牱浼樺寲瀹炵幇鐨勫茍鏌ラ泦錛岀┖闂村鏉傚害涓篛(N)錛屽緩绔嬩竴涓泦鍚堢殑鏃墮棿澶嶆潅搴︿負O(1)錛孨嬈″悎騫禡鏌ユ壘鐨勬椂闂村鏉傚害涓篛(M Alpha(N))錛岃繖閲孉lpha鏄疉ckerman鍑芥暟鐨勬煇涓弽鍑芥暟錛屽湪寰堝ぇ鐨勮寖鍥村唴榪欎釜鍑芥暟鐨勫煎彲浠ョ湅鎴愭槸涓嶅ぇ浜?鐨勶紝鎵浠ュ茍鏌ラ泦鐨勬搷浣滃彲浠ョ湅浣滄槸綰挎х殑銆?br>瀹冩敮鎸佷互涓嬩笁縐嶆搷浣?
銆銆錛峌nion (Root1, Root2) //鍚堝茍鎿嶄綔錛涙妸瀛愰泦鍚圧oot2鍜屽瓙闆嗗悎Root1鍚堝茍.瑕佹眰錛歊oot1鍜?Root2浜掍笉鐩鎬氦,鍚﹀垯涓嶆墽琛屾搷浣?
銆銆錛岶ind (x) //鎼滅儲鎿嶄綔錛涙悳绱㈠厓绱爔鎵鍦ㄧ殑闆嗗悎,騫惰繑鍥炶闆嗗悎鐨勫悕瀛?-鏍硅妭鐐?
銆銆錛峌FSets (s) //鏋勯犲嚱鏁般傚皢騫舵煡闆嗕腑s涓厓绱犲垵濮嬪寲涓簊涓彧鏈変竴涓崟鍏冪礌鐨勫瓙闆嗗悎.
銆銆錛嶅浜庡茍鏌ラ泦鏉ヨ錛屾瘡涓泦鍚堢敤涓媯墊爲琛ㄧず銆?br>銆銆錛嶉泦鍚堜腑姣忎釜鍏冪礌鐨勫厓绱犲悕鍒嗗埆瀛樻斁鍦ㄦ爲鐨勭粨鐐逛腑錛屾澶栵紝鏍戠殑姣忎竴涓粨鐐硅繕鏈変竴涓寚鍚戝叾鍙屼翰緇撶偣鐨勬寚閽堛?nbsp; 
       錛嶄負綆鍖栬璁猴紝蹇界暐瀹為檯鐨勯泦鍚堝悕錛屼粎鐢ㄨ〃紺洪泦鍚堢殑鏍戠殑鏍規(guī)潵鏍囪瘑闆嗗悎銆?/p>

浠ヤ笅緇欏嚭鎴戠殑涓ょ瀹炵幇:

  1//Abstract: UFSet                  
  2
  3//Author:Lifeng Wang 錛團andywang錛?br>  4
  5
  6
  7
  8// Model One 涓嶮odel 2 璺緞鍘嬬緝鏂瑰紡涓嶅悓,鍚堝茍鏍囧噯涓嶅悓
  9
 10const int MAXSIZE = 500010;
 11
 12int rank[MAXSIZE];    // 鑺傜偣楂樺害鐨勪笂鐣?/span>
 13
 14int parent[MAXSIZE]; // 鏍硅妭鐐?/span>
 15
 16int FindSet(int x){// 鏌ユ壘+閫掑綊鐨勮礬寰勫帇緙?/span>
 17
 18    if( x != parent[x] ) parent[x] = FindSet(parent[x]);
 19
 20     return parent[x];
 21
 22}

 23
 24void Union(int root1, int root2){
 25
 26     int x = FindSet(root1), y = FindSet(root2);
 27
 28     if( x == y ) return ;
 29
 30     if( rank[x] > rank[y] ) parent[y] = x;
 31
 32     else{
 33
 34         parent[x] = y;
 35
 36         if( rank[x] == rank[y] ) ++rank[y];
 37
 38     }

 39
 40}

 41
 42void Initi(void){
 43
 44     memset(rank, 0sizeof(rank));
 45
 46     forint i=0; i < MAXSIZE; ++i ) parent[i] = i;
 47
 48}

 49
 50
 51
 52
 53// Model Two
 54
 55const int MAXSIZE = 30001;
 56
 57int pre[MAXSIZE]; //鏍硅妭鐐筰,pre[i] = -num,鍏朵腑num鏄鏍戠殑鑺傜偣鏁扮洰;
 58
 59                   //闈炴牴鑺傜偣j,pre[j] = k,鍏朵腑k鏄痡鐨勭埗鑺傜偣
 60
 61int Find(int x){//鏌ユ壘+闈為掑綊鐨勮礬寰勫帇緙?/span>
 62
 63     int p = x;
 64
 65     while( pre[p] > 0 )    p = pre[p];
 66
 67     while( x != p ){
 68
 69         int temp = pre[x]; pre[x] = p; x = temp;
 70
 71     }

 72
 73     return x;
 74
 75}

 76
 77void Union(int r1, int r2){
 78
 79     int a = Find(r1); int b = Find(r2);
 80
 81     if( a == b ) return ; 
 82
 83     //鍔犳潈瑙勫垯鍚堝茍
 84
 85     if( pre[a] < pre[b] ){
 86
 87         pre[a] += pre[b]; pre[b] = a;
 88
 89     }

 90
 91     else {
 92
 93         pre[b] += pre[a]; pre[a] = b;
 94
 95     }

 96
 97}

 98
 99void Initi(void)
100
101{
102
103    forint i=0; i < N; ++i ) pre[i] = -1;
104
105}
        銆銆
106
107

騫舵煡闆嗙殑涓浜涢鐩拰鎴戠殑鐩稿叧瑙i鎶ュ憡:

 

POJ 1611 The Suspects          鏈鍩虹鐨勫茍鏌ラ泦
POJ 2524 Ubiquitous Religions 鏈鍩烘湰鐨勫茍鏌ラ泦
POJ 1182 椋熺墿閾?/u>       騫舵煡闆嗙殑鎷撳睍
娉ㄦ剰: 鍙湁涓緇勬暟鎹?
瑕佸厖鍒嗗埄鐢ㄩ鎰忔墍緇欐潯浠?鏈変笁綾誨姩鐗〢,B,C錛岃繖涓夌被鍔ㄧ墿鐨勯鐗╅摼
鏋勬垚浜嗘湁瓚g殑鐜艦銆侫鍚傿錛?B鍚僀錛孋鍚傾銆備篃灝辨槸璇?鍙湁涓変釜group
POJ 2492 A Bug's Life 騫舵煡闆嗙殑鎷撳睍
娉曚竴:娣卞害浼樺厛閬嶅巻
姣忔閬嶅巻璁板綍涓嬭鐐規(guī)槸鐢瘋繕鏄コ錛屽彧鏈?鐢?銆夊コ錛屽コ-銆夌敺婊¤凍錛屽惁鍒欙紝鎵懼埌鍚屾ф亱錛岀粨鏉熺▼搴忋?br>娉曚簩:浜屽垎鍥懼尮閰?br>娉曚笁:騫舵煡闆嗙殑鎷撳睍:鍜?182寰堝儚錛屽彧涓嶈繃榪欓噷灝辨湁涓ょ粍錛岃?182鏄笁緇?1611鏃犻檺鍒?br>
POJ 1861 Network == zju_1542    騫舵煡闆?鑷畾涔夋帓搴?璐績姹?鏈灝忕敓鎴愭爲"
絳旀涓嶅敮涓錛屼笉榪囧湪ZOJ涓婄敤QSORT()鍜孲ORT()閮借兘榪囷紝鍦≒OJ涓婂彧鏈塖ORT()鎵嶈兘榪?..
POJ 1703 Find them, Catch them 騫舵煡闆嗙殑鎷撳睍
榪欎釜鍜?/font>POJ 2492 A Bug's Life寰堝儚錛屽氨鏄妸浠g爜紼嶅井淇敼浜嗕竴涓嬪氨AC浜嗭紒
娉ㄦ剰錛欰nd of course, at least one of them belongs to Gang Dragon, and the same for Gang Snake. 灝辨槸璇村彧鏈変袱涓粍銆?br>
POJ 2236 Wireless Network        騫舵煡闆嗙殑搴旂敤
闇瑕佹敞鎰忕殑鍦版柟錛?銆佸茍鏌ラ泦錛?銆丯鐨勮寖鍥達紝鍙互絳変簬1001錛?銆佷粠N+1琛屽紑濮嬶紝絎竴涓緭鍏ョ殑鍙互鏄瓧絎︿覆銆?br>
POJ 1988 Cube Stacking            騫舵煡闆嗗緢濂界殑搴旂敤
1銆佷笌 閾舵渤鑻遍泟浼犺==NOI2002 Galaxy涓鏍鳳紱2銆佸鍔犱簡涓涓暟緇刡ehind[x],璁板綍鎴樿埌x鍦ㄥ垪涓殑鐩稿浣嶇疆錛?銆佽緇嗚В棰樻姤鍛婅閾舵渤鑻遍泟浼犺銆?/font>

JOJ 1905 Freckles   == POJ 2560 鏈灝忕敓鎴愭爲

娉曚竴錛歅rim綆楁硶錛涙硶浜岋細騫舵煡闆嗗疄鐜?font color=#000000>Kruskar綆楁硶姹傛渶灝忕敓鎴愭爲

JOJ 1966 Super Market III == PKU 1456 Supermarket 甯﹂檺鍒剁殑浣滀笟鎺掑簭闂錛堣椽蹇?騫舵煡闆嗭級

鎻愰珮棰樼洰錛?br>POJ 2912 Rochambeau
POJ 1733 Parity game   
POJ 1308 Is It A Tree?



]]>
RMQhttp://m.shnenglu.com/proyao/archive/2009/04/14/79842.htmlAcaini.yaoyaoziiAcaini.yaoyaoziiMon, 13 Apr 2009 16:40:00 GMThttp://m.shnenglu.com/proyao/archive/2009/04/14/79842.htmlhttp://m.shnenglu.com/proyao/comments/79842.htmlhttp://m.shnenglu.com/proyao/archive/2009/04/14/79842.html#Feedback0http://m.shnenglu.com/proyao/comments/commentRss/79842.htmlhttp://m.shnenglu.com/proyao/services/trackbacks/79842.html<O(N logN), O(1)>
 1void rmq_init()
 2{
 3    int i,j;
 4    for(j=1;j<=n;j++) mx[j][0]=d[j];
 5    int m=floor(log((double)n)/log(2.0));
 6    for(i=1;i<=m;i++)
 7        for(j=0;j+(1<<(i-1))<=n;j++)
 8            mx[j][i]=max(mx[j][i-1],mx[j+(1<<(i-1))][i-1]);
 9}

10
11int rmq(int l,int r)
12{
13    int m=floor(log((double)(r-l+1))/log(2.0));
14    int a=max(mx[l][m],mx[r-(1<<m)+1][m]);
15    return a;  
16}

17
18

RMQ浠嬬粛錛?a >http://baike.baidu.com/view/1536346.htm
鎽樿嚜鏌愪漢鏂囩珷:http://blog.sina.com.cn/s/blog_4d88e9860100cthl.html


]]>
綰挎鏍戝叆闂?杞?http://m.shnenglu.com/proyao/archive/2009/04/14/79839.htmlAcaini.yaoyaoziiAcaini.yaoyaoziiMon, 13 Apr 2009 16:26:00 GMThttp://m.shnenglu.com/proyao/archive/2009/04/14/79839.htmlhttp://m.shnenglu.com/proyao/comments/79839.htmlhttp://m.shnenglu.com/proyao/archive/2009/04/14/79839.html#Feedback0http://m.shnenglu.com/proyao/comments/commentRss/79839.htmlhttp://m.shnenglu.com/proyao/services/trackbacks/79839.html濂戒箙娌″啓榪囩畻娉曚簡錛屾坊涓涓惂錛屽啓涓涓嚎孌墊爲鐨勫叆闂ㄧ煡璇嗭紝姣旇緝澶т紬鍖栥?/p>

涓婃鍦ㄦ箹澶э紝鍏朵腑鐨勪竴閬撻鏁版嵁寰堝己錛屾垜璇曚簡濂藉縐嶄紭鍖栭兘TLE錛岀浉淇″彧鑳界敤綰挎鏍戞墠鑳借繃銆傚洖鏉ヤ箣鍚庢殫鏆楀張瀛︿簡涓嬈$嚎孌墊爲錛屾兂鎯沖ソ鍍忔槸絎笁嬈″浜嗭紝鍍忕綉緇滄祦涓鏍鋒瘡瀛︿竴嬈¢兘鏈夋柊鐨勪綋浼氥?/p>

鎶婇棶棰樼畝鍖栦竴涓嬶細

鍦ㄨ嚜鐒舵暟錛屼笖鎵鏈夌殑鏁頒笉澶т簬30000鐨勮寖鍥村唴璁ㄨ涓涓棶棰橈細鐜板湪宸茬煡n鏉$嚎孌碉紝鎶婄鐐逛緷嬈¤緭鍏ュ憡璇変綘錛岀劧鍚庢湁m涓闂紝姣忎釜璇㈤棶杈撳叆涓涓偣錛岃姹傝繖涓偣鍦ㄥ灝戞潯綰挎涓婂嚭鐜拌繃錛?/p>

鏈鍩烘湰鐨勮В娉曞綋鐒跺氨鏄涓涓偣錛屽氨鎶婃墍鏈夌嚎孌墊瘮涓涓嬶紝鐪嬬湅鍦ㄤ笉鍦ㄧ嚎孌典腑錛?/p>

姣忔璇㈤棶閮借鎶妌鏉$嚎孌墊煡涓嬈★紝閭d箞m嬈¤闂紝灝辮榪愮畻m*n嬈★紝澶嶆潅搴﹀氨鏄疧(m*n)

榪欓亾棰榤鍜宯閮芥槸30000錛岄偅涔堣綆楅噺杈懼埌浜?0^9錛涜岃綆楁満1縐掔殑璁$畻閲忓ぇ綰︽槸10^8鐨勬暟閲忕駭錛屾墍浠ヨ繖縐嶆柟娉曟棤璁烘庝箞浼樺寲閮芥槸瓚呮椂

-----

鍥犱負n鏉$嚎孌墊槸鍥哄畾鐨勶紝鎵浠ユ煇縐嶇▼搴︿笂璇存瘡嬈¢兘鎶妌鏉$嚎孌墊煡涓閬嶆湁澶ч噺鐨勯噸澶嶅拰嫻垂錛?/p>

綰挎鏍戝氨鏄彲浠ヨВ鍐寵繖綾婚棶棰樼殑鏁版嵁緇撴瀯

涓句緥璇存槑錛氬凡鐭ョ嚎孌礫2,5] [4,6] [0,7]錛涙眰鐐?,4,7鍒嗗埆鍑虹幇浜嗗灝戞

鍦╗0,7]鍖洪棿涓婂緩绔嬩竴媯墊弧浜屽弶鏍戯細錛堜負浜嗗拰宸茬煡綰挎鍖哄埆錛岀敤銆愩戣〃紺虹嚎孌墊爲涓殑綰挎錛?/p>

                                               銆?,7銆?/p>

                                      /                                  \

                     銆?,3銆?nbsp;                                          銆?,7銆?/p>

                  /               \                                    /                \

       銆?,1銆?nbsp;            銆?,3銆?nbsp;                銆?,5銆?nbsp;              銆?,7銆?/p>

         /      \                 /      \                       /      \                      /      \

銆?,0銆?銆?,1銆戙?,2銆?銆?,3銆?nbsp;  銆?,4銆?銆?,5銆?銆?,6銆?銆?,7銆?/p>

姣忎釜鑺傜偣鐢ㄧ粨鏋勪綋錛?/p>

struct line

{

      int left,right;//宸︾鐐廣佸彸绔偣

      int n;//璁板綍榪欐潯綰挎鍑虹幇浜嗗灝戞錛岄粯璁や負0

}a[16];

鍜屽爢綾諱技錛屾弧浜屽弶鏍戠殑鎬ц川鍐沖畾a[i]鐨勫乏鍎垮瓙鏄痑[2*i]銆佸彸鍎垮瓙鏄痑[2*i+1];

鐒跺悗瀵逛簬宸茬煡鐨勭嚎孌典緷嬈¤繘琛屾彃鍏ユ搷浣滐細

浠庢爲鏍瑰紑濮嬭皟鐢ㄩ掑綊鍑芥暟insert

 1void insert(int s,int t,int step)//瑕佹彃鍏ョ殑綰挎鐨勫乏绔偣鍜屽彸绔偣銆佷互鍙婂綋鍓嶇嚎孌墊爲涓殑鏌愭潯綰挎
 2
 3{
 4
 5      if (s==a[step].left && t==a[step].right)
 6
 7      {
 8
 9            a[step].n++;//鎻掑叆鐨勭嚎孌靛尮閰嶅垯姝ゆ潯綰挎鐨勮褰?1
10
11            return;//鎻掑叆緇撴潫榪斿洖
12
13      }

14
15      if (a[step].left==a[step].right)   return;//褰撳墠綰挎鏍戠殑綰挎娌℃湁鍎垮瓙錛屾彃鍏ョ粨鏉熻繑鍥?/span>
16
17      int mid=(a[step].left+a[step].right)/2;
18
19      if (mid>=t)    insert(s,t,step*2);//濡傛灉涓偣鍦╰鐨勫彸杈癸紝鍒欏簲璇ユ彃鍏ュ埌宸﹀効瀛?/span>
20
21      else if (mid<s)    insert(s,t,step*2+1);//濡傛灉涓偣鍦╯鐨勫乏杈癸紝鍒欏簲璇ユ彃鍏ュ埌鍙沖効瀛?/span>
22
23      else//鍚﹀垯錛屼腑鐐逛竴瀹氬湪s鍜宼涔嬮棿錛屾妸寰呮彃綰挎鍒嗘垚涓ゅ崐鍒嗗埆鎻掑埌宸﹀彸鍎垮瓙閲岄潰
24
25      {
26
27            insert(s,mid,step*2);
28
29            insert(mid+1,t,step*2+1);
30
31      }

32
33}

34
35

涓夋潯宸茬煡綰挎鎻掑叆榪囩▼錛?/p>

[2,5]

--[2,5]涓庛?,7銆戞瘮杈冿紝鍒嗘垚涓ら儴鍒嗭細[2,3]鎻掑埌宸﹀効瀛愩?,3銆戯紝[4,5]鎻掑埌鍙沖効瀛愩?,7銆?/p>

--[2,3]涓庛?,3銆戞瘮杈冿紝鎻掑埌鍙沖効瀛愩?,3銆戯紱[4,5]鍜屻?,7銆戞瘮杈冿紝鎻掑埌宸﹀効瀛愩?,5銆?/p>

--[2,3]涓庛?,3銆戝尮閰嶏紝銆?,3銆戣褰?1錛沎4,5]涓庛?,5銆戝尮閰嶏紝銆?,5銆戣褰?1

[4,6]

--[4,6]涓庛?,7銆戞瘮杈冿紝鎻掑埌鍙沖効瀛愩?,7銆?/p>

--[4,6]涓庛?,7銆戞瘮杈冿紝鍒嗘垚涓ら儴鍒嗭紝[4,5]鎻掑埌宸﹀効瀛愩?,5銆戯紱[6,6]鎻掑埌鍙沖効瀛愩?,7銆?/p>

--[4,5]涓庛?,5銆戝尮閰嶏紝銆?,5銆戣褰?1錛沎6,6]涓庛?,7銆戞瘮杈冿紝鎻掑埌宸﹀効瀛愩?,6銆?/p>

--[6,6]涓庛?,6銆戝尮閰嶏紝銆?,6銆戣褰?1

[0,7]

--[0,7]涓庛?,7銆戝尮閰嶏紝銆?,7銆戣褰?1

鎻掑叆榪囩▼緇撴潫錛岀嚎孌墊爲涓婄殑璁板綍濡備笅錛堢孩鑹叉暟瀛椾負姣忔潯綰挎鐨勮褰昻錛夛細

                                               銆?,7銆?/p>

                                                    1

                                  /                                      \

                     銆?,3銆?nbsp;                                          銆?,7銆?/p>

                         0                                                     0

                 /                 \                                     /                 \

       銆?,1銆?nbsp;                銆?,3銆?nbsp;               銆?,5銆?nbsp;               銆?,7銆?/p>

            0                           1                           2                          0

          /    \                      /      \                     /     \                    /      \

銆?,0銆?銆?,1銆?銆?,2銆?銆?,3銆?銆?,4銆?銆?,5銆?銆?,6銆?銆?,7銆?/p>

     0            0             0            0             0            0                 1           0

璇㈤棶鎿嶄綔鍜屾彃鍏ユ搷浣滅被浼鹼紝涔熸槸閫掑綊榪囩▼錛岀暐

2鈥斺斾緷嬈℃妸銆?,7銆?銆?,3銆?銆?,3銆?銆?,2銆戠殑璁板綍n鍔犺搗鏉ワ紝緇撴灉涓?

4鈥斺斾緷嬈℃妸銆?,7銆?銆?,7銆?銆?,5銆?銆?,4銆戠殑璁板綍n鍔犺搗鏉ワ紝緇撴灉涓?

7鈥斺斾緷嬈℃妸銆?,7銆?銆?,7銆?銆?,7銆?銆?,7銆戠殑璁板綍n鍔犺搗鏉ワ紝緇撴灉涓?

涓嶇鏄彃鍏ユ搷浣滆繕鏄煡璇㈡搷浣滐紝姣忔鎿嶄綔鐨勬墽琛屾鏁頒粎涓烘爲鐨勬繁搴︹斺攍ogN

寤烘爲鏈塶嬈℃彃鍏ユ搷浣滐紝n*logN錛屼竴嬈℃煡璇㈣logN錛宮嬈″氨鏄痬*logN錛涙誨叡澶嶆潅搴(n+m)*logN錛岃繖閬撻N涓嶈秴榪?0000錛宭ogN綰︾瓑浜?4錛屾墍浠ヨ綆楅噺鍦?0^5锝?0^6涔嬮棿錛屾瘮鏅氭柟娉曞揩浜?000鍊嶏紱

榪欓亾棰樻槸綰挎鏍戞渶鍩烘湰鐨勬搷浣滐紝鍙敤鍒頒簡鎻掑叆鍜屾煡鎵撅紱鍒犻櫎鎿嶄綔鍜屾彃鍏ョ被浼鹼紝鎵╁睍鍔熻兘鐨勮繕鏈夋祴搴︺佽繛緇鏁扮瓑絳夛紝鍦∟鏁版嵁鑼冨洿寰堝ぇ鐨勬椂鍊欙紝渚濈劧鍙互鐢ㄧ鏁e寲鐨勬柟娉曞緩鏍戙?/p>

婀栧ぇ鐨勯偅閬撻鐩粫浜嗕釜灝忓集瀛愶紝alpc12鏈夎緇嗙殑棰樼洰鍜岃В棰樻姤鍛婏紝鏈夊叴瓚g殑璇濆彲浠ョ湅鐪?a href="http://m.shnenglu.com/sicheng/archive/2008/01/09/40791.html">http://m.shnenglu.com/sicheng/archive/2008/01/09/40791.html

綰挎鏍戠殑緇忓吀棰樼洰灝辨槸poj1177鐨刾icturehttp://acm.pku.edu.cn/JudgeOnline/problem?id=1177



]]>
Bellman-Ford 綆楁硶[杞琞http://m.shnenglu.com/proyao/archive/2009/04/03/78878.htmlAcaini.yaoyaoziiAcaini.yaoyaoziiFri, 03 Apr 2009 13:50:00 GMThttp://m.shnenglu.com/proyao/archive/2009/04/03/78878.htmlhttp://m.shnenglu.com/proyao/comments/78878.htmlhttp://m.shnenglu.com/proyao/archive/2009/04/03/78878.html#Feedback0http://m.shnenglu.com/proyao/comments/commentRss/78878.htmlhttp://m.shnenglu.com/proyao/services/trackbacks/78878.htmlBellman-Ford 綆楁硶鍙婂叾浼樺寲

Bellman-Ford綆楁硶涓庡彟涓涓潪甯歌憲鍚嶇殑Dijkstra綆楁硶涓鏍鳳紝鐢ㄤ簬姹傝В鍗曟簮鐐規(guī)渶鐭礬寰勯棶棰樸?/span>Bellman-ford綆楁硶闄や簡鍙眰瑙h竟鏉冨潎闈炶礋鐨勯棶棰樺錛岃繕鍙互瑙e喅瀛樺湪璐熸潈杈圭殑闂錛堟剰涔夋槸浠涔堬紝濂藉ソ鎬濊冿級錛岃?/span>Dijkstra綆楁硶鍙兘澶勭悊杈規(guī)潈闈炶礋鐨勯棶棰橈紝鍥犳 Bellman-Ford綆楁硶鐨勯傜敤闈㈣騫挎硾涓浜涖備絾鏄紝鍘熷鐨?/span>Bellman-Ford綆楁硶鏃墮棿澶嶆潅搴︿負 O錛?/span>VE錛?/span>,姣?/span>Dijkstra綆楁硶鐨勬椂闂村鏉傚害楂橈紝鎵浠ュ父甯歌浼楀鐨勫ぇ瀛︾畻娉曟暀縐戜功鎵蹇界暐錛屽氨榪炵粡鍏哥殑銆婄畻娉曞璁恒嬩篃鍙粙緇嶄簡鍩烘湰鐨?/span>Bellman-Ford綆楁硶錛屽湪鍥藉唴甯歌鐨勫熀鏈俊鎭濂ヨ禌鏁欐潗涓篃鍧囨湭鎻愬強錛屽洜姝よ綆楁硶鐨勭煡鍚嶅害涓庤鎺屾彙搴﹂兘涓嶅Dijkstra綆楁硶銆備簨瀹炰笂錛屾湁澶氱褰㈠紡鐨?/span>Bellman-Ford綆楁硶鐨勪紭鍖栧疄鐜般傝繖浜涗紭鍖栧疄鐜板湪鏃墮棿鏁堢巼涓婂緱鍒扮浉褰撴彁鍗囷紝渚嬪榪戜竴涓ゅ勾琚儹鎹х殑SPFA錛?/span>Shortest-Path Faster Algoithm 鏇村揩鐨勬渶鐭礬寰勭畻娉曪級綆楁硶鐨勬椂闂存晥鐜囩敋鑷崇敱浜?/span>Dijkstra綆楁硶錛屽洜姝ゆ垚涓轟俊鎭濂ヨ禌閫夋墜緇忓父璁ㄨ鐨勮瘽棰樸傜劧鑰岋紝闄愪簬璧勬枡鍖箯錛屾湁鍏?/span>Bellman-Ford綆楁硶鐨勮澶氶棶棰樺父甯稿洶鎵板ゥ璧涢夋墜銆傚錛氳綆楁硶鍊煎緱鎺屾彙涔堬紵鎬庢牱鐢ㄧ紪紼嬭璦鍏蜂綋瀹炵幇錛熸湁鍝簺浼樺寲錛熶笌SPFA綆楁硶鏈夊叧緋諱箞錛熸湰鏂囪瘯鍥懼Bellman-Ford綆楁硶鍋氫竴涓瘮杈冨叏闈㈢殑浠嬬粛銆傜粰鍑哄嚑縐嶅疄鐜扮▼搴忥紝浠庣悊璁哄拰瀹炴祴涓ゆ柟闈㈠垎鏋愪粬浠殑鏃墮棿澶嶆潅搴︼紝渚涘ぇ瀹跺湪澶囨垬鐪侀夊拰鍚庣畫鐨?/span>noi鏃跺弬鑰冦?/span>

Bellman-Ford綆楁硶鎬濇兂

Bellman-Ford綆楁硶鑳藉湪鏇存櫘閬嶇殑鎯呭喌涓嬶紙瀛樺湪璐熸潈杈癸級瑙e喅鍗曟簮鐐規(guī)渶鐭礬寰勯棶棰樸傚浜庣粰瀹氱殑甯︽潈錛堟湁鍚戞垨鏃犲悜錛夊浘 G=錛?/span>V,E錛夛紝鍏舵簮鐐逛負s錛屽姞鏉冨嚱鏁?/span> w鏄?/span> 杈歸泦 E 鐨勬槧灝勩傚鍥?/span>G榪愯Bellman-Ford綆楁硶鐨勭粨鏋滄槸涓涓竷?yōu)當鍊鹼紝琛ㄦ槑鍥句腑鏄惁瀛樺湪鐫涓涓粠婧愮偣s鍙揪鐨勮礋鏉冨洖璺?/span>鑻ヤ笉瀛樺湪榪欐牱鐨勫洖璺紝綆楁硶灝嗙粰鍑轟粠婧愮偣s鍒?/span> 鍥?/span>G鐨勪換鎰忛《鐐?/span>v鐨勬渶鐭礬寰?/span>d[v]銆?/span>

Bellman-Ford綆楁硶嫻佺▼鍒嗕負涓変釜闃舵錛?/span>

錛?錛?span>    鍒濆鍖栵細灝嗛櫎婧愮偣澶栫殑鎵鏈夐《鐐圭殑鏈鐭窛紱諱及璁″?/span> d[v] ←+∞, d[s] ←0;

錛?錛?span>    榪唬姹傝В錛氬弽澶嶅杈歸泦E涓殑姣忔潯杈硅繘琛屾澗寮涙搷浣滐紝浣垮緱欏剁偣闆哣涓殑姣忎釜欏剁偣v鐨勬渶鐭窛紱諱及璁″奸愭閫艱繎鍏舵渶鐭窛紱伙紱錛堣繍琛寍v|-1嬈★級

錛?錛?span>    媯楠岃礋鏉冨洖璺細鍒ゆ柇杈歸泦E涓殑姣忎竴鏉¤竟鐨勪袱涓鐐規(guī)槸鍚︽敹鏁涖傚鏋滃瓨鍦ㄦ湭鏀舵暃鐨勯《鐐癸紝鍒欑畻娉曡繑鍥?/span>false錛岃〃鏄庨棶棰樻棤瑙o紱鍚﹀垯綆楁硶榪斿洖true錛屽茍涓斾粠婧愮偣鍙揪鐨勯《鐐?/span>v鐨勬渶鐭窛紱諱繚瀛樺湪 d[v]涓?/span>

綆楁硶鎻忚堪濡備笅錛?/span>

Bellman-Ford(G,w,s) 錛?/span>boolean   //鍥?/span>G 錛岃竟闆?/span> 鍑芥暟 w 錛?/span>s涓烘簮鐐?/span>

1        for each vertex v ∈ V錛圙錛?do        //鍒濆鍖?span> 1闃舵

2            d[v] ←+∞

3        d[s] ←0;                             //1闃舵緇撴潫

4        for i=1 to |v|-1 do               //2闃舵寮濮嬶紝鍙岄噸寰幆銆?/span>

5           for each edge錛坲,v錛?∈E(G) do //杈歸泦鏁扮粍瑕佺敤鍒幫紝絀蜂婦姣忔潯杈廣?/span>

6              If d[v]> d[u]+ w(u,v) then      //鏉懼紱鍒ゆ柇

7                 d[v]=d[u]+w(u,v)               //鏉懼紱鎿嶄綔   2闃舵緇撴潫

8        for each edge錛坲,v錛?∈E(G) do

9            If d[v]> d[u]+ w(u,v) then

10            Exit false

11    Exit true

涓嬮潰緇欏嚭鎻忚堪鎬ц瘉鏄庯細

   棣栧厛鎸囧嚭錛屽浘鐨勪換鎰忎竴鏉℃渶鐭礬寰勬棦涓嶈兘鍖呭惈璐熸潈鍥炶礬錛屼篃涓嶄細鍖呭惈姝f潈鍥炶礬錛屽洜姝ゅ畠鏈澶氬寘鍚?/span>|v|-1鏉¤竟銆?/span>

   鍏舵錛屼粠婧愮偣s鍙揪鐨勬墍鏈夐《鐐瑰鏋?/span> 瀛樺湪鏈鐭礬寰勶紝鍒欒繖浜涙渶鐭礬寰勬瀯鎴愪竴涓互s涓烘牴鐨勬渶鐭礬寰勬爲銆?/span>Bellman-Ford綆楁硶鐨勮凱浠f澗寮涙搷浣滐紝瀹為檯涓婂氨鏄寜欏剁偣璺濈s鐨勫眰嬈★紝閫愬眰鐢熸垚榪欐5鏈鐭礬寰勬爲鐨勮繃紼嬨?/span>

鍦ㄥ姣忔潯杈硅繘琛?span>1閬嶆澗寮涚殑鏃跺欙紝鐢熸垚浜嗕粠s鍑哄彂錛屽眰嬈¤嚦澶氫負1鐨勯偅浜涙爲鏋濄備篃灝辨槸璇達紝鎵懼埌浜嗕笌s鑷沖鏈?鏉¤竟鐩歌仈鐨勯偅浜涢《鐐圭殑鏈鐭礬寰勶紱瀵規(guī)瘡鏉¤竟榪涜絎?閬嶆澗寮涚殑鏃跺欙紝鐢熸垚浜嗙2灞傛鐨勬爲鏋濓紝灝辨槸璇存壘鍒頒簡緇忚繃2鏉¤竟鐩歌繛鐨勯偅浜涢《鐐圭殑鏈鐭礬寰?#8230;…銆傚洜涓烘渶鐭礬寰勬渶澶氬彧鍖呭惈|v|-1 鏉¤竟錛屾墍浠ワ紝鍙渶瑕佸驚鐜瘄v|-1 嬈°?/span>

姣忓疄鏂戒竴嬈℃澗寮涙搷浣滐紝鏈鐭礬寰勬爲涓婂氨浼氭湁涓灞傞《鐐硅揪鍒板叾鏈鐭窛紱伙紝姝ゅ悗榪欏眰欏剁偣鐨勬渶鐭窛紱誨煎氨浼氫竴鐩翠繚鎸佷笉鍙橈紝涓嶅啀鍙楀悗緇澗寮涙搷浣滅殑褰卞搷銆傦紙浣嗘槸錛屾瘡嬈¤繕瑕佸垽鏂澗寮涳紝榪欓噷嫻垂浜嗗ぇ閲忕殑鏃墮棿錛屾庝箞浼樺寲錛熷崟綰殑浼樺寲鏄惁鍙錛燂級

濡傛灉娌℃湁璐熸潈鍥炶礬錛岀敱浜庢渶鐭礬寰勬爲鐨勯珮搴︽渶澶氬彧鑳芥槸|v|-1錛屾墍浠ユ渶澶氱粡榪噟v|-1閬嶆澗寮涙搷浣滃悗錛屾墍鏈変粠s鍙揪鐨勯《鐐瑰繀灝嗘眰鍑烘渶鐭窛紱匯傚鏋?d[v]浠嶄繚鎸?+∞錛屽垯琛ㄦ槑浠巗鍒皏涓嶅彲杈俱?/span>

濡傛灉鏈夎礋鏉冨洖璺紝閭d箞絎?span> |v|-1 閬嶆澗寮涙搷浣滀粛鐒朵細鎴愬姛錛岃繖鏃訛紝璐熸潈鍥炶礬涓婄殑欏剁偣涓嶄細鏀舵暃銆?/span>

 

 

 

渚嬪瀵逛簬涓婂浘錛岃竟涓婃柟妗嗕腑鐨勬暟瀛椾唬琛ㄦ潈鍊鹼紝欏剁偣A,B,C涔嬮棿瀛樺湪璐熸潈鍥炶礬銆係鏄簮鐐癸紝欏剁偣涓暟瀛楄〃紺鴻繍琛孊ellman-Ford綆楁硶鍚庡悇鐐圭殑鏈鐭窛紱諱及璁″箋?/span>

姝ゆ椂d[a]鐨勫間負1錛屽ぇ浜巇[c]+w(c,a)鐨勫?2錛岀敱姝[a]鍙互鏉懼紱涓?2錛岀劧鍚巇[b]鍙堝彲浠ユ澗寮涗負-5,d[c]鍙堝彲浠ユ澗寮涗負-7.涓嬩竴涓懆鏈燂紝d[a]鍙堝彲浠ユ洿鏂頒負鏇村皬鐨勫鹼紝榪欎釜榪囩▼姘歌繙涓嶄細緇堟銆傚洜姝わ紝鍦ㄨ凱浠f眰瑙f渶鐭礬寰勯樁孌電粨鏉熷悗錛屽彲浠ラ氳繃媯楠岃竟闆咵鐨勬瘡鏉¤竟(u,v)鏄惁婊¤凍鍏崇郴寮?span> d[v]> d[u]+ w(u,v) 鏉ュ垽鏂槸鍚﹀瓨鍦ㄨ礋鏉冨洖璺?/span>



]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
              久久久久久久一区| 国产在线精品一区二区夜色| 夜夜狂射影院欧美极品| 欧美不卡视频一区发布| 久久欧美中文字幕| 欧美一区二区三区免费视频| 欧美色道久久88综合亚洲精品| 欧美国产一区二区在线观看 | 欧美在线不卡视频| 欧美一区二区三区视频| 久久国产精品第一页| 免费日韩成人| 国产精品久久久久久av下载红粉| 国产精品久久毛片a| 黄色一区二区在线| 一区二区不卡在线视频 午夜欧美不卡'| 99精品视频免费观看| 亚洲欧美日韩一区在线| 看片网站欧美日韩| 亚洲精品在线观看视频| 中日韩在线视频| 久久久一本精品99久久精品66| 欧美精品一区二区三区在线播放| 国产精品日韩电影| 一区二区视频欧美| 亚洲淫性视频| 久久久91精品国产一区二区精品| 亚洲福利国产精品| 99国内精品| 久久伊人一区二区| 亚洲精品一区中文| 国产精品网站视频| 亚洲人成在线观看网站高清| 亚洲欧洲av一区二区| 欧美v亚洲v综合ⅴ国产v| 中日韩男男gay无套| 奶水喷射视频一区| 国产亚洲精品一区二区| 一本色道久久88精品综合| 久久久久久97三级| 亚洲视频在线观看| 欧美激情一区二区三区成人| 国产一区av在线| 亚洲女同同性videoxma| 美乳少妇欧美精品| 久久不射电影网| 国产精品日韩电影| 亚洲综合三区| 99热这里只有精品8| 免费在线观看精品| 国产有码一区二区| 欧美一级片久久久久久久| 一本久道久久综合婷婷鲸鱼| 欧美黄在线观看| 亚洲精品免费网站| 欧美国产综合一区二区| 久久久久高清| 国内久久精品| 久久琪琪电影院| 欧美中文字幕第一页| 国产亚洲一区二区三区在线播放| 午夜视频在线观看一区二区三区| 中文精品视频| 国产欧美一区二区三区沐欲 | 亚洲靠逼com| 亚洲成人在线网站| 久久一区视频| 亚洲精品久久久久久久久| 亚洲国产裸拍裸体视频在线观看乱了中文 | 欧美黄色aaaa| 欧美成ee人免费视频| 亚洲欧洲三级| 亚洲精品免费在线| 欧美色另类天堂2015| 一区二区三区**美女毛片| 一本久久综合| 国内精品美女av在线播放| 久久婷婷综合激情| 噜噜噜噜噜久久久久久91| 亚洲精品免费一区二区三区| 国产精品一区久久久久| 国产精品久久久久久av下载红粉| 亚洲综合99| 亚洲欧美日韩国产中文在线| 国内一区二区在线视频观看| 欧美国产极速在线| 欧美日韩另类国产亚洲欧美一级| 久久久久一区二区| 韩国精品一区二区三区| 欧美成人性生活| 欧美电影电视剧在线观看| 一区二区日韩伦理片| 欧美一区二区高清在线观看| 在线看无码的免费网站| 亚洲乱码一区二区| 国产欧美在线| 亚洲国产高清aⅴ视频| 国产精品二区二区三区| 老牛嫩草一区二区三区日本 | 亚洲人成高清| 亚洲深夜av| 亚洲电影视频在线| 亚洲一区二区在线免费观看| 亚洲国产成人精品久久久国产成人一区| 亚洲成色777777在线观看影院| 欧美日韩一二三四五区| 麻豆精品一区二区av白丝在线| 欧美日韩精品免费在线观看视频| 久久精品国产免费| 欧美视频在线观看视频极品 | 美日韩精品免费观看视频| 欧美日韩专区在线| 欧美r片在线| 国产三级欧美三级日产三级99| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美视频在线免费看| 欧美jjzz| 韩国久久久久| 午夜视频在线观看一区二区| 在线视频你懂得一区| 久久亚洲国产精品一区二区| 香蕉久久夜色| 欧美日韩亚洲在线| 亚洲成人中文| 亚洲高清在线观看| 欧美一区国产一区| 久久福利资源站| 欧美午夜精品久久久久免费视| 欧美成人免费大片| 国产亚洲欧美日韩在线一区 | 亚洲综合日韩在线| 正在播放亚洲一区| 老司机精品导航| 久久婷婷麻豆| 精品成人一区| 久久久成人精品| 国产欧美精品日韩区二区麻豆天美| 亚洲国产另类精品专区| 一本色道久久88综合日韩精品| 国产精品免费电影| 欧美黄污视频| 最近看过的日韩成人| 久热精品视频在线观看一区| 美女日韩欧美| 亚洲日本一区二区三区| 久久久久国产精品厨房| 老司机午夜免费精品视频 | 亚洲欧洲在线观看| 欧美fxxxxxx另类| 亚洲国产精品一区二区第一页| 亚洲国产精彩中文乱码av在线播放| 欧美综合77777色婷婷| 久久全国免费视频| 亚洲电影第三页| 欧美精品乱码久久久久久按摩| 亚洲精品乱码久久久久久黑人| 一区二区高清在线| 欧美性大战xxxxx久久久| 在线视频你懂得一区| 欧美在线观看天堂一区二区三区| 国产精品免费视频观看| 亚洲欧美国产精品va在线观看| 久久精品水蜜桃av综合天堂| 亚洲国产精品第一区二区| 欧美a级片网| 亚洲午夜一区二区| 久久午夜色播影院免费高清| 亚洲国产精品一区二区久| 欧美成人精品在线观看| 一本久久青青| 欧美成人免费在线视频| 在线一区欧美| 国户精品久久久久久久久久久不卡| 久久久久在线观看| 亚洲精品综合在线| 久久精品成人欧美大片古装| 亚洲韩日在线| 国产精品一区免费视频| 蜜臀av在线播放一区二区三区| 亚洲每日在线| 久久久久国产精品一区三寸| 亚洲免费激情| 永久免费精品影视网站| 欧美日韩国产免费观看| 欧美资源在线观看| 日韩一区二区电影网| 久久人体大胆视频| 亚洲视频中文字幕| 亚洲欧洲一区| 合欧美一区二区三区| 国产精品二区二区三区| 你懂的视频一区二区| 午夜精品一区二区三区在线播放 | 欧美日本不卡视频| 久久久777| 亚洲一区在线视频| 亚洲精品一区二区三区99| 老司机免费视频久久| 久久av二区| 亚洲综合社区|