锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
閭眬浣嶇疆闂瀹氫箟濡備笅錛?nbsp;
涓婁竴綃囨枃绔犺緭娌圭閬撻棶棰橀噷闈㈣瘉鏄庝簡錛屽綋鏉冨糤i閮戒負1鐨勬椂鍊欙紝涓綅鏁板氨鏄渶浣崇殑瑙c備絾鏄紝鐜板湪Wi宸茬粡涓嶄竴瀹氭槸1浜嗐傛墍浠ワ紝鐜板湪
闇瑕佽瘉鏄庡湪浠繪剰Wi鐨勫彇鍊兼儏鍐典笅錛屽甫鏉冧腑浣嶆暟鑳藉鎴愪負閭眬浣嶇疆鐨勬渶浣寵В銆傚亣璁撅紝鎵鏈塛i閮芥槸1鐨勫嶆暟錛屽鏋滄槸灝忔暟鐨勮瘽錛屽彲浠ユ墍鏈夌殑
Wi閮戒箻浠ヤ竴瀹氱殑鍊嶆暟銆傞偅涔坵i*d(p,pi) = Σ(p,pi)(i浠?鍒皐i)錛岃繖涓剰鎬濇槸鎶婅窛紱諱箻浠ヤ簡wi鍊嶃?br /> 浣嗘槸錛岀幇鍦ㄥ彲浠ユ崲涓縐嶇湅娉曪紝鎹㈡垚浜唒i浣嶇疆鏈墂i涓噸鍚堢殑鐐癸紝涓旀瘡涓涓偣鐨勬潈鍊奸兘鏄?錛岄偅涔堝叾鍜屼篃鏄痺i*d(p,pi)銆?strong>閭d箞瀵規墍鏈夌殑pi
閮借繖鏍峰垎瑙o紝灝辨妸闂閲嶆柊杞崲鎴愪簡杈撴補綆¢亾闂浜?/strong>銆傝緭娌圭閬撻棶棰樼殑鏈浼樿В灝辨槸涓綅鏁幫紝閭d箞閭眬闂鐨勬渶浼樿В灝辨槸杞崲涔嬪悗鐨?br />榪欎簺鐐圭殑涓綅鏁扮偣銆傝岃繖涓偣涓瀹氬瓨鍦ㄤ簬甯︽潈涓綅鏁?/strong>閭d釜鐐瑰垎瑙e嚭鐨勪竴鍫嗙偣涓?br /> 浜岀淮閭眬闂鐨勮В娉曟槸鎶妜鍜寉鍒嗗紑姹?嬈′竴緇撮偖灞闂錛岀劧鍚庢妸瑙g粍鍜岃搗鏉ワ紝寰楀埌絳旀銆?br />
姹傚甫鏉冧腑浣嶆暟鐨勭畻娉曟瘮杈冪畝鍗曪紝鐩存帴鐨勫仛娉曟槸錛屽厛鎶妌涓偣鎸夌収浣嶇疆鎺掑簭錛岀劧鍚庢寜鐐圭殑浣嶇疆浠庡皬鍒板ぇ閬嶅巻錛屾壘鍒版弧瓚寵姹傜殑鐐瑰嵆鍙?br /> 涓嶇畻鎺掑簭鐐逛綅緗殑棰勫鐞嗭紝鍥犱負寰堝鏃跺欑偣搴旇灝辨槸鎸夐『搴忕粰鍑虹殑錛屾墍浠ュ叾鏃墮棿澶嶆潅搴︽槸O(n)銆?br /> 瑕佹眰錛?img src="http://m.shnenglu.com/images/cppblog_com/csu-yx/甯︽潈涓綅鏁板叕寮?jpg" border="0" alt="" width="130" height="104" />
]]>
榪欎釜棰橈紝铏界劧璇寸粰鍑轟簡浜曠殑x,y鍧愭爣錛屼絾鏄淇緩鐨勪富綆¢亾鍗村彧鏄竴鏉℃í鍚戠殑錛岃屼笖鍏朵綑綆¢亾涔熷彧鏄埌榪欐潯綆¢亾鐨勭珫鍚戣窛紱匯?br />閭d箞錛屽氨杞崲涓虹‘瀹氫竴鏉$洿綰?y = m錛屼嬌寰楀叾瀹冧釜鐐瑰埌榪欐潯鐩寸嚎鐨勮窛紱繪渶澶氥備篃璁鎬笉闇瑕佸鐨勬彁紺猴紝澶у鐨勭洿瑙夊氨浼氭兂鍒板簲璇?br />閫夋墍鏈墆鍊肩殑涓偣銆備絾鏄紝榪欎釜鐨勮瘉鏄庡嵈涓嶆槸閭d箞鐨勬槑鏄俱?br />
璇佹槑濡備笅錛?br /> 璁炬墍鏈夌殑y鍊肩郴鍒椾負y1,y2,...,yn錛屽茍涓斿亣璁捐繖涓槸鎸夐掑鎺掑垪鐨勩傛垜浠姹傜殑鏄疭um = Σ|yi-m|(1<=i<=n),
1錛夋樉鐒跺亣濡傞夊皬浜巠1鎴栬呭ぇ浜巠n鐨剏=m閮戒笉浼氭瘮閫墆1鎴栬厃n鏇村ソ銆?br /> 2錛夊鏋滈墆1鎴栬厃n錛岄偅涔坾y1-m|+|yn-m| = |yn-y1|閮芥槸涓鏍風殑緇撴灉錛岀敋鑷抽墆1鍜寉n涔嬮棿鐨勪換鎰忎竴涓箋?br /> 3錛夊姝ょ戶緇笅鍘伙紝瀵逛簬y2鍜寉n錛屼篃鏈?錛夋墍鎻忚堪鐨勬ц川
4錛夌戶緇埌鏈鍚庯紝鍙渶瑕佸彇鏈涓棿涓瀵圭偣涔嬮棿鐨勫煎嵆鍙紝濡傛灉n鏄鏁幫紝閭d箞灝辨槸涓棿鐨勭偣錛屽鏋渘鏄伓鏁幫紝鍙栦換鎰忎竴涓腑闂?br /> 鐐歸兘鍙互銆?br />
閫氳繃涓婇潰璇佹槑錛屾垜浠彲浠ラ夊彇絎瑈(n/2 + 1)浣滀負淇緩涓葷閬撶殑鍦版柟銆傚綋鐒惰繖鍙兘鏄敮涓鐨勬渶浼橀夋嫨錛屾垨鑰呮棤鏁頒釜鏈浼橀夋嫨涓殑涓涓?br />閭d箞鐜板湪宸茬粡杞崲涓烘眰涓綅鏁頒簡錛屾眰涓綅鏁扮殑鍔炴硶鏈綆鍗曠殑鏄搴忓垪鎺掑簭鐒跺悗鍙栦腑闂寸殑鍗沖彲銆傜畻娉曞璁轟笂鏈変竴縐嶅鉤鍧囦唬浠?strong>O(n)鐨勫姙娉曪紝
鎬濊礬綾諱技浜庡揩閫熸帓搴忥紝蹇帓鐨勬瘡涓嬈℃搷浣滈兘鏄垝鍒嗘暟緇勶紝鍓嶅皬鍚庡ぇ錛屽鏋滄垜浠篃榪欎竴嬈℃鍘誨垝鍒嗘暟緇勶紝鍒氬ソ杞村厓绱犲浜庢垜浠姹傜殑閭d釜浣嶇疆
涓婇偅涔堝氨杈懼埌鎴戜滑鐨勭洰鐨勪簡錛屼笅闈㈢殑浠g爜涓?strong>Select鍑芥暟灝辨槸姹備竴涓暟緇勭殑涓綅鏁般?br />
瀵逛簬POJ 1723棰橈紝寰堟樉鐒秠鐨勯夋嫨鏄腑浣嶆暟鍗沖彲錛寈鐨勯夋嫨闇瑕佽漿鎹竴涓嬩篃鍙樻垚姹備腑浣嶆暟浜嗐傞鐩腑鎻忚堪錛屾渶鍚庤杈懼埌鐨勬晥鏋滄槸姣忎釜澹?br />鍏甸兘鍗犳垚涓妯帓錛岃屼笖褰兼鐩擱偦錛屼篃灝辨槸y鐩稿悓錛屼絾鏄痻緋誨垪鏄痥,k+1,k+2,...,k+n-1銆傞偅涔堝浣曚粠鍘熸潵鐨剎0,x1,x2,...,x(n-1)縐誨姩榪囧幓浜嗐?br />鍙互綆鍗曠殑鑰冭檻涓嬶紝灝嗘渶宸﹁竟鐨勫+鍏電Щ鍔ㄥ埌k,嬈″乏鐨勭Щ鍔ㄥ埌k+1,...,鏈鍙寵竟鐨勭Щ鍔ㄥ埌k+n-1錛屾墍闇瑕佺殑縐誨姩涔嬪拰涓瀹氭槸鏈灝忕殑銆傞偅涔堟垜浠?br />鍙互灝嗗師鏉ョ殑x0-x(n-1)鎺掑簭錛屽緱鍒皒'0,x'1,...,x'(n-1),瑕佹眰鐨?strong>Sum = Σ|x'i - (k + i)| = Σ|(x'i - i) - k|,閭d箞瑕佷嬌Sum鏈灝忥紝鍙渶瑕?br />姹傚簭鍒梄'i - i鐨勪腑浣嶆暟鍗沖彲浜嗐?br />
浠g爜濡備笅錛?br />
]]>