锘??xml version="1.0" encoding="utf-8" standalone="yes"?>黄色成人精品网站,亚洲精品综合精品自拍,欧美另类变人与禽xxxxxhttp://www.shnenglu.com/MatoNo1/archive/2012/12/01/195857.htmlMato_No1Mato_No1Sat, 01 Dec 2012 04:11:00 GMThttp://www.shnenglu.com/MatoNo1/archive/2012/12/01/195857.htmlhttp://www.shnenglu.com/MatoNo1/comments/195857.htmlhttp://www.shnenglu.com/MatoNo1/archive/2012/12/01/195857.html#Feedback1http://www.shnenglu.com/MatoNo1/comments/commentRss/195857.htmlhttp://www.shnenglu.com/MatoNo1/services/trackbacks/195857.html鏍圭粨鐐癸細1
A鐨勫乏瀛愮粨鐐癸細2A錛堝啓鎴怉<<1錛?br />A鐨勫彸瀛愮粨鐐癸細2A+1錛堝啓鎴?A<<1)+1錛?br />榪欑琛ㄧず娉曞彲浠ヨ〃紺哄嚭鏁存5綰挎鏍戯紝鍥犱負錛?br />錛?錛夋瘡涓粨鐐圭殑瀛愮粨鐐圭殑涓嬫爣閮芥瘮瀹冨ぇ錛岃繖鏍峰氨涓嶄細鍑虹幇鐜紱
錛?錛夋瘡涓粨鐐圭殑鐖剁粨鐐歸兘鏄敮涓鐨勶紙鍏舵湰韜笅鏍囨暣闄?錛夛紱
浣嗘槸錛岃繖縐嶈〃紺烘硶鏈変竴涓急鐐癸細緇撶偣鐨勪笅鏍囨槸鏈夊彲鑳借秴榪?N鐨勶紝浣嗕笉浼氳秴榪?N錛屽洜姝わ紝涓轟簡琛ㄧず鍑鴻法搴︿負N鐨勭嚎孌碉紝鎴戜滑闇瑕佸紑4N鐨勭┖闂達紝鐒惰岋紝鍏朵腑鍙湁2N-1涓綅緗槸鏈夌敤鐨勶紙鍥犱負琛ㄧず璺ㄥ害涓篘鐨勭嚎孌電殑綰挎鏍戝叡鏈?2N-1)涓粨鐐癸級錛?span style="color: red">榪欐牱錛屽氨鏈変竴鍗婄殑絀洪棿琚氮璐?/strong>銆傚挨鍏舵槸榪欑綰挎鏍戞帹騫垮埌澶氱淮鐨勬椂鍊?#8212;—K緇寸嚎孌墊爲灝卞彧鏈?/2K鐨勪綅緗槸鏈夌敤鐨勶紝絀洪棿鍒╃敤鐜囬潪甯鎬綆銆傚湪鏌愪簺鍗$┖闂寸殑鍦哄悎錛屽畠灝卞洤鎺変簡銆?br />
閭d箞錛屾湁鏈ㄦ湁濂戒竴鐐圭殑鍐欐硶鍛紵鏈濂借兘浣跨┖闂村埄鐢ㄧ巼杈懼埌100%——涔熷氨鏄墍鏈夌粨鐐圭殑涓嬫爣鍒氬ソ灝辨槸1~(2N-1)錛侊紒錛?鍙風粨鐐逛竴鑸綔涓?#8220;鍝ㄥ叺”錛屼笉琚崰鐢級
騫朵笖錛岃繖縐嶅啓娉曡淇濊瘉浠呬粎鐢辯粨鐐圭殑涓嬫爣鍜屽畠琛ㄧず鐨勭嚎孌電殑宸﹀彸绔偣錛堝洜涓哄湪閬嶅巻綰挎鏃訛紝涓嬫爣鍜屽乏鍙崇鐐瑰熀鏈笂閮芥槸鍚屾椂鐭ラ亾鐨勶級錛屽氨鑳藉緱鍑哄叾瀛愮粨鐐圭殑涓嬫爣錛岃屼笉闇瑕佸熷姪棰濆鐨勪笢涓滐紙鏈濂絤id閮戒笉闇瑕佺畻錛夈?br />榪欑鍐欐硶灝辨槸——鐩存帴灝嗘瘡涓粨鐐圭殑DFS閬嶅巻嬈″簭褰撳仛瀹冪殑涓嬫爣錛侊紒
姣斿錛岃法搴︿負6鐨勭嚎孌墊爲錛?br />
瀹規槗鍙戠幇錛屾牴緇撶偣涓嬫爣涓?錛屼笅鏍囦負A鐨勭粨鐐圭殑宸﹀瓙緇撶偣涓嬫爣涓?A+1)錛屽彸瀛愮粨鐐逛笅鏍囦負A+SZ(A.L)+1錛屽叾涓璖Z(A.L)涓篈鐨勫乏瀛愭爲澶у皬銆?br />鑻鐨勫乏鍙崇鐐逛負l銆乺錛宮id=(l+r)/2錛堜笅鍙栨暣錛夛紝鍒橝鐨勫乏瀛愭爲鎵琛ㄧず鐨勭嚎孌典負[l, mid]錛屾墍浠Z(A.L)=(mid-l+1)*2-1=(mid-l)*2+1=((r-l-1)/2錛堜笂鍙栨暣錛?*2+1
榪欐牱錛孉鐨勫彸瀛愮粨鐐逛笅鏍囧氨鏄疉+((r-l+1)/2錛堜笂鍙栨暣))*2錛屼篃灝辨槸A鍔犱笂澶т簬(r-l)鐨勬渶灝忕殑鍋舵暟錛?br />鍐欏湪浠g爜閲屽氨鏄細
int mid=l+r>>1;
opr(l, mid, A
+1);
opr(mid
+1, r, (r-l&1?A+r-l+1:A+r-l+2));
鎴栬咃紝鍊熷姪浣嶈繍綆楋紝鍙互鍏嶅幓鏉′歡鍒ゆ柇錛?
int mid=l+r>>1;
opr(l, mid, A
+1);
opr(mid
+1, r, A+r-l+2-((r^l)&1));
緇忔祴璇曪紝鍚庤咃紙浣跨敤浣嶈繍綆楃殑錛夎櫧鐒舵葷殑榪愮畻嬈℃暟澶氫簬鍓嶈咃紙浣跨敤鏉′歡鍒ゆ柇鐨勶級錛屼絾鍚庤呮瘮鍓嶈呭揩涓鐐圭偣錛屽叾鍘熷洜鍙兘涓嶤璇█涓殑鏉′歡榪愮畻絎﹂熷害杈冩參鏈夊叧錛?br />
榪欐牱錛屾垜浠氨鎴愬姛鍦板皢綰挎鏍戜笅鏍囩殑絀洪棿鍒╃敤鐜囨彁楂樺埌浜?00%錛侊紒浠ュ悗鍙渶瑕佸紑2N絀洪棿灝辮浜嗗洤……
涓庝紶緇熻〃紺烘硶鐩告瘮錛岃繖縐嶆柊寮忚〃紺烘硶铏界劧鍙互鑺傜渷絀洪棿錛屼絾鏃墮棿娑堣楄鏇村ぇ涓浜涳紙鏃墮棿鍜岀┖闂存繪槸鐭涚浘鐨勫洤……錛夛紝鍥犱負瀹冨湪鎵懼彸瀛愮粨鐐圭殑鏃跺欓渶瑕佽緝澶氱殑榪愮畻銆傚鉤鍧囪搗鏉ワ紝鏂板紡琛ㄧず娉曟瘮浼犵粺琛ㄧず娉曡鎱?0~15%錛屽浜庢煇浜涘潙鐖圭殑鏁版嵁錛堝鍙沖瓙緇撶偣璋冪敤姣旇緝澶氱殑閭g錛夊彲鑳芥參寰楁洿澶氥傛澶栵紝鍦ㄤ笅鏀炬爣璁扮殑鏃跺欙紝浼犵粺琛ㄧず娉曞彧闇瑕佺煡閬撶粨鐐逛笅鏍囧氨琛屼簡錛岃屾柊寮忚〃紺烘硶蹇呴』鍚屾椂鐭ラ亾緇撶偣鐨勫乏鍙崇鐐癸紝榪欐牱鍦╠m涓氨闇瑕佷紶閫掍笁涓弬鏁幫紝浠庤岃鎱竴浜涳紝褰撶劧錛屾垜浠彲浠ヤ笉鐢╠m錛岀洿鎺ュ湪鎿嶄綔閲岄潰鍐欐爣璁頒笅鏀俱?img src ="http://www.shnenglu.com/MatoNo1/aggbug/195857.html" width = "1" height = "1" />

Mato_No1 2012-12-01 12:11 鍙戣〃璇勮
]]>
銆怉HOI2013澶嶄粐銆戝啀鐪婬DU2871http://www.shnenglu.com/MatoNo1/archive/2012/11/25/195647.htmlMato_No1Mato_No1Sun, 25 Nov 2012 06:54:00 GMThttp://www.shnenglu.com/MatoNo1/archive/2012/11/25/195647.htmlhttp://www.shnenglu.com/MatoNo1/comments/195647.htmlhttp://www.shnenglu.com/MatoNo1/archive/2012/11/25/195647.html#Feedback0http://www.shnenglu.com/MatoNo1/comments/commentRss/195647.htmlhttp://www.shnenglu.com/MatoNo1/services/trackbacks/195647.html鍘熼鍦板潃
鏈矙鑼跺幓騫存浘緇忕敤鍙岀嚎孌墊爲鐨勬柟娉曟崏浜嗚繖棰橈紙璇﹁榪欓噷錛夛紝鏈榪戦噸鏂板瑙嗚繖棰樺彂鐜幫紝鍊熷姪騫寵 鏍戯紝鍙互寰楀埌鏇寸畝鍗曠殑鏂規硶銆?br />
棰樼洰澶ф剰錛?br />鏈変竴涓暱搴︿負N鐨勫唴瀛樻潯錛屾瘡涓綅緗殑鐘舵佹湁鍗犵敤鍜屼笉鍗犵敤涓ょ錛屾湁4縐嶆搷浣滐細
錛?錛塕eset錛氭竻絀烘墍鏈夊唴瀛橈紙鍗沖皢鎵鏈変綅緗殑鐘舵佹敼涓轟笉鍗犵敤錛屽垹闄ゆ墍鏈夊唴瀛樺潡錛夛紱
錛?錛塏ew x錛氱敵璇蜂竴涓柊鐨勫唴瀛樺潡錛屽嵆鎵懼埌涓涓暱搴︿負x鐨勮繛緇笉鍗犵敤浣嶇疆鍖洪棿錛屽皢瀹冧滑鏍囪涓哄崰鐢紝鑻ユ湁澶氫釜榪欐牱鐨勫尯闂達紝鍙栨渶宸﹁竟鐨勶紝鑻ユ湪鏈夎緭鍑篟eject New錛?br />錛?錛塅ree x錛氬湪宸茬敵璇風殑鍐呭瓨鍧椾腑錛屾壘鍒板寘鍚綅緗畑鐨勫茍閲婃斁錛堝皢璇ュ唴瀛樺潡鍒犻櫎錛屽悓鏃跺叾鍗犵敤鐨勬墍鏈変綅緗敼涓轟笉鍗犵敤錛夛紝鑻ユ湪鏈夊唴瀛樺潡鍖呭惈浣嶇疆x錛屽垯杈撳嚭Reject Free錛?br />錛?錛塆et x錛氭壘鍑哄凡鐢寵鐨勫唴瀛樺潡涓紝宸﹁搗絎瑇涓紝騫惰緭鍑哄叾宸︾鐐癸紱鑻ュ凡鐢寵鐨勫唴瀛樺潡鏁扮洰涓嶈凍x涓紝鍒欒緭鍑篟eject Get銆?br />
鍙互鍙戠幇錛屾瘡涓凡緇忕敵璇風殑鍐呭瓨鍧楀敖綆′唬琛ㄤ竴孌靛尯闂達紝浣嗕粛鐒舵槸鐙珛鐨勫崟浣嶏紝鍥犳錛屽彲浠ユ妸鍐呭瓨鍧楀綋鎴愮粨鐐癸紝鐢ㄥ鉤琛℃爲緇存姢錛堝叧閿瓧涓哄唴瀛樺潡鐨勫乏绔偣浣嶇疆錛夛紝New鎿嶄綔涓唴瀛樺潡鐨勬彃鍏ヤ笌Free鎿嶄綔涓唴瀛樺潡鐨勫垹闄ゅ潎鍦ㄦ騫寵 鏍戝唴榪涜錛孯eset鎿嶄綔鍙渶瑕佸皢鏁存5鏍戦攢姣佸嵆鍙?br />闂鏄紝鍦∟ew鎿嶄綔涓紝闇瑕佹壘鍒頒竴涓暱搴︿負x鐨勮繛緇笉鍗犵敤鍖洪棿錛岃岃繛緇殑涓嶅崰鐢ㄥ尯闂村茍涓嶆槸鐙珛鐨勫崟浣嶏紝鍥犳闇瑕佷嬌鐢ㄧ嚎孌墊爲緇存姢銆傚湪綰挎鏍戜腑錛岄渶瑕佺淮鎶?lt;1>緇撶偣鍖洪棿鍐呮渶闀胯繛緇笉鍗犵敤鍧楃殑闀垮害錛?lt;2>緇撶偣鍖洪棿宸︾銆佸彸绔繛緇笉鍗犵敤鍧楃殑闀垮害錛堝惁鍒欐棤娉曠淮鎶?lt;1>錛夛紱鍚屾椂錛岀敱浜庡湪New鎿嶄綔涓渶瑕佸尯闂存暣浣撴敼鍗犵敤錛孎ree鎿嶄綔涓張闇瑕佸尯闂存暣浣撴敼涓嶅崰鐢紝鎵浠ュ簲褰撴敮鎸佹暣浣撴敼鍊肩殑鏍囪錛屽浜嶳eset鎿嶄綔錛屽彧闇瑕佸叏閮ㄤ綅緗敼涓嶅崰鐢ㄥ嵆鍙紙涓嶈兘閲嶆柊寤烘爲錛侊紒錛夛紱

榪欐牱錛屽埄鐢ㄤ竴媯靛鉤琛℃爲鍔犱竴媯電嚎孌墊爲錛屽氨鍙互寰楀埌涓涓緢綆鍗曠殑鏂規硶浜嗭紙浠g爜閲忔槸鍙屽鉤琛℃爲鎴栧弻綰挎鏍戠殑涓鍗婂乏鍙籌級錛?br />
榪欓鐨勫惎紺烘槸錛屽湪瑙e喅鏁版嵁緇撴瀯緇熻綾婚鐨勬椂鍊欙紝鍒板簳閫夌敤浠涔堟牱鐨勬暟鎹粨鏋勶紝鏄湁璁茬┒鐨勶紝鍥犱負瀹冨皢鐩存帴褰卞搷鍒扮紪紼嬪鏉傚害銆備竴鑸潵璇達紝綰挎鏍戞瘮騫寵 鏍戝ソ鍐欙紝浣嗘槸瀵規湰棰樿岃█錛屽弻綰挎鏍戝弽鑰屼笉濡傚鉤琛℃爲鍔犵嚎孌墊爲濂藉啓錛岃繖鏄洜涓哄浜庡唴瀛樺潡浣跨敤騫寵 鏍戠淮鎶ゆ瘮浣跨敤綰挎鏍戠淮鎶ゆ洿濂姐傚湪浠ュ悗鍋氳繖縐嶉鐨勬椂鍊欙紝瑕佸鎯充竴涓嬶紝鎵懼埌綆渚挎柟娉曘?br />

Mato_No1 2012-11-25 14:54 鍙戣〃璇勮
]]>
綰挎鏍戞搷浣滄瀬鍝侀鈥斺擧DU2871http://www.shnenglu.com/MatoNo1/archive/2011/12/18/162313.htmlMato_No1Mato_No1Sun, 18 Dec 2011 00:58:00 GMThttp://www.shnenglu.com/MatoNo1/archive/2011/12/18/162313.htmlhttp://www.shnenglu.com/MatoNo1/comments/162313.htmlhttp://www.shnenglu.com/MatoNo1/archive/2011/12/18/162313.html#Feedback0http://www.shnenglu.com/MatoNo1/comments/commentRss/162313.htmlhttp://www.shnenglu.com/MatoNo1/services/trackbacks/162313.html鍘熼鍦板潃
榪欐槸涓閬撶嚎孌墊爲鎿嶄綔鐨勬瀬鍝侀錛屽洜涓哄畠鐨?涓搷浣滃垰濂借鐩栦簡綰挎鏍戞搷浣滈棶棰樼殑3縐嶅鐞嗘濊礬錛屽彲浠ヨ鏄妸綰挎鏍戞搷浣滅殑鍏ㄩ儴鍐呭閮藉寘鍚繘鍘諱簡銆?br />
綰挎鏍戞槸涓縐嶉潤鎬佺殑鏁版嵁緇撴瀯錛屽洜涓轟竴媯電嚎孌墊爲涓鏃﹀緩鎴愶紝鍏跺艦鎬佸氨姘歌繙涓嶄細鍙戠敓鍙樺寲錛屾敼鍙樼殑浠呬粎鏄粨鐐逛笂璁板綍鐨勫悇縐嶄俊鎭殑鍊箋傚洜姝わ紝瀵逛簬綰挎鏍戞搷浣滐紝鏍稿績闂涔熷氨鏄浣曠淮鎶ゅ拰澶勭悊榪欎簺淇℃伅銆傛葷殑鏉ヨ錛屽浜庣嚎孌墊爲緇撶偣淇℃伅鐨勭淮鎶ゅ拰澶勭悊錛屾湁浠ヤ笅3縐嶅熀鏈濊礬錛?br />錛?錛夊乏鍙沖綊涓瀷錛?br />鎵璋撳乏鍙沖綊涓紝灝辨槸鐢ㄥ乏鍙沖瓙緇撶偣瀛樺偍鐨勪俊鎭潵寰楀埌鐖剁粨鐐瑰瓨鍌ㄧ殑淇℃伅鐨勫鹼紝榪欐槸鏈甯歌鐨勭嚎孌墊爲緇存姢鏂規硶銆備婦涓浜涚畝鍗曠殑渚嬪瓙錛氭瘮濡傜粨鐐圭殑SUM鍩熻〃紺鴻緇撶偣鍖洪棿涓婃墍鏈夊厓绱犵殑鍜岋紝閭d箞榪欎釜鍩熺淮鎶ょ殑鏂規硶灝辨槸“鐖剁粨鐐筍UM=宸﹀瓙緇撶偣SUM+鍙沖瓙緇撶偣SUM”錛屽啀姣斿緇撶偣鐨凪AX/MIN鍩熻〃紺鴻緇撶偣鍖洪棿涓婃墍鏈夊厓绱犵殑鏈澶?灝忓鹼紝閭d箞緇存姢鏂規硶灝辨槸“鐖剁粨鐐筂AX/MIN=max/min{宸﹀瓙緇撶偣MAX/MIN,鍙沖瓙緇撶偣MAX/MIN}”銆傝繖縐嶇淮鎶ゆ柟娉曚篃姣旇緝綆鍗曪紝鍙鍦ㄦ瘡嬈″瀛愮粨鐐硅繘琛屼慨鏀逛箣鍚巙pd涓涓嬪氨琛屼簡錛堝浜庨偅浜涜嚜欏跺悜涓嬮掑綊錛岃屼笖娑夊強鍒版敼鍊肩殑鎿嶄綔錛屽湪閫掑綊瀹屽乏鍙沖瓙緇撶偣鍚庝竴瀹氳璁板緱upd涓涓嬶級錛屽湪榪欎箣涓湁涓涓緢閲嶈鐨勬濇兂灝辨槸“宸﹀彸榪炵畫孌?#8221;鎬濇兂錛氬鏋滈鐩腑瑕佹眰浠繪剰涓涓尯闂村唴鐨勫叿鏈夋煇縐嶆ц川鐨勬渶闀跨殑榪炵畫搴忓垪錛堜篃灝辨槸瀛愬尯闂達級錛屾瘮濡傛渶闀胯繛緇笂鍗囧瓙搴忓垪銆?1鍊奸棶棰樹腑榪炵畫鐨?孌墊垨鑰呴潪0孌碉紙鍦ㄥ叿浣撻棶棰樹腑灝辨槸榪炵畫鐨勭┖闂叉鎴栬呭崰鐢ㄦ錛夌瓑錛屽彲浠ュ湪姣忎釜緇撶偣涓婄淮鎶や笁涓煙錛歭S銆乺S鍜孲錛屽垎鍒〃紺鴻緇撶偣鍖洪棿宸︾錛堜粠鍖洪棿鐨勬渶宸︾寮濮嬬殑錛夊叿鏈夎繖縐嶆ц川鐨勬渶闀胯繛緇簭鍒楃殑闀垮害錛岃緇撶偣鍖洪棿鍙崇錛堝埌鍖洪棿鐨勬渶鍙崇緇撴潫鐨勶級鍏鋒湁榪欑鎬ц川鐨勬渶闀胯繛緇簭鍒楃殑闀垮害鍜岃鍖洪棿鍐呭叿鏈夎繖縐嶆ц川鐨勬渶闀胯繛緇簭鍒楃殑闀垮害錛堜篃灝辨槸瑕佹眰鐨勯偅涓笢涓滐級錛屽垯緇存姢鏂規硶涓?#8220;鐖剁粨鐐筶S=宸﹀瓙緇撶偣lS錛堝乏瀛愮粨鐐筶S<宸﹀瓙緇撶偣len錛夋垨宸﹀瓙緇撶偣len+鍙沖瓙緇撶偣lS錛堝乏瀛愮粨鐐筶S=宸﹀瓙緇撶偣len錛夛紝鐖剁粨鐐箁S綾諱技錛岀埗緇撶偣S=max{宸﹀瓙緇撶偣S,鍙沖瓙緇撶偣S,宸﹀瓙緇撶偣rS+鍙沖瓙緇撶偣lS}”錛屾澶栵紝鐢變簬瑕佹眰鐨勮繖涓尯闂村彲鑳借鎷嗘垚澶氫釜榪炵畫鐨勭粨鐐瑰尯闂達紝鍥犳闇瑕佹寜欏哄簭鍚堝茍榪欎簺鍖洪棿錛屽悎騫剁殑鏂規硶鏄細璁劇珛S0鍜孲1錛孲0琛ㄧず涓嶄繚璇佽兘寤朵幾涓嬪幓鐨勫尯闂撮暱搴︼紝S0=涓婁竴涓尯闂寸殑S1+鏈尯闂寸殑lS錛汼1琛ㄧず鍙互寤朵幾涓嬪幓鐨勫尯闂撮暱搴︼紝S1=涓婁竴涓尯闂寸殑S1+鏈尯闂磍en錛堝鏋滄湰鍖洪棿鏁翠釜閮芥槸婊¤凍鏉′歡鐨勶紝鍗砈=len錛夋垨鏈尯闂寸殑rS錛堟湰鍖洪棿涓嶉兘鏄弧瓚蟲潯浠剁殑錛屽嵆S<len錛夛紝鍙栬繃紼嬩腑鎵鏈塖0鍜屽尯闂碨鐨勬渶澶у煎嵆涓虹粨鏋溿?br />鍦℉DU2871涓紝搴旂敤宸﹀彸褰掍腑鐨勬柟娉曠淮鎶ょ殑淇℃伅灝辨槸“鏈闀胯繛緇┖闂叉”鐨勯暱搴︼紝New鎿嶄綔闇瑕侊紱

錛?錛夎皟鏁磋竟鐣屽瀷錛?br />鑰冭檻榪欐牱涓涓棶棰橈細鐜板湪瑕佹彃鍏ャ佸垹闄や竴浜沎0, 100000)鐨勬暣鏁幫紝騫朵笖鍦ㄦ榪囩▼涓笉鏂闂K灝忕殑鏁存暟鏄灝戯紝鎬庝箞鍔烇紵騫寵 鏍戝彲浠ュ疄鐜幫紝浣嗙嚎孌墊爲鏄劇劧鏄洿濂界殑鏂規硶銆傚姣忎釜緇撶偣錛屽瓨鍌ㄤ竴涓狵0鍊艱〃紺轟綅浜庤緇撶偣鍖洪棿鍐呯殑鏁存暟鐨勪釜鏁幫紝鍒欐煡鎵劇K灝忕殑鏃跺欏彧闇瑕佷笉鏂墽琛屼互涓嬫搷浣滐細Kth(A, K)錛岃〃紺哄湪緇撶偣A浠h〃鐨勫尯闂村唴鎵劇K灝忕殑錛岀劧鍚庯紝鑻<=緇撶偣A鐨勫乏瀛愮粨鐐筀0鍊鹼紝鍒欐墽琛孠th(A鐨勫乏瀛愮粨鐐? K)錛屽惁鍒欐墽琛孠th(A鐨勫彸瀛愮粨鐐? K-A宸﹀瓙緇撶偣鐨凨0)錛堣繖鍜屽鉤琛℃爲紲炰技錛夛紝鐩村埌鎵懼埌鍙剁粨鐐逛負姝€傝繖縐嶆柟娉曠О涓?#8220;璋冩暣杈圭晫鍨?#8221;錛屽嵆闅忕潃緇撶偣娣卞叆錛屼笉鏂緝灝忥紙鑷《鍚戜笅錛夋垨鎵╁ぇ錛堣嚜搴曞悜涓婏級鑼冨洿錛屾渶鍚庢壘鍒扮粨鏋溿傚儚鎵劇K灝忚繖鏍風殑鎿嶄綔灞炰簬鑷《鍚戜笅鍨嬶紝鑰屽儚“鎵懼埌X鎵鍦ㄧ殑鍏鋒湁鏌愮鎬ц川鐨勬渶闀跨殑榪炵畫鍖洪棿”灝卞睘浜庤嚜搴曞悜涓婂瀷錛堟敞鎰忓拰鏈鐨凢ree涓嶄竴鏍鳳級錛?br />
錛?錛夋爣璁拌緟鍔╁瀷錛?br />榪欑緇存姢淇℃伅鐨勬柟娉曪紝鐗圭偣鏄埄鐢ㄦ爣璁版潵緇存姢淇℃伅錛屽嵆瀵逛簬鏌愪簺緇撶偣錛堜富瑕佹槸鍙剁粨鐐癸紝鍥犱負鍏舵爣璁頒笉鍐嶄笅鏀撅級錛岀洿鎺ヤ嬌鐢ㄦ爣璁版潵寰楀埌涓浜涙暟鎹紝姣斿瀵逛簬HDU2871榪欎竴棰橈紝鍏朵腑瀵逛簬鍙剁粨鐐逛綅浜庣殑鎻掑叆綰挎鐨勬爣鍙鳳紝浣跨敤鐨勫氨鏄爣璁般?br />
涓嬮潰鏄湰棰?涓搷浣滅殑鍏蜂綋瀹炵幇錛?br /><1>綰挎鏍戠粨鐐瑰畾涔夛細
鏈闇瑕佷袱媯電嚎孌墊爲錛岃繖鏄洜涓篘ew涓嶧ree鎿嶄綔瀵逛簬tot鍩燂紙鎻掑叆綰挎宸︾鐐圭殑鎬諱釜鏁幫級浼氶犳垚涓嶅悓鐨勫獎鍝嶏紝鍏蜂綋鏉ヨ錛屽湪New鎿嶄綔涓紝tot鍊間笉浼氳鍚屾椂鍔犱笂錛堥渶瑕佸彟澶栦竴涓搷浣滃姞涓婏級錛岀劧鑰屽湪Free鎿嶄綔涓紝tot鍊間細琚悓鏃舵竻絀猴紝榪欐牱灝變細瀵艱嚧鍦ㄥ鏌愪釜緇撶偣娓呯┖錛堣緇撶偣鍖呭惈鍦ㄦ煇涓狥ree鎿嶄綔瑕佹竻絀虹殑綰挎涓級騫舵墦涓?鏍囪涔嬪悗錛屽鏋滅揣鎺ョ潃鍙堟彃鍏ヤ竴鏉″寘鍚繖涓粨鐐瑰尯闂寸殑鏂扮嚎孌碉紝鍒欒繖涓粨鐐圭殑0鏍囪灝變細涓уけ錛岃繖鏍峰湪绱ф帴鐫涓嬩紶鐨勬椂鍊欙紝鍏跺瓙緇撶偣鐨則ot鍊煎氨涓嶄細琚竻絀猴紙浜嬪疄涓婂凡緇忚娓呯┖浜嗭級銆傛墍浠ワ紝灝唗ot鍩熷交搴曡漿縐誨埌鍙︿竴媯電嚎孌墊爲閲屻?
struct node {
    
int len, mr, lsc, rsc, sc;
} T[MAXN 
<< 2];
struct node0 {
    
int tot;
    
bool mr;
} T0[MAXN 
<< 2];
鍏朵腑lsc銆乺sc銆乻c灝辨槸榪炵畫絀洪棽孌電殑闀垮害錛堢敤宸﹀彸褰掍腑鐨勬柟娉曠淮鎶わ級錛宮r鏄竴涓暣浣撹祴鍊兼爣璁幫紝鍦═涓紝mr鐨勫艱嫢涓?1琛ㄧず鏃犳爣璁幫紙鏈鏁翠綋璧嬪鹼級錛岃嫢涓?琛ㄧず琚暣浣撴竻絀猴紝鑻ュぇ浜?琛ㄧず鏁翠綋琚竴鏉$嚎孌佃鐩栵紝mr鍊煎氨鏄繖鏉$嚎孌電殑緙栧彿錛堜負鍖哄垎涓嶅悓綰挎錛岃繖閲屾寜鐓ц緭鍏ラ『搴忓姣忎竴鏉ew鎿嶄綔鎻掑叆鐨勭嚎孌典互1銆?……緙栧彿錛夛紝鍦═0涓紝mr=1琛ㄧず鍦≧eset涓鏁翠綋娓呯┖錛宮r=0琛ㄧず鏃犳爣璁般?br /><2>鎿嶄綔澶勭悊錛?br />1)Reset鎿嶄綔錛氬皢T銆乀0鐨勬牴緇撶偣鎵撲笂娓呯┖鏍囪鍗沖彲錛?br />2)New錛氭秹鍙婂埌涓や釜鎿嶄綔錛屽垎鍒槸鎵炬渶宸︾殑闀垮害涓簒鐨勮繛緇┖闂叉錛屼互鍙婃彃鍏ヤ竴鏉$嚎孌點傚浜庡墠鑰咃紝鍙互鏍規嵁lsc銆乺sc銆乻c鐨勫鹼紝鎸夌収“鍏堝乏瀛愮粨鐐癸紝鍐嶈法瓚婁袱涓瓙緇撶偣錛屾渶鍚庡彸瀛愮粨鐐?#8221;鐨勯『搴忔眰寰楋紙璇﹁浠g爜錛夛紱瀵逛簬鍚庤呭氨涓嶇敤璇翠簡錛屽お瀹規槗瀹炵幇浜嗭紙娉ㄦ剰鏍囪鐨勫鐞嗕互鍙妘pd錛屽彟澶栬鎻掑叆涓涓猼ot錛夛紱
3)Free錛氫篃娑夊強涓や釜鎿嶄綔錛屽垎鍒槸鎵句竴涓偣x鎵鍦ㄧ殑綰挎錛堟彃鍏ヨ繃鐨勭嚎孌碉級闀垮害浠ュ強鍒犻櫎涓鏉$嚎孌碉紝瀵逛簬鍓嶈呭彲灝哊ew鎻掑叆榪囩殑鎵鏈夌嚎孌電殑宸﹀彸绔偣棰勫瓨璧鋒潵錛岀劧鍚庢壘鍒頒唬琛ㄥ尯闂碵x, x]鐨勭粨鐐圭殑mr鍊鹼紙涔熷氨鏄粨鐐箈琚紪鍙蜂負紲為┈鐨勭嚎孌佃鐩栵級錛屽啀鍦ㄩ瀛樼殑綰挎涓壘鍒板嵆鍙傚浜庡悗鑰咃紝鐩存帴娓呯┖鍗沖彲錛堜笉瑕佸湪T0涓墦鏍囪錛岃岃鍗曠嫭鍒犻櫎涓涓猼ot錛夛紱
4)Get錛氱洿鎺ュ埄鐢═0涓殑tot鎵懼埌絎琄灝忕殑鍊煎嵆鍙紱

浠g爜

Mato_No1 2011-12-18 08:58 鍙戣〃璇勮
]]>
鏁版嵁緇撴瀯澶嶄範棰樻眹鎬伙紙涓嶆柇鏇存柊涓級http://www.shnenglu.com/MatoNo1/archive/2011/07/23/151685.htmlMato_No1Mato_No1Fri, 22 Jul 2011 18:24:00 GMThttp://www.shnenglu.com/MatoNo1/archive/2011/07/23/151685.htmlhttp://www.shnenglu.com/MatoNo1/comments/151685.htmlhttp://www.shnenglu.com/MatoNo1/archive/2011/07/23/151685.html#Feedback0http://www.shnenglu.com/MatoNo1/comments/commentRss/151685.htmlhttp://www.shnenglu.com/MatoNo1/services/trackbacks/151685.html榪欓噷浜嗗洤錛岀11欏碉級
鍙互鍙戠幇鏈灝辨槸姹備竴涓瘮鐜噐ate錛屼嬌寰楃i涓漢錛堝鏋滅敤鐨勮瘽錛夊伐璧勪負rate*Qi錛屽茍涓旇繕瑕佹弧瓚充互涓嬩袱涓檺鍒舵潯浠訛細
錛?錛夋瘡浜虹殑鏈浣庡伐璧勯檺鍒訛細絎琲涓漢濡傛灉鐢ㄧ殑璇濓紝鏈塺ate*Qi>=Si錛屽嵆rate>=Si/Qi錛?br />錛?錛夋誨紑閿闄愬埗錛歳ate*鎵鏈夌敤鐨勪漢鐨凲鍊間箣鍜?lt;=W錛屽嵆鎵鏈夌敤鐨勪漢鐨凲鍊間箣鍜?lt;=W/rate銆?br />榪欐牱錛屽彲浠ュ厛灝嗘墍鏈変漢鎸夌収(S/Q)鐨勫奸掑鎺掑簭錛岀劧鍚庢灇涓鵑渶瑕佺敤鐨勬渶鍚庝竴涓漢錛堟帓搴忓悗鐨勶紝涔熷氨鏄疭/Q鍊兼渶澶х殑閭d釜浜猴級錛岃涓篿錛屽垯鎬昏姳璐規渶鐪佺殑鍋氭硶鏄劇劧鏄彇rate=Si/Qi銆傜劧鍚庢牴鎹紙2錛夊紡寰楀嚭“鎵鏈夌敤鐨勪漢鐨凲鍊間箣鍜?#8221;鐨勬渶澶у糤0=W/rate錛屽叾涓紝絎琲涓漢鏄繀欏昏鐢ㄧ殑錛屾晠灝哤0鍊煎厛鍑忓幓Qi錛堣嫢W0<Qi錛屽垯絎琲涓漢涓嶅彲浣跨敤錛夛紝鍓╀笅鐨勯棶棰樺氨鍙樻垚浜嗗湪絎?~(i-1)涓漢涓紙鎺掑簭鍚庣殑錛夐夊彇涓浜涗漢錛屼嬌寰椾粬浠殑Q鍊間箣鍜屼笉澶т簬W0錛屽茍涓旈夊彇鐨勪漢灝藉彲鑳藉銆傛樉鐒惰繖鍙互鐢ㄨ椽蹇冩潵瀹炵幇錛屽嵆閫夊彇Q鍊兼渶灝忕殑鑻ュ共涓漢銆傛帴涓嬫潵錛岀敱浜庨鐩腑N<=500000錛岃鏄庨渶瑕佺敤鏁版嵁緇撴瀯鏉ヤ紭鍖栵紝鍙槸Q鐨勪笂闄愬彧鏈?0000涓擰涓烘鏁存暟錛屽洜姝わ紝綰挎鏍戞槸鏈濂界殑閫夋嫨銆傚緩绔嬩竴媯佃〃紺篬1, 20000]鐨勭嚎孌墊爲錛屾瘡涓粨鐐瑰瓨鏀句袱涓澶栫殑鍊鹼細sz鍜宻um錛屽垎鍒〃紺篞鍊間綅浜庤緇撶偣浠h〃鐨勫尯闂村唴鐨勪漢鐨勬繪暟浠ュ強榪欎簺浜虹殑Q鍊兼誨拰銆傜劧鍚庯紝闇瑕佽В鍐充笂榪板瓙闂鏃訛紝浠庢牴緇撶偣寮濮嬭冨療緇撶偣鐨剆z鍊鹼紝涓嶆柇寰涓嬫壘鍗沖彲錛堣繖鏈夌偣鍍忓鉤琛℃爲鐨勬壘絎琄灝忕殑鎿嶄綔錛夈?br />鎬繪椂闂村鏉傚害錛歄(N * (log20000 + logN))錛堣繕鏈夋帓搴忕殑鏃墮棿錛?br />浠g爜

銆?銆?a title="RQNOJ469" >RQNOJ469
鍏堟寜鐓т換鎰忎竴縐嶅睘鎬э紙榪欓噷涓篈錛夐掑鎺掑簭錛岀劧鍚庢灇涓懼糹錛屾帓搴忓悗絎?浣崀絎琲浣嶇殑鍏ㄩ儴緇橝錛堢湅A灞炴э紝瀹冧滑涓瑼灞炴ф渶澶х殑涓瀹氭槸i錛夛紝鎺掑簭鍚庣(i+1)浣嶅強浠ュ悗鐨勶紝鐪嬪叾B銆丆涓ょ灞炴х殑澶у皬錛岃嫢B灞炴ф洿灝忓氨鐪婤灞炴э紝鑻灞炴ф洿灝忓氨鐪婥灞炴э紝鐒跺悗寰楀嚭涓ょ灞炴х殑鏈澶у煎嵆鍙傚洜姝ゅ彲浠ュ緱鍒頒笅闈㈢殑綆楁硶錛氬厛鎺掑簭錛岀劧鍚庡皢鎵鏈夌殑姣涚殑B鎴朇灞炴э紙鍝鏇村皬灝辯湅鍝錛夋彃鍏ュ鉤琛℃爲錛堣繖閲岄渶瑕佷袱媯靛鉤琛℃爲錛屼竴媯靛瓨鏀綛灞炴х殑鍊鹼紝涓媯靛瓨鏀綜灞炴х殑鍊鹼級錛岀劧鍚庨掑鏋氫婦i錛堟敞鎰廼=0鐨勬儏鍐典笉瑕佹紡鎺夛級錛屽皢絎琲浣嶇殑B鎴朇灞炴у湪騫寵 鏍戜腑鍒犻櫎錛岀劧鍚庢壘鍑轟袱媯靛鉤琛℃爲涓殑鏈澶у煎嵆鍙?br />浣嗘槸闇瑕佹敞鎰忎竴縐嶇壒孌婃儏鍐碉細鎵鏈夌殑姣涢兘鐪嬪悓涓涓睘鎬э紝姝ゆ椂鎸夌収涓婇潰鐨勭畻娉曞彲鑳芥眰涓嶅嚭鏈浼樿В錛屾瘮濡傦細
10 6 5
10 2 8
姝ゆ椂錛岀1涓狢灞炴ф洿灝忥紝絎?涓狟灞炴ф洿灝忥紝鑻ョ1涓湅C灞炴э紝絎?涓湅B灞炴э紝鍒欐誨拰涓?+2=7錛岃屽鏋滀袱涓兘鐪婤灞炴у垯鎬誨拰涓?銆傛鏃跺氨闇瑕佺壒鍒わ紙棰勫厛姹傚嚭涓夌灞炴т腑鐨勬渶澶у鹼級錛岀劧鍚庡啀鐢ㄤ笂闈㈢殑綆楁硶姹傝В錛屽氨鑳戒繚璇佹眰鍑烘渶浼樿В浜嗐?br />浠g爜

銆?銆?a title="PKU2985" >PKU2985
騫舵煡闆?騫寵 鏍戝熀鏈搷浣滐紝姘撮錛屼笉瑙i噴銆?br />浠g爜

銆?銆慔NOI2011 鎷彿鍖歸厤Brackets錛堢洰鍓嶅彲浠ョ湅榪欎釜甯栧瓙錛?br />Splay Tree緇存姢搴忓垪闂銆傚浜庝竴孌墊嫭鍙峰簭鍒桝[1..len]錛屽畾涔変紭鍏堢駭P[0..len]濡備笅錛?br />P[0]=0
P[i]=P[i-1]+1錛坕>0涓擜[i]涓哄乏鎷彿錛?br />P[i]=P[i-1]-1錛坕>0涓擜[i]涓哄彸鎷彿錛?br />鐒跺悗錛孲play Tree鐨勬瘡涓粨鐐歸渶瑕佽褰曚竴涓猌鍊煎拰M鍊鹼紝鍒嗗埆琛ㄧず璇ョ粨鐐逛唬琛ㄧ殑鎷彿搴忓垪涓渶鍚庝竴涓厓绱犵殑浼樺厛綰у拰浼樺厛綰ф渶灝忕殑鍏冪礌鐨勪紭鍏堢駭銆傚垯鍙互璇佹槑錛氳繖孌墊嫭鍙峰簭鍒楄皟鏁磋嚦騫寵 鑷沖皯闇瑕佹敼鍙樼殑鎷彿鏁扮洰涓?-M+K+1) / 2錛屽叾涓璌=Z+((-M+1)/2)*2錛堟敞鎰忚繖閲岀殑/鏄暣闄わ級錛屾澶栫敱浜庢湁swap鍜宨nvert涓や釜鎿嶄綔錛屽洜姝ら渶瑕佽褰昍M銆乀M銆丷TM鍊鹼紝鍒嗗埆琛ㄧず灝嗚鎷彿搴忓垪鎵цswap鎿嶄綔鍚庣殑搴忓垪鐨凪鍊箋佹墽琛宨nvert鎿嶄綔鍚庣殑搴忓垪鐨凪鍊鹼紝浠ュ強鍚屾椂鎵цswap鍜宨nvert鎿嶄綔鍚庡簭鍒楃殑M鍊箋?br />涓嶈繃錛屾湰棰橀渶瑕佷弗閲嶆敞鎰忕殑鏄細铏界劧replace鎿嶄綔鐨勬爣璁幫紙浠g爜涓殑mk0錛変細瑕嗙洊鎺塻wap錛堜唬鐮佷腑鐨刴k1錛夊拰invert錛堜唬鐮佷腑鐨刴k2錛夋搷浣滅殑鏍囪錛屼絾鏄湪涓嬫斁鏍囪鐨勬椂鍊欙紝闇瑕佸涓夌鏍囪閫愪竴鍒ゆ柇錛宮k0鍜宮k1銆乵k2騫朵笉鏄笉鑳藉叡瀛樼殑錛佸洜涓烘湁鍙兘鍏堟墦涓妋k0鏍囪鍚庡啀鎵撲笂mk1鎴杕k2鏍囪銆?/strong>
鏈铏界劧鏄潤鎬佺殑錛屼絾浠嶇劧涓嶈兘浣跨敤綰挎鏍戯紝鍥犱負綰挎鏍戞棤娉曟敮鎸佹暣浣撶炕杞紙rev錛夋搷浣溿?br />浠g爜


Mato_No1 2011-07-23 02:24 鍙戣〃璇勮
]]>
綰挎鏍?鎵弿娉曡В鍐崇煩褰㈢殑闈㈢Н騫躲佸懆闀垮茍闂http://www.shnenglu.com/MatoNo1/archive/2011/07/02/149965.htmlMato_No1Mato_No1Sat, 02 Jul 2011 03:17:00 GMThttp://www.shnenglu.com/MatoNo1/archive/2011/07/02/149965.htmlhttp://www.shnenglu.com/MatoNo1/comments/149965.htmlhttp://www.shnenglu.com/MatoNo1/archive/2011/07/02/149965.html#Feedback0http://www.shnenglu.com/MatoNo1/comments/commentRss/149965.htmlhttp://www.shnenglu.com/MatoNo1/services/trackbacks/149965.html鐭╁艦鐨勯潰縐茍闂錛氬鉤闈笂鏈塏涓煩褰紝鍚勮竟鍧囧鉤琛屼簬鍧愭爣杞達紝姹傚畠浠鐩栫殑鎬婚潰縐紙閲嶅瑕嗙洊鐨勫彧璁′竴嬈★級銆?br />鐭╁艦鐨勫懆闀垮茍闂錛氬鉤闈笂鏈塏涓煩褰紝鍚勮竟鍧囧鉤琛屼簬鍧愭爣杞達紝姹傚畠浠鐩栧艦鎴愮殑澶氳竟褰㈢殑鍛ㄩ暱銆?br />
銆愮畻娉曘?br />闈㈢Н騫訛細
鍏堝皢鎵鏈夌煩褰㈢殑涓婅竟鐣屽拰涓嬭竟鐣屼綔涓烘按騫崇嚎孌佃褰曚笅鏉ワ紝騫跺鎵鏈夌煩褰㈢殑宸﹀彸杈圭晫瀵瑰簲鐨勬í鍧愭爣紱繪暎鍖栵紝璁劇鏁e寲鍚庢湁N涓í鍧愭爣錛屽垯涓棿鏈?N-1)孌點傚榪?N-1)孌靛緩绔嬬嚎孌墊爲錛堟敞鎰忥紝浠嶇劧鍜屾櫘閫氱嚎孌墊爲涓鏍鳳紝鏄弻闂尯闂達紝涓嶆槸緗戜笂璇寸殑涓寮涓闂級錛岀劧鍚庯紝鎸夌収綰靛潗鏍囬掑欏哄簭鎵弿鍓嶉潰璁板綍鐨勬按騫崇嚎孌碉紙璁炬湁M孌碉級錛屽姣忎竴孌碉紝濡傛灉鏄笂杈圭晫錛屾壘鍒板叾紱繪暎鍖栧悗鐨勮寖鍥達紙鍙渶鎵懼埌鍏跺乏鍙崇鐐圭鏁e寲鍚庣殑鍊糽銆乺錛屽垯瀵瑰簲鑼冨洿涓篬l, r-1]錛夛紝騫舵彃鍏ョ嚎孌礫l, r-1]錛屽惁鍒欙紙涓嬭竟鐣岋級錛屽垹闄ょ嚎孌礫l, r-1]銆傚啀鐒跺悗錛岀嚎孌墊爲涓殑姣忎釜緇撶偣闇瑕佽褰曡鍖洪棿鍐呯殑綰挎瑕嗙洊鐨勬婚暱搴en錛堣嫢璇ュ尯闂磋鏌愭潯灝氭湭鍒犻櫎鐨勭嚎孌墊暣浣撹鐩栵紝鍒檒en=鎬婚暱錛屽惁鍒檒en=宸﹀彸瀛愮粨鐐筶en涔嬪拰錛夛紝姣忔鎿嶄綔鍚庯紝绱姞闈㈢Н錛歍[root].len*璇ユ按騫崇嚎孌典笌涓嬩竴鏉℃按騫崇嚎孌電殑綰靛潗鏍囦箣宸?br />
鍛ㄩ暱騫訛細
綾諱技錛屽彧涓嶈繃鐢變簬緇勬垚鍛ㄩ暱鐨勭嚎孌墊湁姘村鉤鐨勪篃鏈夌珫鐩寸殑錛岀嚎孌墊爲緇撶偣瑕佽褰曠殑闄や簡len鎰忓榪樻湁涓涓猻s錛岃〃紺鴻綰挎瑕嗙洊鐨勭鐐規暟閲忋傚彟澶栬繕鏈塴r鍜宺r涓や釜bool鍊鹼紝鍒嗗埆琛ㄧず璇ョ嚎孌電殑宸︾鐐瑰拰鍙崇鐐規槸鍚﹁鏌愭潯鎻掑叆鐨勭嚎孌佃鐩栥傚垯T[x].ss = lch(T[x]).ss + rch(T[x]).ss - 2 * (lch(T[x]).rr && rch(T[x].lr))錛岃嫢璇ョ嚎孌佃鏁翠綋瑕嗙洊鍒橳[x].ss=2錛堜袱绔偣錛夈傛渶鍚庯紝榪欐寰楀埌鐨凾[root].len涓庝笂嬈″緱鍒扮殑T[root].len涔嬪樊鐨勭粷瀵瑰煎氨鏄按騫崇嚎孌電殑闀垮害錛孴[root].ss*綰靛潗鏍囦箣宸氨鏄珫鐩寸嚎孌電殑闀垮害銆?br />



Mato_No1 2011-07-02 11:17 鍙戣〃璇勮
]]>
綰挎鏍戝騫寵 鏍?鍙慨鏀圭殑鍖洪棿絎琄灝忛棶棰?/title><link>http://www.shnenglu.com/MatoNo1/archive/2011/06/27/149605.html</link><dc:creator>Mato_No1</dc:creator><author>Mato_No1</author><pubDate>Mon, 27 Jun 2011 13:53:00 GMT</pubDate><guid>http://www.shnenglu.com/MatoNo1/archive/2011/06/27/149605.html</guid><wfw:comment>http://www.shnenglu.com/MatoNo1/comments/149605.html</wfw:comment><comments>http://www.shnenglu.com/MatoNo1/archive/2011/06/27/149605.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/MatoNo1/comments/commentRss/149605.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/MatoNo1/services/trackbacks/149605.html</trackback:ping><description><![CDATA[鍦ㄦ病鏈変慨鏀規搷浣滄椂錛屽簲鐢ㄥ垝鍒嗘爲鍙互鍦∣(MlogN)鏃墮棿鍐呰В鍐蟲煡鎵懼尯闂寸K灝忕殑闂錛屼絾鏄湪寮曞叆淇敼錛堝皢鍘熷簭鍒椾腑鐨勬煇涓兼敼涓哄彟涓涓鹼級涔嬪悗錛屽垝鍒嗘爲灝變笉琛屼簡銆?br />榪欐椂錛岄渶瑕佹暟鎹粨鏋勮仈鍚堢殑鎬濇兂銆?br />鍙互瑙傚療涓涓嬶細<br />錛?錛夊尯闂存搷浣滐細浣跨敤綰挎鏍戯紱<br />錛?錛変慨鏀瑰鹼紙鍏跺疄鏄厛鍒犻櫎鍐嶆彃鍏ワ級鍜屾壘絎琄灝忥細浣跨敤騫寵 鏍戯紱<br />鐜板湪榪欎袱縐嶆搷浣滈兘鏈夛紝搴旇浣跨敤<span style="color: #ff0000"><strong>綰挎鏍?騫寵 鏍?/strong></span>錛?br />鍑嗙‘鏉ヨ鏄嚎孌墊爲濂楀鉤琛℃爲錛屽嵆瀵瑰師搴忓垪寤虹珛涓媯電嚎孌墊爲錛屽叾涓殑姣忎釜緇撶偣鍐呭涓媯靛璇ョ粨鐐圭杈栧尯闂村唴鐨勫鉤琛℃爲銆?br /><br /><1>緇撶偣綾誨瀷錛堢粨鏋勶級錛? <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff">struct</span><span style="color: #000000"> seg_node {<br />    </span><span style="color: #0000ff">int</span><span style="color: #000000"> l, r, mid, lch, rch, rt;<br />} T0[MAXN0];<br /></span><span style="color: #0000ff">struct</span><span style="color: #000000"> SBT_node {<br />    </span><span style="color: #0000ff">int</span><span style="color: #000000"> v, l, r, p, sz0, sz, mul;<br />} T[MAXN];<br /></span></div>鍏朵腑seg_node鏄嚎孌墊爲緇撶偣綾誨瀷錛孲BT_node鏄鉤琛℃爲(SBT)緇撶偣綾誨瀷銆傞渶瑕佹敞鎰忕殑鏄痵eg_node閲岄潰鐨剅t鍩燂紙root鐨勭緝鍐欙級錛屽畠鏄緇撶偣鍐呭鐨勫鉤琛℃爲鐨勬牴緇撶偣涓嬫爣绱㈠紩錛堝洜涓哄浜庝換鎰忎竴媯靛鉤琛℃爲錛屽彧瑕佺煡閬撲簡鍏舵牴緇撶偣灝卞彲浠ラ亶鍘嗘暣媯墊爲錛夈?br /><br /><2>寤烘爲錛?br />寤烘爲鏄嚎孌墊爲鍜屽鉤琛℃爲涓璧峰緩銆傚湪寤虹珛綰挎鏍戠粨鐐圭殑鏃跺欙紝鍏堝緩绔嬩竴媯電┖鐨勫鉤琛℃爲錛坮t鍩熺疆0錛夛紝鐒跺悗鍐嶅湪騫寵 鏍戦噷闈㈤愪釜鎻掑叆璇ョ粨鐐圭杈栧尯闂村唴鐨勬墍鏈夊厓绱犲嵆鍙紱<br /><br /><3>淇敼錛?br />淇敼鎿嶄綔瑕佹敞鎰忥細濡傛灉瑕佸皢A[x]錛圓涓哄師搴忓垪錛夌殑鍊間慨鏀逛負y錛屽垯闇瑕佽嚜欏跺悜涓嬮亶鍘嗘暣媯電嚎孌墊爲錛屽皢鎵鏈夊寘鍚簡A[x]鐨勭粨鐐瑰唴鐨勫鉤琛℃爲鍏ㄩ儴鎵ц“鍒犻櫎v=A[x]錛堣繖涓彲浠ラ氳繃鐪熸緇存姢涓涓簭鍒楀緱鍒幫級錛屽啀鎻掑叆y”鐨勬搷浣滐紱<br /><br /><4>鎵懼尯闂寸K灝忥細<br />榪欎釜鎿嶄綔鏋佸叾楹葷儲銆傞渶瑕佸熷姪浜屽垎銆?br />璁捐鍦ㄥ尯闂碵l, r]涓壘鍒扮K灝忋傞鍏堝皢[l, r]鎷嗗垎鎴愯嫢騫蹭釜綰挎鏍戠粨鐐癸紝鐒跺悗浜屽垎涓涓紉錛屽湪榪欎簺緇撶偣鐨勫鉤琛℃爲涓壘鍒皒鐨剅ank錛堣繖閲岀殑rank鎸囧鉤琛℃爲涓湁澶氬皯涓兼瘮x灝忥紝涓嶉渶瑕佸姞1錛夛紝鍔犺搗鏉ワ紝鏈鍚庡啀鍔?錛屽氨鏄痻鍦╗l, r]涓殑鎬誨悕嬈°傞棶棰樻槸錛岃[l..r]涓K灝忕殑鏁頒負v1錛岀(K+1)灝忕殑鏁頒負v2錛堝鏋滀笉瀛樺湪鐨勮瘽錛寁2=+∞錛夛紝鍒橻v1, v2)鍐呯殑鏁伴兘鏄?#8220;絎琄灝?#8221;鐨勩傚洜姝わ紝涓嶈兘浜屽垎鏁板瓧錛岃屽簲璇ヤ簩鍒嗗厓绱犮傝S[i]涓哄師搴忓垪涓i灝忕殑鏁幫紝浜屽垎i錛岀劧鍚庡湪鏍圭粨鐐圭殑騫寵 鏍戜腑鎵懼埌絎琲灝忕殑鍗充負S[i]錛屽啀姹傚叾鍚嶆錛岃繖鏍風洿鍒版壘鍒版誨悕嬈′負K鐨勫厓绱犱負姝€傞棶棰樿繕娌″畬錛屽簭鍒椾腑鍙兘鏈夊厓绱犵殑鍊肩浉鍚岋紝榪欐椂鍙兘姘歌繙涔熸壘涓嶅埌絎琄灝忕殑錛堟瘮濡傚簭鍒? 2 3 3 3 4 5錛孠=4錛岃嫢“搴忓垪涓瘮x灝忕殑鍏冪礌鎬繪暟+1”涓簒鐨勫悕嬈★紝鍒欐案榪滀篃鎵句笉鍒扮4灝忕殑錛夛紝鍥犳錛岃嫢榪欐牱姹傚嚭鐨?#8220;鍚嶆”灝忎簬絳変簬K錛岄兘搴旇灝嗕笅涓嬈$殑宸﹁竟鐣岃涓簃id鑰屼笉鏄?mid+1)錛岃?#8220;鍚嶆”澶т簬K鏃訛紝璇ュ厓绱犺偗瀹氫笉鏄K灝忕殑錛屾墍浠ヤ笅涓嬈″彸杈圭晫璁句負(mid-1)銆?br /><br />浠g爜錛堟湰鏈烘祴鏈鐚ョ悙鏁版嵁4s浠ュ唴錛屼氦鍒癦JU涓奣LE錛屼笉鐭ヤ負浠涔堬紝紲炵妵鎸囩偣涓涓嬶紝3x錛夛細 <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000">#include </span><span style="color: #000000"><</span><span style="color: #000000">iostream</span><span style="color: #000000">></span><span style="color: #000000"><br />#include </span><span style="color: #000000"><</span><span style="color: #000000">stdio.h</span><span style="color: #000000">></span><span style="color: #000000"><br /></span><span style="color: #0000ff">using</span><span style="color: #000000"> </span><span style="color: #0000ff">namespace</span><span style="color: #000000"> std;<br /></span><span style="color: #0000ff">#define</span><span style="color: #000000"> re(i, n) for (int i=0; i<n; i++)</span><span style="color: #000000"><br /></span><span style="color: #0000ff">#define</span><span style="color: #000000"> re3(i, l, r) for (int i=l; i<=r; i++)</span><span style="color: #000000"><br /></span><span style="color: #0000ff">const</span><span style="color: #000000"> </span><span style="color: #0000ff">int</span><span style="color: #000000"> MAXN0 </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">110000</span><span style="color: #000000">, MAXN </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">930000</span><span style="color: #000000">, INF </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">~</span><span style="color: #000000">0U</span><span style="color: #000000"> </span><span style="color: #000000">>></span><span style="color: #000000"> </span><span style="color: #000000">2</span><span style="color: #000000">;<br /></span><span style="color: #0000ff">struct</span><span style="color: #000000"> seg_node {<br />    </span><span style="color: #0000ff">int</span><span style="color: #000000"> l, r, mid, lch, rch, rt;<br />} T0[MAXN0];<br /></span><span style="color: #0000ff">struct</span><span style="color: #000000"> SBT_node {<br />    </span><span style="color: #0000ff">int</span><span style="color: #000000"> v, l, r, p, sz0, sz, mul;<br />} T[MAXN];<br /></span><span style="color: #0000ff">int</span><span style="color: #000000"> No0, No, n, root, rt0, a[MAXN0 </span><span style="color: #000000">>></span><span style="color: #000000"> </span><span style="color: #000000">1</span><span style="color: #000000">], b[MAXN0 </span><span style="color: #000000">>></span><span style="color: #000000"> </span><span style="color: #000000">1</span><span style="color: #000000">], l1, r1, len;<br /></span><span style="color: #0000ff">void</span><span style="color: #000000"> slc(</span><span style="color: #0000ff">int</span><span style="color: #000000"> _p, </span><span style="color: #0000ff">int</span><span style="color: #000000"> _c)<br />{<br />    T[_p].l </span><span style="color: #000000">=</span><span style="color: #000000"> _c; T[_c].p </span><span style="color: #000000">=</span><span style="color: #000000"> _p;<br />}<br /></span><span style="color: #0000ff">void</span><span style="color: #000000"> src(</span><span style="color: #0000ff">int</span><span style="color: #000000"> _p, </span><span style="color: #0000ff">int</span><span style="color: #000000"> _c)<br />{<br />    T[_p].r </span><span style="color: #000000">=</span><span style="color: #000000"> _c; T[_c].p </span><span style="color: #000000">=</span><span style="color: #000000"> _p;<br />}<br /></span><span style="color: #0000ff">void</span><span style="color: #000000"> upd(</span><span style="color: #0000ff">int</span><span style="color: #000000"> x)<br />{<br />    T[x].sz0 </span><span style="color: #000000">=</span><span style="color: #000000"> T[T[x].l].sz0 </span><span style="color: #000000">+</span><span style="color: #000000"> T[T[x].r].sz0 </span><span style="color: #000000">+</span><span style="color: #000000"> T[x].mul;<br />    T[x].sz </span><span style="color: #000000">=</span><span style="color: #000000"> T[T[x].l].sz </span><span style="color: #000000">+</span><span style="color: #000000"> T[T[x].r].sz </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">1</span><span style="color: #000000">;<br />}<br /></span><span style="color: #0000ff">void</span><span style="color: #000000"> lrot(</span><span style="color: #0000ff">int</span><span style="color: #000000"> x)<br />{<br />    </span><span style="color: #0000ff">int</span><span style="color: #000000"> y </span><span style="color: #000000">=</span><span style="color: #000000"> T[x].p; </span><span style="color: #0000ff">if</span><span style="color: #000000"> (y </span><span style="color: #000000">==</span><span style="color: #000000"> rt0) T[rt0 </span><span style="color: #000000">=</span><span style="color: #000000"> x].p </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">; </span><span style="color: #0000ff">else</span><span style="color: #000000"> {</span><span style="color: #0000ff">int</span><span style="color: #000000"> p </span><span style="color: #000000">=</span><span style="color: #000000"> T[y].p; </span><span style="color: #0000ff">if</span><span style="color: #000000"> (y </span><span style="color: #000000">==</span><span style="color: #000000"> T[p].l) slc(p, x); </span><span style="color: #0000ff">else</span><span style="color: #000000"> src(p, x);}<br />    src(y, T[x].l); slc(x, y); T[x].sz0 </span><span style="color: #000000">=</span><span style="color: #000000"> T[y].sz0; T[x].sz </span><span style="color: #000000">=</span><span style="color: #000000"> T[y].sz; upd(y);<br />}<br /></span><span style="color: #0000ff">void</span><span style="color: #000000"> rrot(</span><span style="color: #0000ff">int</span><span style="color: #000000"> x)<br />{<br />    </span><span style="color: #0000ff">int</span><span style="color: #000000"> y </span><span style="color: #000000">=</span><span style="color: #000000"> T[x].p; </span><span style="color: #0000ff">if</span><span style="color: #000000"> (y </span><span style="color: #000000">==</span><span style="color: #000000"> rt0) T[rt0 </span><span style="color: #000000">=</span><span style="color: #000000"> x].p </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">; </span><span style="color: #0000ff">else</span><span style="color: #000000"> {</span><span style="color: #0000ff">int</span><span style="color: #000000"> p </span><span style="color: #000000">=</span><span style="color: #000000"> T[y].p; </span><span style="color: #0000ff">if</span><span style="color: #000000"> (y </span><span style="color: #000000">==</span><span style="color: #000000"> T[p].l) slc(p, x); </span><span style="color: #0000ff">else</span><span style="color: #000000"> src(p, x);}<br />    slc(y, T[x].r); src(x, y); T[x].sz0 </span><span style="color: #000000">=</span><span style="color: #000000"> T[y].sz0; T[x].sz </span><span style="color: #000000">=</span><span style="color: #000000"> T[y].sz; upd(y);<br />}<br /></span><span style="color: #0000ff">void</span><span style="color: #000000"> maintain(</span><span style="color: #0000ff">int</span><span style="color: #000000"> x, </span><span style="color: #0000ff">bool</span><span style="color: #000000"> ff)<br />{<br />    </span><span style="color: #0000ff">int</span><span style="color: #000000"> z;<br />    </span><span style="color: #0000ff">if</span><span style="color: #000000"> (ff) {<br />        </span><span style="color: #0000ff">if</span><span style="color: #000000"> (T[T[T[x].r].r].sz </span><span style="color: #000000">></span><span style="color: #000000"> T[T[x].l].sz) {z </span><span style="color: #000000">=</span><span style="color: #000000"> T[x].r; lrot(z);}<br />        </span><span style="color: #0000ff">else</span><span style="color: #000000"> </span><span style="color: #0000ff">if</span><span style="color: #000000"> (T[T[T[x].r].l].sz </span><span style="color: #000000">></span><span style="color: #000000"> T[T[x].l].sz) {z </span><span style="color: #000000">=</span><span style="color: #000000"> T[T[x].r].l; rrot(z); lrot(z);} </span><span style="color: #0000ff">else</span><span style="color: #000000"> </span><span style="color: #0000ff">return</span><span style="color: #000000">;<br />    } </span><span style="color: #0000ff">else</span><span style="color: #000000"> {<br />        </span><span style="color: #0000ff">if</span><span style="color: #000000"> (T[T[T[x].l].l].sz </span><span style="color: #000000">></span><span style="color: #000000"> T[T[x].r].sz) {z </span><span style="color: #000000">=</span><span style="color: #000000"> T[x].l; rrot(z);}<br />        </span><span style="color: #0000ff">else</span><span style="color: #000000"> </span><span style="color: #0000ff">if</span><span style="color: #000000"> (T[T[T[x].l].r].sz </span><span style="color: #000000">></span><span style="color: #000000"> T[T[x].r].sz) {z </span><span style="color: #000000">=</span><span style="color: #000000"> T[T[x].l].r; lrot(z); rrot(z);} </span><span style="color: #0000ff">else</span><span style="color: #000000"> </span><span style="color: #0000ff">return</span><span style="color: #000000">;<br />    }<br />    maintain(T[z].l, </span><span style="color: #000000">0</span><span style="color: #000000">); maintain(T[z].r, </span><span style="color: #000000">1</span><span style="color: #000000">); maintain(z, </span><span style="color: #000000">0</span><span style="color: #000000">); maintain(z, </span><span style="color: #000000">1</span><span style="color: #000000">);<br />}<br /></span><span style="color: #0000ff">int</span><span style="color: #000000"> find(</span><span style="color: #0000ff">int</span><span style="color: #000000"> _v)<br />{<br />    </span><span style="color: #0000ff">int</span><span style="color: #000000"> i </span><span style="color: #000000">=</span><span style="color: #000000"> rt0, v0;<br />    </span><span style="color: #0000ff">while</span><span style="color: #000000"> (i) {<br />        v0 </span><span style="color: #000000">=</span><span style="color: #000000"> T[i].v;<br />        </span><span style="color: #0000ff">if</span><span style="color: #000000"> (_v </span><span style="color: #000000">==</span><span style="color: #000000"> v0) </span><span style="color: #0000ff">return</span><span style="color: #000000"> i; </span><span style="color: #0000ff">else</span><span style="color: #000000"> </span><span style="color: #0000ff">if</span><span style="color: #000000"> (_v </span><span style="color: #000000"><</span><span style="color: #000000"> v0) i </span><span style="color: #000000">=</span><span style="color: #000000"> T[i].l; </span><span style="color: #0000ff">else</span><span style="color: #000000"> i </span><span style="color: #000000">=</span><span style="color: #000000"> T[i].r;<br />    }<br />    </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">;<br />}<br /></span><span style="color: #0000ff">void</span><span style="color: #000000"> ins(</span><span style="color: #0000ff">int</span><span style="color: #000000"> _v)<br />{<br />    </span><span style="color: #0000ff">if</span><span style="color: #000000"> (</span><span style="color: #000000">!</span><span style="color: #000000">rt0) {<br />        T[</span><span style="color: #000000">++</span><span style="color: #000000">No].v </span><span style="color: #000000">=</span><span style="color: #000000"> _v; T[No].l </span><span style="color: #000000">=</span><span style="color: #000000"> T[No].r </span><span style="color: #000000">=</span><span style="color: #000000"> T[No].p </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">; T[No].sz0 </span><span style="color: #000000">=</span><span style="color: #000000"> T[No].sz </span><span style="color: #000000">=</span><span style="color: #000000"> T[No].mul </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">1</span><span style="color: #000000">; rt0 </span><span style="color: #000000">=</span><span style="color: #000000"> No;<br />    } </span><span style="color: #0000ff">else</span><span style="color: #000000"> {<br />        </span><span style="color: #0000ff">int</span><span style="color: #000000"> i </span><span style="color: #000000">=</span><span style="color: #000000"> rt0, j, v0;<br />        </span><span style="color: #0000ff">while</span><span style="color: #000000"> (</span><span style="color: #000000">1</span><span style="color: #000000">) {<br />            T[i].sz0</span><span style="color: #000000">++</span><span style="color: #000000">; v0 </span><span style="color: #000000">=</span><span style="color: #000000"> T[i].v;<br />            </span><span style="color: #0000ff">if</span><span style="color: #000000"> (_v </span><span style="color: #000000">==</span><span style="color: #000000"> v0) {T[i].mul</span><span style="color: #000000">++</span><span style="color: #000000">; </span><span style="color: #0000ff">return</span><span style="color: #000000">;} </span><span style="color: #0000ff">else</span><span style="color: #000000"> </span><span style="color: #0000ff">if</span><span style="color: #000000"> (_v </span><span style="color: #000000"><</span><span style="color: #000000"> v0) j </span><span style="color: #000000">=</span><span style="color: #000000"> T[i].l; </span><span style="color: #0000ff">else</span><span style="color: #000000"> j </span><span style="color: #000000">=</span><span style="color: #000000"> T[i].r;<br />            </span><span style="color: #0000ff">if</span><span style="color: #000000"> (j) i </span><span style="color: #000000">=</span><span style="color: #000000"> j; </span><span style="color: #0000ff">else</span><span style="color: #000000"> </span><span style="color: #0000ff">break</span><span style="color: #000000">;<br />        }<br />        T[</span><span style="color: #000000">++</span><span style="color: #000000">No].v </span><span style="color: #000000">=</span><span style="color: #000000"> _v; T[No].l </span><span style="color: #000000">=</span><span style="color: #000000"> T[No].r </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">; T[No].sz0 </span><span style="color: #000000">=</span><span style="color: #000000"> T[No].sz </span><span style="color: #000000">=</span><span style="color: #000000"> T[No].mul </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">1</span><span style="color: #000000">; </span><span style="color: #0000ff">if</span><span style="color: #000000"> (_v </span><span style="color: #000000"><</span><span style="color: #000000"> v0) slc(i, No); </span><span style="color: #0000ff">else</span><span style="color: #000000"> src(i, No);<br />        </span><span style="color: #0000ff">while</span><span style="color: #000000"> (i) {T[i].sz</span><span style="color: #000000">++</span><span style="color: #000000">; maintain(i, _v </span><span style="color: #000000">></span><span style="color: #000000"> T[i].v); i </span><span style="color: #000000">=</span><span style="color: #000000"> T[i].p;}<br />    }<br />}<br /></span><span style="color: #0000ff">void</span><span style="color: #000000"> del(</span><span style="color: #0000ff">int</span><span style="color: #000000"> x)<br />{<br />    </span><span style="color: #0000ff">if</span><span style="color: #000000"> (T[x].mul </span><span style="color: #000000">></span><span style="color: #000000"> </span><span style="color: #000000">1</span><span style="color: #000000">) {<br />        T[x].mul</span><span style="color: #000000">--</span><span style="color: #000000">;<br />        </span><span style="color: #0000ff">while</span><span style="color: #000000"> (x) {T[x].sz0</span><span style="color: #000000">--</span><span style="color: #000000">; x </span><span style="color: #000000">=</span><span style="color: #000000"> T[x].p;}<br />    } </span><span style="color: #0000ff">else</span><span style="color: #000000"> {<br />        </span><span style="color: #0000ff">int</span><span style="color: #000000"> l </span><span style="color: #000000">=</span><span style="color: #000000"> T[x].l, r </span><span style="color: #000000">=</span><span style="color: #000000"> T[x].r;<br />        </span><span style="color: #0000ff">if</span><span style="color: #000000"> (</span><span style="color: #000000">!</span><span style="color: #000000">l </span><span style="color: #000000">||</span><span style="color: #000000"> </span><span style="color: #000000">!</span><span style="color: #000000">r) {<br />            </span><span style="color: #0000ff">if</span><span style="color: #000000"> (x </span><span style="color: #000000">==</span><span style="color: #000000"> rt0) T[rt0 </span><span style="color: #000000">=</span><span style="color: #000000"> l </span><span style="color: #000000">+</span><span style="color: #000000"> r].p </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">; </span><span style="color: #0000ff">else</span><span style="color: #000000"> {<br />                </span><span style="color: #0000ff">int</span><span style="color: #000000"> p </span><span style="color: #000000">=</span><span style="color: #000000"> T[x].p; </span><span style="color: #0000ff">if</span><span style="color: #000000"> (x </span><span style="color: #000000">==</span><span style="color: #000000"> T[p].l) slc(p, l </span><span style="color: #000000">+</span><span style="color: #000000"> r); </span><span style="color: #0000ff">else</span><span style="color: #000000"> src(p, l </span><span style="color: #000000">+</span><span style="color: #000000"> r);<br />                </span><span style="color: #0000ff">while</span><span style="color: #000000"> (p) {T[p].sz0</span><span style="color: #000000">--</span><span style="color: #000000">; T[p].sz</span><span style="color: #000000">--</span><span style="color: #000000">; p </span><span style="color: #000000">=</span><span style="color: #000000"> T[p].p;}<br />            }<br />        } </span><span style="color: #0000ff">else</span><span style="color: #000000"> {<br />            </span><span style="color: #0000ff">int</span><span style="color: #000000"> i </span><span style="color: #000000">=</span><span style="color: #000000"> l, j;<br />            </span><span style="color: #0000ff">while</span><span style="color: #000000"> (j </span><span style="color: #000000">=</span><span style="color: #000000"> T[i].r) i </span><span style="color: #000000">=</span><span style="color: #000000"> j;<br />            T[x].v </span><span style="color: #000000">=</span><span style="color: #000000"> T[i].v; T[x].mul </span><span style="color: #000000">=</span><span style="color: #000000"> T[i].mul; </span><span style="color: #0000ff">int</span><span style="color: #000000"> p </span><span style="color: #000000">=</span><span style="color: #000000"> T[i].p; </span><span style="color: #0000ff">if</span><span style="color: #000000"> (i </span><span style="color: #000000">==</span><span style="color: #000000"> T[p].l) slc(p, T[i].l); </span><span style="color: #0000ff">else</span><span style="color: #000000"> src(p, T[i].l);<br />            </span><span style="color: #0000ff">while</span><span style="color: #000000"> (p) {upd(p); p </span><span style="color: #000000">=</span><span style="color: #000000"> T[p].p;}<br />        }<br />    }<br />}<br /></span><span style="color: #0000ff">int</span><span style="color: #000000"> Find_Kth(</span><span style="color: #0000ff">int</span><span style="color: #000000"> K)<br />{<br />    </span><span style="color: #0000ff">int</span><span style="color: #000000"> i </span><span style="color: #000000">=</span><span style="color: #000000"> rt0, s0, m0;<br />    </span><span style="color: #0000ff">while</span><span style="color: #000000"> (i) {<br />        s0 </span><span style="color: #000000">=</span><span style="color: #000000"> T[T[i].l].sz0; m0 </span><span style="color: #000000">=</span><span style="color: #000000"> T[i].mul;<br />        </span><span style="color: #0000ff">if</span><span style="color: #000000"> (K </span><span style="color: #000000"><=</span><span style="color: #000000"> s0) i </span><span style="color: #000000">=</span><span style="color: #000000"> T[i].l; </span><span style="color: #0000ff">else</span><span style="color: #000000"> </span><span style="color: #0000ff">if</span><span style="color: #000000"> (K </span><span style="color: #000000"><=</span><span style="color: #000000"> s0 </span><span style="color: #000000">+</span><span style="color: #000000"> m0) </span><span style="color: #0000ff">return</span><span style="color: #000000"> T[i].v; </span><span style="color: #0000ff">else</span><span style="color: #000000"> {K </span><span style="color: #000000">-=</span><span style="color: #000000"> s0 </span><span style="color: #000000">+</span><span style="color: #000000"> m0; i </span><span style="color: #000000">=</span><span style="color: #000000"> T[i].r;}<br />    }<br />}<br /></span><span style="color: #0000ff">int</span><span style="color: #000000"> rank(</span><span style="color: #0000ff">int</span><span style="color: #000000"> _v)<br />{<br />    </span><span style="color: #0000ff">int</span><span style="color: #000000"> i </span><span style="color: #000000">=</span><span style="color: #000000"> rt0, tot </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">, v0;<br />    </span><span style="color: #0000ff">while</span><span style="color: #000000"> (i) {<br />        v0 </span><span style="color: #000000">=</span><span style="color: #000000"> T[i].v;<br />        </span><span style="color: #0000ff">if</span><span style="color: #000000"> (_v </span><span style="color: #000000">==</span><span style="color: #000000"> v0) {tot </span><span style="color: #000000">+=</span><span style="color: #000000"> T[T[i].l].sz0; </span><span style="color: #0000ff">return</span><span style="color: #000000"> tot;} </span><span style="color: #0000ff">else</span><span style="color: #000000"> </span><span style="color: #0000ff">if</span><span style="color: #000000"> (_v </span><span style="color: #000000"><</span><span style="color: #000000"> v0) i </span><span style="color: #000000">=</span><span style="color: #000000"> T[i].l; </span><span style="color: #0000ff">else</span><span style="color: #000000"> {tot </span><span style="color: #000000">+=</span><span style="color: #000000"> T[T[i].l].sz0 </span><span style="color: #000000">+</span><span style="color: #000000"> T[i].mul; i </span><span style="color: #000000">=</span><span style="color: #000000"> T[i].r;}<br />    }<br />    </span><span style="color: #0000ff">return</span><span style="color: #000000"> tot;<br />}<br /></span><span style="color: #0000ff">int</span><span style="color: #000000"> mkt(</span><span style="color: #0000ff">int</span><span style="color: #000000"> l, </span><span style="color: #0000ff">int</span><span style="color: #000000"> r)<br />{<br />    T0[</span><span style="color: #000000">++</span><span style="color: #000000">No0].l </span><span style="color: #000000">=</span><span style="color: #000000"> l; T0[No0].r </span><span style="color: #000000">=</span><span style="color: #000000"> r; </span><span style="color: #0000ff">int</span><span style="color: #000000"> mid </span><span style="color: #000000">=</span><span style="color: #000000"> l </span><span style="color: #000000">+</span><span style="color: #000000"> r </span><span style="color: #000000">>></span><span style="color: #000000"> </span><span style="color: #000000">1</span><span style="color: #000000">; T0[No0].mid </span><span style="color: #000000">=</span><span style="color: #000000"> mid; rt0 </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">;<br />    re3(i, l, r) ins(a[i]); T0[No0].rt </span><span style="color: #000000">=</span><span style="color: #000000"> rt0;<br />    </span><span style="color: #0000ff">if</span><span style="color: #000000"> (l </span><span style="color: #000000"><</span><span style="color: #000000"> r) {</span><span style="color: #0000ff">int</span><span style="color: #000000"> No00 </span><span style="color: #000000">=</span><span style="color: #000000"> No0; T0[No00].lch </span><span style="color: #000000">=</span><span style="color: #000000"> mkt(l, mid); T0[No00].rch </span><span style="color: #000000">=</span><span style="color: #000000"> mkt(mid </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">1</span><span style="color: #000000">, r); </span><span style="color: #0000ff">return</span><span style="color: #000000"> No00;} </span><span style="color: #0000ff">else</span><span style="color: #000000"> {T0[No0].lch </span><span style="color: #000000">=</span><span style="color: #000000"> T0[No0].rch </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">; </span><span style="color: #0000ff">return</span><span style="color: #000000"> No0;}<br />}<br /></span><span style="color: #0000ff">void</span><span style="color: #000000"> fs(</span><span style="color: #0000ff">int</span><span style="color: #000000"> x)<br />{<br />    </span><span style="color: #0000ff">if</span><span style="color: #000000"> (x) {<br />        </span><span style="color: #0000ff">int</span><span style="color: #000000"> l0 </span><span style="color: #000000">=</span><span style="color: #000000"> T0[x].l, r0 </span><span style="color: #000000">=</span><span style="color: #000000"> T0[x].r;<br />        </span><span style="color: #0000ff">if</span><span style="color: #000000"> (l0 </span><span style="color: #000000">>=</span><span style="color: #000000"> l1 </span><span style="color: #000000">&&</span><span style="color: #000000"> r0 </span><span style="color: #000000"><=</span><span style="color: #000000"> r1) b[len</span><span style="color: #000000">++</span><span style="color: #000000">] </span><span style="color: #000000">=</span><span style="color: #000000"> T0[x].rt; </span><span style="color: #0000ff">else</span><span style="color: #000000"> </span><span style="color: #0000ff">if</span><span style="color: #000000"> (l0 </span><span style="color: #000000">></span><span style="color: #000000"> r1 </span><span style="color: #000000">||</span><span style="color: #000000"> r0 </span><span style="color: #000000"><</span><span style="color: #000000"> l1) </span><span style="color: #0000ff">return</span><span style="color: #000000">; </span><span style="color: #0000ff">else</span><span style="color: #000000"> {fs(T0[x].lch); fs(T0[x].rch);}<br />    }<br />}<br /></span><span style="color: #0000ff">void</span><span style="color: #000000"> C(</span><span style="color: #0000ff">int</span><span style="color: #000000"> x, </span><span style="color: #0000ff">int</span><span style="color: #000000"> _v)<br />{<br />    </span><span style="color: #0000ff">int</span><span style="color: #000000"> i </span><span style="color: #000000">=</span><span style="color: #000000"> root, l0, r0, mid0, v0 </span><span style="color: #000000">=</span><span style="color: #000000"> a[x], N;<br />    </span><span style="color: #0000ff">while</span><span style="color: #000000"> (i) {<br />        l0 </span><span style="color: #000000">=</span><span style="color: #000000"> T0[i].l; r0 </span><span style="color: #000000">=</span><span style="color: #000000"> T0[i].r; mid0 </span><span style="color: #000000">=</span><span style="color: #000000"> T0[i].mid; rt0 </span><span style="color: #000000">=</span><span style="color: #000000"> T0[i].rt;<br />        N </span><span style="color: #000000">=</span><span style="color: #000000"> find(v0); del(N); ins(_v); T0[i].rt </span><span style="color: #000000">=</span><span style="color: #000000"> rt0;<br />        </span><span style="color: #0000ff">if</span><span style="color: #000000"> (x </span><span style="color: #000000"><=</span><span style="color: #000000"> mid0) i </span><span style="color: #000000">=</span><span style="color: #000000"> T0[i].lch; </span><span style="color: #0000ff">else</span><span style="color: #000000"> i </span><span style="color: #000000">=</span><span style="color: #000000"> T0[i].rch;<br />    }<br />    a[x] </span><span style="color: #000000">=</span><span style="color: #000000"> _v;<br />}<br /></span><span style="color: #0000ff">int</span><span style="color: #000000"> Q(</span><span style="color: #0000ff">int</span><span style="color: #000000"> K)<br />{<br />    len </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">; fs(root);<br />    </span><span style="color: #0000ff">int</span><span style="color: #000000"> ls </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">1</span><span style="color: #000000">, rs </span><span style="color: #000000">=</span><span style="color: #000000"> n, mids, midv, tot;<br />    </span><span style="color: #0000ff">while</span><span style="color: #000000"> (ls </span><span style="color: #000000"><</span><span style="color: #000000"> rs) {<br />        mids </span><span style="color: #000000">=</span><span style="color: #000000"> ls </span><span style="color: #000000">+</span><span style="color: #000000"> rs </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">1</span><span style="color: #000000"> </span><span style="color: #000000">>></span><span style="color: #000000"> </span><span style="color: #000000">1</span><span style="color: #000000">; rt0 </span><span style="color: #000000">=</span><span style="color: #000000"> T0[root].rt; midv </span><span style="color: #000000">=</span><span style="color: #000000"> Find_Kth(mids);<br />        tot </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">1</span><span style="color: #000000">; re(i, len) {rt0 </span><span style="color: #000000">=</span><span style="color: #000000"> b[i]; tot </span><span style="color: #000000">+=</span><span style="color: #000000"> rank(midv);}<br />        </span><span style="color: #0000ff">if</span><span style="color: #000000"> (tot </span><span style="color: #000000"><=</span><span style="color: #000000"> K) ls </span><span style="color: #000000">=</span><span style="color: #000000"> mids; </span><span style="color: #0000ff">else</span><span style="color: #000000"> rs </span><span style="color: #000000">=</span><span style="color: #000000"> mids </span><span style="color: #000000">-</span><span style="color: #000000"> </span><span style="color: #000000">1</span><span style="color: #000000">;<br />    }<br />    rt0 </span><span style="color: #000000">=</span><span style="color: #000000"> T0[root].rt; </span><span style="color: #0000ff">return</span><span style="color: #000000"> Find_Kth(ls);<br />}<br /></span><span style="color: #0000ff">int</span><span style="color: #000000"> main()<br />{<br />    </span><span style="color: #0000ff">int</span><span style="color: #000000"> tests, m, x, y, K;<br />    </span><span style="color: #0000ff">char</span><span style="color: #000000"> ch;<br />    scanf(</span><span style="color: #000000">"</span><span style="color: #000000">%d</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">&</span><span style="color: #000000">tests);<br />    re(testno, tests) {<br />        scanf(</span><span style="color: #000000">"</span><span style="color: #000000">%d%d</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">&</span><span style="color: #000000">n, </span><span style="color: #000000">&</span><span style="color: #000000">m); No0 </span><span style="color: #000000">=</span><span style="color: #000000"> No </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">;<br />        re(i, n) scanf(</span><span style="color: #000000">"</span><span style="color: #000000">%d</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">&</span><span style="color: #000000">a[i]); ch </span><span style="color: #000000">=</span><span style="color: #000000"> getchar();<br />        root </span><span style="color: #000000">=</span><span style="color: #000000"> mkt(</span><span style="color: #000000">0</span><span style="color: #000000">, n </span><span style="color: #000000">-</span><span style="color: #000000"> </span><span style="color: #000000">1</span><span style="color: #000000">);<br />        re(i, m) {<br />            ch </span><span style="color: #000000">=</span><span style="color: #000000"> getchar();<br />            </span><span style="color: #0000ff">if</span><span style="color: #000000"> (ch </span><span style="color: #000000">==</span><span style="color: #000000"> </span><span style="color: #000000">'</span><span style="color: #000000">C</span><span style="color: #000000">'</span><span style="color: #000000">) {<br />                scanf(</span><span style="color: #000000">"</span><span style="color: #000000">%d%d%*c</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">&</span><span style="color: #000000">x, </span><span style="color: #000000">&</span><span style="color: #000000">y);<br />                C(</span><span style="color: #000000">--</span><span style="color: #000000">x, y);<br />            } </span><span style="color: #0000ff">else</span><span style="color: #000000"> {<br />                scanf(</span><span style="color: #000000">"</span><span style="color: #000000">%d%d%d%*c</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">&</span><span style="color: #000000">l1, </span><span style="color: #000000">&</span><span style="color: #000000">r1, </span><span style="color: #000000">&</span><span style="color: #000000">K);<br />                l1</span><span style="color: #000000">--</span><span style="color: #000000">; r1</span><span style="color: #000000">--</span><span style="color: #000000">; printf(</span><span style="color: #000000">"</span><span style="color: #000000">%d\n</span><span style="color: #000000">"</span><span style="color: #000000">, Q(K));<br />            }<br />        }<br />    }<br />    </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">;<br />}<br /></span></div><img src ="http://www.shnenglu.com/MatoNo1/aggbug/149605.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/MatoNo1/" target="_blank">Mato_No1</a> 2011-06-27 21:53 <a href="http://www.shnenglu.com/MatoNo1/archive/2011/06/27/149605.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>銆怤OI2005 緇存姢鏁板垪(sequence)銆慡play Tree澶勭悊搴忓垪闂http://www.shnenglu.com/MatoNo1/archive/2011/06/21/149121.htmlMato_No1Mato_No1Tue, 21 Jun 2011 08:06:00 GMThttp://www.shnenglu.com/MatoNo1/archive/2011/06/21/149121.htmlhttp://www.shnenglu.com/MatoNo1/comments/149121.htmlhttp://www.shnenglu.com/MatoNo1/archive/2011/06/21/149121.html#Feedback0http://www.shnenglu.com/MatoNo1/comments/commentRss/149121.htmlhttp://www.shnenglu.com/MatoNo1/services/trackbacks/149121.html銆愬師棰樿榪欓噷銆?br />鏈鏄疭play Tree澶勭悊搴忓垪闂錛堜篃灝辨槸褰撶嚎孌墊爲鐢級鐨勪竴涓吀鍨嬩緥棰樸?br />
Splay Tree涔嬫墍浠ュ彲浠ュ綋綰挎鏍戠敤錛屾槸鍥犱負瀹冨彲浠ユ敮鎸佷竴涓簭鍒楋紝鐒跺悗鐢?#8220;宸︾鍓嶈秼浼稿睍鍒版牴錛屽彸绔悗緇т幾灞曞埌鏍圭殑鍙沖瓙緇撶偣錛屽彇鏍圭殑鍙沖瓙緇撶偣鐨勫乏瀛愮粨鐐?#8221;榪欑浼稿睍鏂規硶錛屽涓涓簭鍒椾腑鐨勪竴鏁存榪涜鏁翠綋鎿嶄綔銆傜敱浜庤闃叉鍑虹幇鍓嶈秼鎴栧悗緇т笉瀛樺湪鐨勬儏鍐碉紝闇瑕佸湪榪欎釜搴忓垪鐨勪袱绔姞鍏ヤ袱涓竟鐣岀粨鐐癸紝瑕佹眰鍏跺間笉鑳藉獎鍝嶅埌緇撶偣鍚勭璁拌澆淇℃伅鐨勭淮鎶わ紙澶氬彇0銆?#8734;鎴?∞錛夈傝繖涓や釜杈圭晫緇撶偣鍦ㄦ爲涓案榪滃瓨鍦紝涓嶄細琚垹闄ゃ?br />
錛?錛夌粨鐐圭殑寮曠敤錛?br />鍦ㄥ綋綰挎鏍戠敤鐨凷play Tree涓紝鐪熸鐨勫叧閿瓧鏄笅鏍囪屼笉鏄鹼紝鍥犳錛?#8220;搴忓垪涓i涓粨鐐?#8221;瀹為檯涓婂搴旂殑鏄?#8220;鏍戜腑絎?i+1)灝忕殑緇撶偣”錛堝洜涓哄乏杈硅繕鏈変竴涓竟鐣岀粨鐐癸級錛岃繖灝辮鏄庡湪瀵圭粨鐐瑰紩鐢ㄦ椂闇瑕佹壘絎琄灝忕殑鎿嶄綔銆傚洜姝わ紝涓嬮潰鐨?#8220;緇撶偣x”鎸囩殑鏄?#8220;鏍戜腑絎?x+1)灝忕殑緇撶偣”銆?br />錛?錛夋爣璁幫細
鍦ㄧ嚎孌墊爲涓紝濡傛灉瀵逛竴涓粨鐐規墍琛ㄧず鐨勭嚎孌墊暣浣撹繘琛屼簡鏌愮鎿嶄綔錛岄渶瑕佸湪榪欎釜緇撶偣涓婃墦涓婁竴涓爣璁幫紝鍦ㄤ笅涓嬈″啀鎵懼埌榪欎釜緇撶偣鏃訛紝鍏舵爣璁板氨浼氫笅鏀懼埌鍏朵袱涓瓙緇撶偣涓娿傚湪Splay Tree涓篃鍙互寮曞叆鏍囪銆傛瘮濡傝瀵筟2, 6]榪欎竴孌佃繘琛屾暣浣撴搷浣滐紝灝卞皢緇撶偣1浼稿睍鍒版牴鐨勪綅緗紝灝嗙粨鐐?浼稿睍鍒版牴鐨勫彸瀛愭爲鐨勪綅緗紝鐒跺悗緇撶偣7鐨勫乏瀛愭爲灝辮〃紺篬2, 6]榪欎竴孌碉紝瀵硅繖媯靛瓙鏍戠殑鏍圭粨鐐規墦涓婃爣璁板茍绔嬪嵆鐢熸晥錛堝繀欏繪槸绔嬪嵆鐢熸晥錛岃屼笉鏄瓑涓嬩竴嬈″紩鐢ㄥ啀鐢熸晥錛夛紝涔熷氨鏄珛鍗蟲敼鍙樿緇撶偣璁板綍鐨勪竴浜涗俊鎭殑鍊箋傚鏋滀笅嬈″啀嬈″紩鐢ㄥ埌榪欎釜緇撶偣錛屽氨瑕佸皢鍏舵爣璁頒笅鏀懼埌鍏朵袱涓瓙緇撶偣澶勶紱
闇瑕佹敞鎰忕殑涓鐐規槸錛屽鏋滆浼稿睍鏌愪釜緇撶偣x鍒皉鐨勫瓙緇撶偣鐨勪綅緗紝灝卞繀欏諱繚璇佷粠x鍘熸潵鐨勪綅緗埌r鐨勮繖涓瓙緇撶偣錛坸浼稿睍鍚庣殑浣嶇疆錛変笂鐨勬墍鏈夌粨鐐逛笂鍧囨病鏈夋爣璁幫紝鍚﹀垯灝變細瀵艱嚧鏍囪娣蜂貢銆傚洜姝わ紝蹇呴』棣栧厛鎵懼埌榪欎釜緇撶偣x錛屽湪姝よ繃紼嬩腑涓嶆柇涓嬫斁鏍囪銆?br />錛?錛夎嚜搴曞悜涓婄淮鎶ょ殑淇℃伅錛?br />鏍囪鍙互鐪嬫垚涓縐嶈嚜欏跺悜涓嬬淮鎶ょ殑淇℃伅銆傞櫎浜嗘爣璁頒互澶栵紝浣滀負“綰挎鏍?#8221;錛屽線寰榪樿緇存姢涓浜涜嚜搴曞悜涓婄淮鎶ょ殑淇℃伅銆傛瘮濡傚湪sequence榪欓涓紝灝辨湁lmax錛堝乏孌佃繛緇渶澶у拰錛夈乺max錛堝彸孌佃繛緇渶澶у拰錛夈乵idmax錛堝叏孌佃繛緇渶澶у拰錛変互鍙妔um錛堝叏孌墊誨拰錛夌瓑淇℃伅瑕佺淮鎶ゃ傚浜庤繖綾諱笢涓滃叾瀹炰篃寰堝ソ鍔烇紝鍥犱負瀛愭爲澶у皬錛坰z鍩燂級灝辨槸涓縐嶈嚜搴曞悜涓婄淮鎶ょ殑淇℃伅錛屽洜姝ゅ浜庤繖浜涗俊鎭彧瑕佹寜鐓х淮鎶z鍩熺殑鍔炴硶緇存姢鍗沖彲錛堢粺涓鍐欏湪upd鍑芥暟閲岋級銆傚敮涓鐨勪笉鍚岀偣鏄墦鏍囪鏃跺畠浠殑鍊煎彲鑳借鏀瑰彉銆?br />錛?錛夊榪炵畫鎻掑叆鐨勭粨鐐瑰緩鏍戯細
鏈鐨勬彃鍏ヤ笉鏄竴涓竴涓彃鍏ワ紝鑰屾槸涓涓嬪瓙鎻掑叆涓鏁存錛屽洜姝ら渶瑕佸厛灝嗗畠浠緩鎴愪竴媯墊爲銆備竴鑸緩鏍戞搷浣滈兘鏄掑綊鐨勶紝榪欓噷涔熶竴鏍楓傝鐩墠瑕佸A[l..r]寤烘爲錛圓涓哄緟鎻掑叆搴忓垪錛夛紝鑻>r鍒欓鍑猴紝鍚﹀垯鎵懼埌浣嶄簬涓棿鐨勫厓绱爉id = l + r >> 1錛屽皢A[mid]浣滄牴錛屽啀瀵笰[l..mid-1]寤哄乏瀛愭爲錛屽A[mid+1..r]寤哄彸瀛愭爲鍗沖彲銆傝繖鏍峰彲浠ヤ繚璇佷竴寮濮嬪緩鐨勫氨鏄竴媯靛鉤琛℃爲錛屽噺灝忓父鏁板洜瀛愩?br />錛?錛夊洖鏀剁┖闂達細
鏍規嵁鏈鐨勬暟鎹寖鍥存彁紺猴紝鎻掑叆鐨勭粨鐐規繪暟鏈澶氬彲鑳借揪鍒?000000錛屼絾鍦ㄤ換浣曟椂鍒繪爲涓渶澶氬彧鏈?00002涓粨鐐癸紙鍖呮嫭涓や釜杈圭晫錛夛紝姝ゆ椂涓轟簡鑺傜渷絀洪棿錛屽彲浠ラ噰鐢ㄥ驚鐜槦鍒楀洖鏀剁┖闂寸殑鏂規硶銆傚嵆錛氫竴寮濮嬪皢鎵鏈夌殑鍙敤絀洪棿錛堝彲鐢ㄤ笅鏍囷紝鏈涓?~500002錛夊瓨鍦ㄥ驚鐜槦鍒桻閲岋紝鍚屾椂璁劇珛澶村熬鎸囬拡front鍜宺ear錛屾瘡嬈″鏋滄湁鏂扮粨鐐規彃鍏ワ紝灝卞彇鍑篞[front]騫朵綔涓烘柊緇撶偣鐨勪笅鏍囷紝濡傛灉鏈夌粨鐐硅鍒犻櫎錛堟湰棰樻槸涓嬈″垹闄ゆ暣媯靛瓙鏍戯紝鍥犳鍦ㄥ垹闄ゅ悗闇瑕佸垎鍒洖鏀跺畠浠殑絀洪棿錛夛紝鍒欎粠rear寮濮嬶紝灝嗘瘡涓垹闄ょ殑緇撶偣鐨勪笅鏍囨斁鍥炲埌Q閲屻傚綋鐒訛紝榪欑鏂規硶鏄鐗虹壊涓瀹氱殑鏃墮棿鐨勶紝鍥犳鍦ㄧ┖闂翠笉鏄壒鍒悆绱х殑鎯呭喌涓嬩笉瑕佺敤銆?br />
銆?012騫?鏈?6鏃ユ洿鏂般?br />浠婂ぉ閲嶅啓sequence鐨勬椂鍊欙紝縐冪劧鍙戠幇鍔犲叆鐨勮竟鐣岀偣鍙兘浼氬lmax銆乺max銆乵idmax絳夌殑緇存姢閫犳垚褰卞搷錛氬綋搴忓垪涓墍鏈夌殑鍊奸兘鏄礋鏁版椂錛岃嫢杈圭晫鐐圭殑鍊艱涓?錛屽皢浣胯繖3涓間篃涓?錛屾墍浠ワ紝杈圭晫鐐圭殑鍊煎簲璁句負-INF錛堜笉浼氬獎鍝嶅埌sum錛屽洜涓哄彲浠ュ崟鐙皟鍑篬l, r]鐨剆um錛岄伩寮杈圭晫錛夈傝繖灝辮鏄庡茍闈炴墍鏈夎繖鏍風殑棰樹腑閮藉彲浠ヨ緗竟鐣岀偣錛堟瘮濡侶FTSC2011鐨勯偅棰樺氨涓嶈錛夛紝濡傛灉杈圭晫鐐逛細瀵圭淮鎶ょ殑淇℃伅閫犳垚褰卞搷錛屽氨涓嶈兘璁劇疆杈圭晫鐐癸紝鍦ㄥ悇涓搷浣滀腑錛屽垎4縐嶆儏鍐靛垽鏂傦紙浠g爜宸茬粡淇敼錛?br />
涓嬮潰涓婁唬鐮佷簡錛?
#include <iostream>
#include 
<stdio.h>
using namespace std;
#define re(i, n) for (int i=0; i<n; i++)
#define re1(i, n) for (int i=1; i<=n; i++)
const int MAXN = 500002, NOSM = -2000, INF = ~0U >> 2;
struct node {
    
int v, c[2], p, sz, sum, lmax, rmax, midmax, sm;
    
bool rev, d;
} T[MAXN 
+ 1];
int root, Q[MAXN + 1], front, rear, a[MAXN], len, res;
int max(int SS0, int SS1)
{
    
return SS0 >= SS1 ? SS0 : SS1;
}
int max(int SS0, int SS1, int SS2)
{
    
int M0 = SS0 >= SS1 ? SS0 : SS1; return M0 >= SS2 ? M0 : SS2;
}
void newnode(int n, int _v)
{
    T[n].v 
= T[n].sum = T[n].lmax = T[n].rmax = T[n].midmax = _v; T[n].c[0= T[n].c[1= 0; T[n].sz = 1; T[n].sm = NOSM; T[n].rev = 0;
}
void sc(int _p, int _c, bool _d)
{
    T[_p].c[_d] 
= _c; T[_c].p = _p; T[_c].d = _d;
}
void sm_opr(int x, int SM)
{
    T[x].sum 
= T[x].sz * SM;
    
if (SM > 0) T[x].lmax = T[x].rmax = T[x].midmax = T[x].sum; else T[x].lmax = T[x].rmax = T[x].midmax = SM;
}
void rev_opr(int x)
{
    
int c0 = T[x].c[0], c1 = T[x].c[1]; sc(x, c0, 1); sc(x, c1, 0);
    
int tmp = T[x].lmax; T[x].lmax = T[x].rmax; T[x].rmax = tmp;
}
void dm(int x)
{
    
int SM0 = T[x].sm;
    
if (SM0 != NOSM) {
        T[x].v 
= T[T[x].c[0]].sm = T[T[x].c[1]].sm = SM0; T[x].sm = NOSM;
        sm_opr(T[x].c[
0], SM0); sm_opr(T[x].c[1], SM0);
    }
    
if (T[x].rev) {
        T[T[x].c[
0]].rev = !T[T[x].c[0]].rev; T[T[x].c[1]].rev = !T[T[x].c[1]].rev; T[x].rev = 0;
        rev_opr(T[x].c[
0]); rev_opr(T[x].c[1]);
    }
}
void upd(int x)
{
    
int c0 = T[x].c[0], c1 = T[x].c[1];
    T[x].sz 
= T[c0].sz + T[c1].sz + 1;
    T[x].sum 
= T[c0].sum + T[c1].sum + T[x].v;
    T[x].lmax 
= max(T[c0].lmax, T[c0].sum + T[x].v + max(T[c1].lmax, 0));
    T[x].rmax 
= max(T[c1].rmax, max(T[c0].rmax, 0+ T[x].v + T[c1].sum);
    T[x].midmax 
= max(T[c0].midmax, T[c1].midmax, max(T[c0].rmax, 0+ T[x].v + max(T[c1].lmax, 0));
}
void rot(int x)
{
    
int y = T[x].p; bool d = T[x].d;
    
if (y == root) {root = x; T[root].p = 0;} else sc(T[y].p, x, T[y].d);
    sc(y, T[x].c[
!d], d); sc(x, y, !d); upd(y);
}
void splay(int x, int r)
{
    
int p; while ((p = T[x].p) != r) if (T[p].p == r) rot(x); else if (T[x].d == T[p].d) {rot(p); rot(x);} else {rot(x); rot(x);} upd(x);
}
int Find_Kth(int K)
{
    
int i = root, S0;
    
while (i) {
        dm(i); S0 
= T[T[i].c[0]].sz + 1;
        
if (K == S0) breakelse if (K < S0) i = T[i].c[0]; else {K -= S0; i = T[i].c[1];}
    }
    
return i;
}
int mkt(int l, int r)
{
    
if (l > r) return 0;
    
int n0 = Q[front], mid = l + r >> 1if (front == MAXN) front = 1else front++;
    newnode(n0, a[mid]); 
int l_r = mkt(l, mid - 1), r_r = mkt(mid + 1, r);
    sc(n0, l_r, 
0); sc(n0, r_r, 1); upd(n0); return n0;
}
void ins(int pos)
{
    
int P0 = Find_Kth(pos); splay(P0, 0); int P1 = Find_Kth(pos + 1); splay(P1, root); sc(P1, mkt(0, len - 1), 0); upd(P1); upd(P0);
}
void era(int x)
{
    
if (!x) return;
    
if (rear == MAXN) rear = 1else rear++; Q[rear] = x;
    era(T[x].c[
0]); era(T[x].c[1]);
}
void del(int l, int r)
{
    
int P0 = Find_Kth(l - 1); splay(P0, 0); int P1 = Find_Kth(r + 1); splay(P1, root); 
    
int root0 = T[P1].c[0]; sc(P1, 00); upd(P1); upd(P0); era(root0);
}
void mksame(int l, int r, int x)
{
    
int P0 = Find_Kth(l - 1); splay(P0, 0); int P1 = Find_Kth(r + 1); splay(P1, root); 
    
int n = T[P1].c[0]; T[n].sm = x; sm_opr(n, x); upd(P1); upd(P0);
}
void reve(int l, int r)
{
    
int P0 = Find_Kth(l - 1); splay(P0, 0); int P1 = Find_Kth(r + 1); splay(P1, root); 
    
int n = T[P1].c[0]; T[n].rev = !T[n].rev; rev_opr(n); upd(P1); upd(P0);
}
int get_sum(int l, int r)
{
    
int P0 = Find_Kth(l - 1); splay(P0, 0); int P1 = Find_Kth(r + 1); splay(P1, root); 
    
int n = T[P1].c[0]; return T[n].sum;
}
int max_sum()
{
    
return T[root].midmax;
}
void prepare()
{
    T[
0].sz = T[0].sum = T[0].lmax = T[0].rmax = T[0].midmax = 0;
    front 
= 3; rear = MAXN; re1(i, MAXN) Q[i] = i;
    newnode(
1-INF); newnode(2-INF); sc(121); root = 1; T[root].p = 0;
}
int main()
{
    freopen(
"sequence.in""r", stdin);
    freopen(
"sequence.out""w", stdout);
    prepare();
    
int m, l, r, x;
    scanf(
"%d%d"&len, &m); char ch = getchar(), str[1000];
    re(i, len) scanf(
"%d"&a[i]); ins(1);
    re(i, m) {
        scanf(
"%s", str);
        
if (!strcmp(str, "INSERT")) {scanf("%d%d"&l, &len); re(i, len) scanf("%d"&a[i]); ins(++l);}
        
if (!strcmp(str, "DELETE")) {scanf("%d%d"&l, &r); r += l++; del(l, r);}
        
if (!strcmp(str, "MAKE-SAME")) {scanf("%d%d%d"&l, &r, &x); r += l++; mksame(l, r, x);}
        
if (!strcmp(str, "REVERSE")) {scanf("%d%d"&l, &r); r += l++; reve(l, r);}
        
if (!strcmp(str, "GET-SUM")) {scanf("%d%d"&l, &r); r += l++; printf("%d\n", get_sum(l, r));}
        
if (!strcmp(str, "MAX-SUM")) printf("%d\n", max_sum());
        ch 
= getchar();
    }
    fclose(stdin); fclose(stdout);
    
return 0;
}

鏈鍚庢妸鎴戠殑榪欎釜浠g爜涓嶣YVoid紲炵妵鐨勬湰棰樹唬鐮佽繘琛屾祴璇曟瘮杈冿紝緇撴灉錛圔YVoid紲炵妵鐨勪唬鐮佽榪欓噷錛夛細

BYVoid紲炵妵鐨勶細


鏈矙鑼剁殑錛?br />

銆愮浉鍏寵鏂囥?br />

Mato_No1 2011-06-21 16:06 鍙戣〃璇勮
]]>
鍔ㄦ佸尯闂存渶澶у瓙搴忓拰闂鍙婃湁鍏蟲ā鍨?/title><link>http://www.shnenglu.com/MatoNo1/archive/2011/04/24/144901.html</link><dc:creator>Mato_No1</dc:creator><author>Mato_No1</author><pubDate>Sun, 24 Apr 2011 07:50:00 GMT</pubDate><guid>http://www.shnenglu.com/MatoNo1/archive/2011/04/24/144901.html</guid><wfw:comment>http://www.shnenglu.com/MatoNo1/comments/144901.html</wfw:comment><comments>http://www.shnenglu.com/MatoNo1/archive/2011/04/24/144901.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.shnenglu.com/MatoNo1/comments/commentRss/144901.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/MatoNo1/services/trackbacks/144901.html</trackback:ping><description><![CDATA[     鎽樿: 鍔ㄦ佸尯闂存渶澶у瓙搴忓拰闂銆愰棶棰樻弿榪般戠粰鍑轟竴涓簭鍒桝[0..N-1]鍜孧涓搷浣滐紝姣忎釜鎿嶄綔閮芥槸浠ヤ笅涓夌涔嬩竴錛氣憼錛氭煡璇㈠尯闂存渶澶у瓙搴忓拰鎿嶄綔鏍煎紡錛? l r琛ㄧず錛氭煡璇[l..r]鍐呯殑鏈澶у瓙搴忓拰錛堝氨鏄疉[l..r]鍐呯殑鍜屾渶澶х殑榪炵畫瀛愬簭鍒楃殑鍜岋級錛?<=l<=r<N錛涒憽錛氫慨鏀瑰崟涓兼搷浣滄牸寮忥細2 i x琛ㄧず錛氬皢A[i]鐨勫兼敼涓簒錛?<=i<N錛涒憿錛氫慨鏀規暣孌靛兼搷浣滄牸寮忥細3 l ...  <a href='http://www.shnenglu.com/MatoNo1/archive/2011/04/24/144901.html'>闃呰鍏ㄦ枃</a><img src ="http://www.shnenglu.com/MatoNo1/aggbug/144901.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/MatoNo1/" target="_blank">Mato_No1</a> 2011-04-24 15:50 <a href="http://www.shnenglu.com/MatoNo1/archive/2011/04/24/144901.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <a href="http://www.shnenglu.com/">青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品</a> <div style="position:fixed;left:-9000px;top:-9000px;"><font id="pjuwb"></font><button id="pjuwb"><pre id="pjuwb"></pre></button><sub id="pjuwb"></sub><tbody id="pjuwb"><var id="pjuwb"><address id="pjuwb"></address></var></tbody><listing id="pjuwb"><label id="pjuwb"><strong id="pjuwb"></strong></label></listing><wbr id="pjuwb"><small id="pjuwb"><tbody id="pjuwb"></tbody></small></wbr><ins id="pjuwb"><xmp id="pjuwb"></xmp></ins><style id="pjuwb"></style><label id="pjuwb"><em id="pjuwb"><li id="pjuwb"></li></em></label><samp id="pjuwb"></samp><menu id="pjuwb"><input id="pjuwb"></input></menu><pre id="pjuwb"><tbody id="pjuwb"><tfoot id="pjuwb"><button id="pjuwb"></button></tfoot></tbody></pre><form id="pjuwb"></form><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"><sup id="pjuwb"></sup></label></style></i><li id="pjuwb"><table id="pjuwb"><abbr id="pjuwb"></abbr></table></li><video id="pjuwb"></video><dfn id="pjuwb"></dfn><progress id="pjuwb"></progress><strong id="pjuwb"></strong><mark id="pjuwb"></mark><em id="pjuwb"></em><tbody id="pjuwb"><p id="pjuwb"><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike></p></tbody><option id="pjuwb"></option><strike id="pjuwb"></strike><u id="pjuwb"></u><td id="pjuwb"><center id="pjuwb"><tr id="pjuwb"></tr></center></td><em id="pjuwb"><mark id="pjuwb"><em id="pjuwb"><tt id="pjuwb"></tt></em></mark></em><strong id="pjuwb"></strong><wbr id="pjuwb"></wbr><s id="pjuwb"></s><strong id="pjuwb"></strong><legend id="pjuwb"></legend><nav id="pjuwb"></nav><dl id="pjuwb"><th id="pjuwb"><dl id="pjuwb"></dl></th></dl><noframes id="pjuwb"><ins id="pjuwb"></ins></noframes><font id="pjuwb"></font><strike id="pjuwb"><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"></label></style></i></strike><output id="pjuwb"></output><thead id="pjuwb"><pre id="pjuwb"></pre></thead><source id="pjuwb"></source><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem><pre id="pjuwb"><span id="pjuwb"><pre id="pjuwb"><big id="pjuwb"></big></pre></span></pre><cite id="pjuwb"><fieldset id="pjuwb"><s id="pjuwb"><rt id="pjuwb"></rt></s></fieldset></cite><big id="pjuwb"><progress id="pjuwb"><big id="pjuwb"></big></progress></big><samp id="pjuwb"><delect id="pjuwb"></delect></samp><dl id="pjuwb"></dl><strike id="pjuwb"><nav id="pjuwb"><dl id="pjuwb"><strong id="pjuwb"></strong></dl></nav></strike><tbody id="pjuwb"><b id="pjuwb"><optgroup id="pjuwb"><rp id="pjuwb"></rp></optgroup></b></tbody><em id="pjuwb"></em><xmp id="pjuwb"><blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote></xmp> <i id="pjuwb"><abbr id="pjuwb"><i id="pjuwb"><abbr id="pjuwb"></abbr></i></abbr></i><center id="pjuwb"><acronym id="pjuwb"><center id="pjuwb"></center></acronym></center><pre id="pjuwb"></pre><ul id="pjuwb"><thead id="pjuwb"></thead></ul><blockquote id="pjuwb"><pre id="pjuwb"><sup id="pjuwb"></sup></pre></blockquote><acronym id="pjuwb"></acronym><big id="pjuwb"><s id="pjuwb"></s></big><th id="pjuwb"></th><th id="pjuwb"></th><tbody id="pjuwb"></tbody><thead id="pjuwb"><strike id="pjuwb"></strike></thead><th id="pjuwb"><dl id="pjuwb"><wbr id="pjuwb"></wbr></dl></th><dl id="pjuwb"><strong id="pjuwb"></strong></dl><abbr id="pjuwb"><noframes id="pjuwb"><noscript id="pjuwb"></noscript></noframes></abbr><td id="pjuwb"><ol id="pjuwb"></ol></td><li id="pjuwb"><noscript id="pjuwb"><abbr id="pjuwb"></abbr></noscript></li><small id="pjuwb"><bdo id="pjuwb"><nav id="pjuwb"></nav></bdo></small><style id="pjuwb"></style><optgroup id="pjuwb"><table id="pjuwb"></table></optgroup><center id="pjuwb"><tr id="pjuwb"><dfn id="pjuwb"></dfn></tr></center><th id="pjuwb"></th><u id="pjuwb"></u><tfoot id="pjuwb"><legend id="pjuwb"><i id="pjuwb"></i></legend></tfoot><mark id="pjuwb"></mark><meter id="pjuwb"></meter><nav id="pjuwb"></nav><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><nobr id="pjuwb"></nobr><sub id="pjuwb"><th id="pjuwb"><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem></th></sub><thead id="pjuwb"><sub id="pjuwb"></sub></thead><ul id="pjuwb"><address id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></address></ul><dfn id="pjuwb"></dfn><pre id="pjuwb"></pre><input id="pjuwb"><cite id="pjuwb"><fieldset id="pjuwb"></fieldset></cite></input><u id="pjuwb"><form id="pjuwb"><u id="pjuwb"></u></form></u><kbd id="pjuwb"><em id="pjuwb"><mark id="pjuwb"></mark></em></kbd><tr id="pjuwb"></tr><del id="pjuwb"><form id="pjuwb"><address id="pjuwb"></address></form></del><tfoot id="pjuwb"><legend id="pjuwb"><ol id="pjuwb"><dl id="pjuwb"></dl></ol></legend></tfoot><menu id="pjuwb"><nobr id="pjuwb"><th id="pjuwb"><nobr id="pjuwb"></nobr></th></nobr></menu><fieldset id="pjuwb"></fieldset><pre id="pjuwb"><blockquote id="pjuwb"><samp id="pjuwb"></samp></blockquote></pre><xmp id="pjuwb"><sup id="pjuwb"><pre id="pjuwb"></pre></sup></xmp><span id="pjuwb"><progress id="pjuwb"></progress></span><font id="pjuwb"></font><var id="pjuwb"><abbr id="pjuwb"></abbr></var><strong id="pjuwb"><label id="pjuwb"><i id="pjuwb"><legend id="pjuwb"></legend></i></label></strong><tr id="pjuwb"><em id="pjuwb"><em id="pjuwb"><output id="pjuwb"></output></em></em></tr><thead id="pjuwb"><strike id="pjuwb"></strike></thead> <acronym id="pjuwb"></acronym><i id="pjuwb"></i><tt id="pjuwb"></tt><rt id="pjuwb"><source id="pjuwb"><rt id="pjuwb"></rt></source></rt><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike><del id="pjuwb"></del><font id="pjuwb"><output id="pjuwb"><ins id="pjuwb"><output id="pjuwb"></output></ins></output></font><kbd id="pjuwb"><tr id="pjuwb"><kbd id="pjuwb"></kbd></tr></kbd><pre id="pjuwb"><sup id="pjuwb"><delect id="pjuwb"><samp id="pjuwb"></samp></delect></sup></pre><samp id="pjuwb"></samp><track id="pjuwb"></track><tr id="pjuwb"></tr><center id="pjuwb"></center><fieldset id="pjuwb"></fieldset><i id="pjuwb"></i><td id="pjuwb"></td><rt id="pjuwb"></rt><object id="pjuwb"></object><pre id="pjuwb"><progress id="pjuwb"><sub id="pjuwb"><thead id="pjuwb"></thead></sub></progress></pre><kbd id="pjuwb"><tr id="pjuwb"><option id="pjuwb"></option></tr></kbd><output id="pjuwb"><ins id="pjuwb"></ins></output><ol id="pjuwb"></ol><source id="pjuwb"></source><strong id="pjuwb"></strong><ruby id="pjuwb"></ruby><sub id="pjuwb"><meter id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></meter></sub><pre id="pjuwb"></pre><center id="pjuwb"></center><tr id="pjuwb"><tbody id="pjuwb"><xmp id="pjuwb"><dd id="pjuwb"></dd></xmp></tbody></tr><video id="pjuwb"></video><pre id="pjuwb"></pre><form id="pjuwb"><optgroup id="pjuwb"></optgroup></form><samp id="pjuwb"></samp><kbd id="pjuwb"></kbd><strong id="pjuwb"><option id="pjuwb"></option></strong><object id="pjuwb"></object><abbr id="pjuwb"><noframes id="pjuwb"><abbr id="pjuwb"></abbr></noframes></abbr><ul id="pjuwb"><del id="pjuwb"><button id="pjuwb"><pre id="pjuwb"></pre></button></del></ul><abbr id="pjuwb"></abbr><strong id="pjuwb"><code id="pjuwb"><strong id="pjuwb"></strong></code></strong><option id="pjuwb"></option><optgroup id="pjuwb"><bdo id="pjuwb"><code id="pjuwb"></code></bdo></optgroup><mark id="pjuwb"><em id="pjuwb"><font id="pjuwb"></font></em></mark><acronym id="pjuwb"><code id="pjuwb"></code></acronym><dl id="pjuwb"></dl><em id="pjuwb"></em><object id="pjuwb"><input id="pjuwb"><object id="pjuwb"></object></input></object><output id="pjuwb"><dd id="pjuwb"></dd></output><option id="pjuwb"><button id="pjuwb"><option id="pjuwb"></option></button></option><small id="pjuwb"></small></div> <a href="http://1069024.com" target="_blank">亚洲调教视频在线观看</a>| <a href="http://pktether.com" target="_blank">国产精品日本欧美一区二区三区</a>| <a href="http://251aaa.com" target="_blank">亚洲视频久久</a>| <a href="http://feiniao168.com" target="_blank">亚洲一区二区精品在线</a>| <a href="http://yh5557.com" target="_blank">亚洲午夜精品国产</a>| <a href="http://hongmoyi.com" target="_blank">欧美一区二区在线播放</a>| <a href="http://yanuoxun.com" target="_blank">久久午夜激情</a>| <a href="http://100736.com" target="_blank">欧美日韩国产美女</a>| <a href="http://www-49hk.com" target="_blank">国产欧美日韩视频在线观看</a>| <a href="http://buyiker.com" target="_blank">麻豆精品网站</a>| <a href="http://ss2ssc.com" target="_blank">这里只有精品视频在线</a>| <a href="http://89wbw.com" target="_blank">亚洲一区欧美激情</a>| <a href="http://www-tk3333.com" target="_blank">欧美一区影院</a>| <a href="http://66gg6.com" target="_blank">亚洲国产99精品国自产</a>| <a href="http://jlhao123.com" target="_blank">日韩一级在线观看</a>| <a href="http://22400com.com" target="_blank">欧美一区二区三区在线观看视频 </a>| <a href="http://m72722.com" target="_blank">国产精品家庭影院</a>| <a href="http://555134.com" target="_blank">国产午夜精品视频免费不卡69堂</a>| <a href="http://xjksrbh.com" target="_blank">亚洲国产精品va在线看黑人动漫</a>| <a href="http://by1473.com" target="_blank">亚洲天堂av综合网</a>| <a href="http://710691.com" target="_blank">免费不卡在线观看av</a>| <a href="http://7811c.com" target="_blank">一区二区日本视频</a>| <a href="http://avicpharm.com" target="_blank">久久免费一区</a>| <a href="http://80hogo.com" target="_blank">国产精品视频免费观看www</a>| <a href="http://yunduaner.com" target="_blank">亚洲国产成人午夜在线一区</a>| <a href="http://7kz6.com" target="_blank">亚洲免费中文字幕</a>| <a href="http://www4848xx.com" target="_blank">欧美国产在线观看</a>| <a href="http://zhaosaofu.com" target="_blank">午夜欧美视频</a>| <a href="http://00000i.com" target="_blank">欧美日韩中文字幕</a>| <a href="http://sese912.com" target="_blank">亚洲人成在线播放</a>| <a href="http://l5076.com" target="_blank">久久综合久久综合九色</a>| <a href="http://kongtou8.com" target="_blank">亚洲最新在线</a>| <a href="http://wb2014.com" target="_blank">欧美fxxxxxx另类</a>| <a href="http://488f.com" target="_blank">国产一区二区三区最好精华液</a>| <a href="http://jzsp121.com" target="_blank">一区二区成人精品 </a>| <a href="http://tigerpowerinc.com" target="_blank">午夜精品亚洲</a>| <a href="http://wilcherish.com" target="_blank">亚洲国产第一</a>| <a href="http://e7w2.com" target="_blank">久久女同精品一区二区</a>| <a href="http://avtt59999.com" target="_blank">欧美午夜在线视频</a>| <a href="http://hakuihoso.com" target="_blank">91久久精品久久国产性色也91</a>| <a href="http://9niuw.com" target="_blank">久久国产视频网</a>| <a href="http://2061826.com" target="_blank">亚洲一区二区三区中文字幕在线</a>| <a href="http://477980.com" target="_blank">欧美国产一区二区在线观看</a>| <a href="http://tv-miya188.com" target="_blank">韩国女主播一区二区三区</a>| <a href="http://qimao360.com" target="_blank">亚洲视频在线看</a>| <a href="http://80hogo.com" target="_blank">亚洲国产欧美在线人成</a>| <a href="http://tsjcmm.com" target="_blank">久久人人爽爽爽人久久久</a>| <a href="http://by3180.com" target="_blank">国产午夜精品美女视频明星a级 </a>| <a href="http://www-ty177.com" target="_blank">欧美国产日本在线</a>| <a href="http://fsxinruiph.com" target="_blank">亚洲天天影视</a>| <a href="http://erzhuzi.com" target="_blank">欧美性做爰猛烈叫床潮</a>| <a href="http://www49773.com" target="_blank">亚洲无亚洲人成网站77777 </a>| <a href="http://z10669.com" target="_blank">久久综合狠狠综合久久综合88</a>| <a href="http://hbstjsgc.com" target="_blank">国产日韩欧美一区二区三区在线观看</a>| <a href="http://chenyirong.com" target="_blank">亚洲桃色在线一区</a>| <a href="http://4kmz.com" target="_blank">一区二区不卡在线视频 午夜欧美不卡在</a>| <a href="http://tefahsop.com" target="_blank">麻豆国产精品一区二区三区</a>| <a href="http://haomscq.com" target="_blank">精品动漫3d一区二区三区</a>| <a href="http://gmqgw.com" target="_blank">久久久久久电影</a>| <a href="http://www-72794.com" target="_blank">欧美怡红院视频一区二区三区</a>| <a href="http://baostat.com" target="_blank">国产精品一区二区久久久久</a>| <a href="http://www37999.com" target="_blank">狂野欧美一区</a>| <a href="http://btbt7086.com" target="_blank">欧美性做爰毛片</a>| <a href="http://cl5555.com" target="_blank">亚洲综合国产</a>| <a href="http://www-e2222.com" target="_blank">亚洲永久免费视频</a>| <a href="http://bocai01.com" target="_blank">国产午夜精品全部视频在线播放</a>| <a href="http://zd-jm.com" target="_blank">久久久97精品</a>| <a href="http://www-tt211.com" target="_blank">久久伊人精品天天</a>| <a href="http://sao320.com" target="_blank">亚洲精品日韩欧美</a>| <a href="http://tareandshare.com" target="_blank">日韩一区二区电影网</a>| <a href="http://shenduzhongcao.com" target="_blank">欧美三级精品</a>| <a href="http://9658888.com" target="_blank">久久精品视频在线观看</a>| <a href="http://ttdy20.com" target="_blank">久久亚洲私人国产精品va</a>| <a href="http://520844www.com" target="_blank">亚洲国产小视频</a>| <a href="http://sd-12530.com" target="_blank">亚洲精品永久免费</a>| <a href="http://97aixxxx.com" target="_blank">国产精品视频免费</a>| <a href="http://320ur.com" target="_blank">免费亚洲电影在线</a>| <a href="http://75pppp.com" target="_blank">欧美精品v国产精品v日韩精品</a>| <a href="http://ttzbdl.com" target="_blank">一区二区电影免费观看</a>| <a href="http://b46n.com" target="_blank">亚洲一区影院</a>| <a href="http://pron12.com" target="_blank">亚洲二区在线视频</a>| <a href="http://www308eee.com" target="_blank">99精品国产热久久91蜜凸</a>| <a href="http://xxxbobba.com" target="_blank">国产农村妇女精品一区二区</a>| <a href="http://yada-jg.com" target="_blank">老巨人导航500精品</a>| <a href="http://hzjqkj.com" target="_blank">欧美日本一区二区视频在线观看 </a>| <a href="http://820002.com" target="_blank">亚洲视频每日更新</a>| <a href="http://smdzs.com" target="_blank">香蕉久久一区二区不卡无毒影院</a>| <a href="http://5657hh.com" target="_blank">精品动漫3d一区二区三区</a>| <a href="http://889644.com" target="_blank">最新国产拍偷乱拍精品</a>| <a href="http://www901aaa.com" target="_blank">国产麻豆成人精品</a>| <a href="http://yhc26.com" target="_blank">欧美激情精品久久久久久久变态</a>| <a href="http://7kz6.com" target="_blank">欧美日韩直播</a>| <a href="http://cc1024.com" target="_blank">模特精品裸拍一区</a>| <a href="http://weixiao668.com" target="_blank">欧美亚州一区二区三区 </a>| <a href="http://wwwmiya118.com" target="_blank">洋洋av久久久久久久一区</a>| <a href="http://www35177.com" target="_blank">亚洲一区二区三区国产</a>| <a href="http://482896.com" target="_blank">亚洲国产精品一区二区第四页av </a>| <a href="http://899399com.com" target="_blank">亚洲制服少妇</a>| <a href="http://b476.com" target="_blank">免费久久精品视频</a>| <a href="http://1397h.com" target="_blank">久久国产福利国产秒拍</a>| <a href="http://ruichengxiang.com" target="_blank">欧美成人一区二区三区</a>| <a href="http://woshinannan741.com" target="_blank">欧美一区二区三区久久精品茉莉花 </a>| <a href="http://avtaobao7788.com" target="_blank">91久久嫩草影院一区二区</a>| <a href="http://www227ee.com" target="_blank">宅男噜噜噜66一区二区</a>| <a href="http://czhqwy.com" target="_blank">亚洲欧洲三级电影</a>| <a href="http://3bmmtv.com" target="_blank">久久精品2019中文字幕</a>| <a href="http://dadepaimai.com" target="_blank">亚洲一区二区三区高清不卡</a>| <a href="http://567acg.com" target="_blank">久久综合久久综合久久</a>| <a href="http://gg5gg.com" target="_blank">欧美一级黄色网</a>| <a href="http://wocao1997.com" target="_blank">欧美日韩在线播放一区二区</a>| <a href="http://sauske.com" target="_blank">久久综合九色综合网站</a>| <a href="http://www-733999.com" target="_blank">国产精品视频导航</a>| <a href="http://744734.com" target="_blank">99国产精品久久</a>| <a href="http://hkjccc.com" target="_blank">亚洲精品久久久久中文字幕欢迎你</a>| <a href="http://wyy66.com" target="_blank">亚洲欧美国产精品桃花</a>| <a href="http://86311ib.com" target="_blank">夜夜嗨av一区二区三区四季av </a>| <a href="http://567acg.com" target="_blank">久久高清一区</a>| <a href="http://1235656.com" target="_blank">国产精品久久久久久久久免费樱桃 </a>| <a href="http://ategpu.com" target="_blank">欧美日韩一区二区在线</a>| <a href="http://niu96.com" target="_blank">亚洲第一色在线</a>| <a href="http://tao62bao.com" target="_blank">国产欧美日韩在线</a>| <a href="http://universehb.com" target="_blank">亚洲乱亚洲高清</a>| <a href="http://88488848.com" target="_blank">亚洲国产日本</a>| <a href="http://qhzyxcd.com" target="_blank">久久亚裔精品欧美</a>| <a href="http://jdss777.com" target="_blank">欧美一区二区三区四区在线</a>| <a href="http://xjj733.com" target="_blank">麻豆精品精华液</a>| <a href="http://www19898.com" target="_blank">久久视频在线视频</a>| <a href="http://a718sx.com" target="_blank">国产日产欧美一区</a>| <a href="http://babylonmovi.com" target="_blank">亚洲在线观看</a>| <a href="http://5773000.com" target="_blank">欧美专区在线</a>| <a href="http://710477.com" target="_blank">国产亚洲午夜</a>| <a href="http://4545www.com" target="_blank">久久不射网站</a>| <a href="http://caopanjia.com" target="_blank">久久伊人一区二区</a>| <a href="http://50ud.com" target="_blank">在线成人黄色</a>| <a href="http://wy77777.com" target="_blank">久久久久久九九九九</a>| <a href="http://96ykm.com" target="_blank">久久久久久夜</a>| <a href="http://www35211.com" target="_blank">激情综合在线</a>| <a href="http://488089.com" target="_blank">久久综合中文字幕</a>| <a href="http://hkbsi.com" target="_blank">欧美成人中文字幕</a>| <a href="http://jldianda.com" target="_blank">亚洲国产精品va在线看黑人动漫</a>| <a href="http://hczztj.com" target="_blank">久久在线免费视频</a>| <a href="http://gzhachi.com" target="_blank">欧美激情一区二区三区全黄</a>| <a href="http://327099.com" target="_blank">亚洲精品免费一二三区</a>| <a href="http://yh5557.com" target="_blank">欧美人在线视频</a>| <a href="http://cp50088.com" target="_blank">在线午夜精品</a>| <a href="http://ategpu.com" target="_blank">久久国产天堂福利天堂</a>| <a href="http://598327.com" target="_blank">国产婷婷一区二区</a>| <a href="http://playav999.com" target="_blank">亚洲先锋成人</a>| <a href="http://uuuu30.com" target="_blank">欧美视频免费在线</a>| <a href="http://ybshg.com" target="_blank">亚洲永久精品大片</a>| <a href="http://pabjzz.com" target="_blank">欧美一区二区精品久久911</a>| <a href="http://aimashe.com" target="_blank">亚洲精品一区二区三</a>| <a href="http://854277.com" target="_blank">亚洲一区二区三区色</a>| <a href="http://www8xoy.com" target="_blank">欧美亚洲第一页</a>| <a href="http://9113c.com" target="_blank">亚洲伊人伊色伊影伊综合网</a>| <a href="http://628155.com" target="_blank">欧美一区三区三区高中清蜜桃</a>| <a href="http://www4411n.com" target="_blank">国产伦精品一区二区三区免费迷 </a>| <a href="http://aabbcc11.com" target="_blank">亚洲精品久久久久久久久久久久久</a>| <a href="http://rezel-zj.com" target="_blank">久久视频这里只有精品</a>| <a href="http://papala4444.com" target="_blank">欧美黑人一区二区三区</a>| <a href="http://www-236677.com" target="_blank">亚洲欧洲精品一区二区三区波多野1战4 </a>| <a href="http://edtxt.com" target="_blank">欧美日韩亚洲系列</a>| <a href="http://6666345.com" target="_blank">亚洲午夜激情网站</a>| <a href="http://848585.com" target="_blank">老色批av在线精品</a>| <a href="http://www311pi.com" target="_blank">亚洲人成毛片在线播放女女</a>| <a href="http://8888590.com" target="_blank">欧美成人中文字幕在线</a>| <a href="http://555346.com" target="_blank">亚洲美女精品成人在线视频</a>| <a href="http://czjrby.com" target="_blank">亚洲一区二区四区</a>| <a href="http://luluse882.com" target="_blank">国产欧美日韩不卡</a>| <a href="http://559dd.com" target="_blank">另类av导航</a>| <a href="http://sikixixw12.com" target="_blank">亚洲午夜一区二区三区</a>| <a href="http://jiajianpei.com" target="_blank">欧美xxxx在线观看</a>| <a href="http://551692.com" target="_blank">亚洲神马久久</a>| <a href="http://www-111111.com" target="_blank">久久国产综合精品</a>| <a href="http://mm910.com" target="_blank">一本色道久久综合亚洲精品高清 </a>| <a href="http://aqdav81.com" target="_blank">一本大道久久a久久精二百</a>| <a href="http://lingshidu.com" target="_blank">亚洲一区二区视频</a>| <a href="http://sfrecq.com" target="_blank">韩国女主播一区二区三区</a>| <a href="http://xss521.com" target="_blank">欧美精品二区三区四区免费看视频</a>| <a href="http://zhipiao998.com" target="_blank">一本色道久久综合狠狠躁篇的优点 </a>| <a href="http://tsjcmm.com" target="_blank">国内精品美女在线观看</a>| <a href="http://041935.com" target="_blank">欧美日本韩国</a>| <a href="http://avtaobao7788.com" target="_blank">久久久久久久高潮</a>| <a href="http://9niuw.com" target="_blank">亚洲欧美变态国产另类</a>| <a href="http://ehagakii.com" target="_blank">亚洲国产欧美日韩另类综合</a>| <a href="http://jxchunlong.com" target="_blank">久久成人资源</a>| <a href="http://492541.com" target="_blank">亚洲天堂激情</a>| <a href="http://340332.com" target="_blank">亚洲精品免费一二三区</a>| <a href="http://korean-edu.com" target="_blank">国内精品视频在线观看</a>| <a href="http://chengli88.com" target="_blank">欧美性片在线观看</a>| <a href="http://yytaotu.com" target="_blank">欧美精品电影</a>| <a href="http://www52y.com" target="_blank">欧美a级一区</a>| <a href="http://ww3838.com" target="_blank">久久青青草综合</a>| <a href="http://360inns.com" target="_blank">亚洲午夜黄色</a>| <a href="http://mmmm43.com" target="_blank">亚洲视频狠狠</a>| <a href="http://ccc159.com" target="_blank">亚洲图片在线观看</a>| <a href="http://ehagakii.com" target="_blank">亚洲精品久久久久久久久久久久久 </a>| <a href="http://shruhan.com" target="_blank">国产一区二区久久精品</a>| <a href="http://mm778899.com" target="_blank">欧美色欧美亚洲另类二区</a>| <a href="http://pmref.com" target="_blank">免费视频最近日韩</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>