锘??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美日韩综合在线免费观看,9久草视频在线视频精品,国产精品va在线播放http://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鍘熼鍦板潃
鏈矙鑼跺幓騫存浘緇忕敤鍙岀嚎孌墊爲鐨勬柟娉曟崏浜嗚繖棰橈紙璇﹁榪欓噷錛夛紝鏈榪戦噸鏂板瑙嗚繖棰樺彂鐜幫紝鍊熷姪騫寵 鏍戯紝鍙互寰楀埌鏇寸畝鍗曠殑鏂規(guī)硶銆?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鎿嶄綔錛屽彧闇瑕佸叏閮ㄤ綅緗敼涓嶅崰鐢ㄥ嵆鍙紙涓嶈兘閲嶆柊寤烘爲錛侊紒錛夛紱

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

Mato_No1 2012-11-25 14:54 鍙戣〃璇勮
]]>
鏁版嵁緇撴瀯澶嶄範棰樻眹鎬伙紙涓嶆柇鏇存柊涓級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釜浜猴級錛岃涓篿錛屽垯鎬昏姳璐規(guī)渶鐪佺殑鍋氭硶鏄劇劧鏄彇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 鍙戣〃璇勮
]]>
PKU3017http://www.shnenglu.com/MatoNo1/archive/2011/07/08/150454.htmlMato_No1Mato_No1Fri, 08 Jul 2011 04:40:00 GMThttp://www.shnenglu.com/MatoNo1/archive/2011/07/08/150454.htmlhttp://www.shnenglu.com/MatoNo1/comments/150454.htmlhttp://www.shnenglu.com/MatoNo1/archive/2011/07/08/150454.html#Feedback1http://www.shnenglu.com/MatoNo1/comments/commentRss/150454.htmlhttp://www.shnenglu.com/MatoNo1/services/trackbacks/150454.html銆愬師棰樿榪欓噷銆?br />
鏈矙鑼惰榪囩殑鏈鐚ョ悙鐨凞P棰樺晩鍟婂晩鍟婂晩鍟婂晩鍟婂晩鍟婂晩鍟婂晩鍟婂晩鍟婂晩鍟婂晩鍟?#8230;…

璁綟[i]涓哄皢A[1..i]鎷嗗垎鎴愯嫢騫叉鐨勬渶澶у兼渶灝忓拰錛屽垯鏈?br />F[i]=min{F[j] + max[j+1, i]}錛圔[i]<=j<i錛夛紝鍏朵腑max[j+1, i]琛ㄧずA[j+1..i]涓殑鏈澶у鹼紝B[i]琛ㄧず浠巌鍚戝乏鏈榪滃彲浠ュ歡浼稿埌鍝噷錛堜篃灝辨槸婊¤凍SUM[x..i]<=m鐨勬渶灝忕殑x鍊鹼級銆侭鏁扮粍鍙互閫氳繃棰勫鐞嗗湪O(N)鏃墮棿鍐呭緱鍒般?br />杈圭晫錛欶[0]=0銆?br />
涓嬮潰鏄紭鍖栬繃紼嬨侸ZP紲炵妵鐨勮鏂囬噷闈㈠凡緇忓璇︾粏浜嗐傝繖閲屽彧鏄畝瑕佽鏄庝竴涓嬨?br />棣栧厛瀹規(guī)槗璇佹槑錛孎鏄崟璋冮掑鐨勩?br />鐒跺悗涓涓緢鍏抽敭鐨勫畾鐞嗘槸錛?strong style="color: red">鑻[i]鐨勬渶浼樺喅絳栦負j錛屽垯鏈堿[j]>∀A[k]錛坖<k<=i錛夈?/strong>
璇佹槑錛氱敤鍙嶈瘉娉曘傝嫢A[j+1..i]涓瓨鍦ㄤ笉灝忎簬A[j]鐨勫鹼紝鍒欏彲寰梞ax[j..i]=max[j+1..i]錛屽張鍥犱負F鍗曡皟閫掑錛屾墍浠[j-1]+max[j..i]<=F[j]+max[j+1.i]錛屽嵆鍐崇瓥(j-1)涓瀹氫笉姣斿喅絳杍宸紝涔熷氨鏄喅絳杍涓嶅彲鑳芥垚涓烘渶浼樺喅絳栥?br />榪欐牱錛屽彲浠ョ淮鎶や竴涓笅鏍囦弗鏍奸掑銆丄鍊間弗鏍奸掑噺鐨勯槦鍒桻錛堝嵆瀵逛簬闃熷垪涓殑浠繪剰涓や釜鍏冪礌Q[i]鍜孮[j]錛岃嫢i<j錛屽垯Q[i].pos<Q[j].pos涓擜[Q[i].pos]>A[Q[j].pos]錛屽叿浣撳疄鐜版椂pos鍙渷鐣ワ級銆傚垯鍙兘鎴愪負鏈浼樺喅絳栫殑鍐崇瓥瑕佷箞鏄湪榪欎釜闃熷垪Q閲岋紝瑕佷箞鏄疊[i]銆傚浜庨槦鍒椾腑鐨勬煇涓喅絳朡[x]錛岃鍐崇瓥瀵煎嚭鐨勫間負F[Q[x]]+A[Q[x + 1]]錛堝緢瀹規(guī)槗璇佹槑max[Q[x]+1..i]=A[Q[x + 1]]錛夛紝鎵懼埌榪欎簺瀵煎嚭鐨勫間腑鐨勬渶灝忓煎嵆鍙紙娉ㄦ剰錛岄槦灝懼厓绱犳病鏈夊鍑哄鹼級銆傚浜庡喅絳朆[i]錛屽彧闇瑕佸湪棰勫鐞嗙殑鏃跺欏悓鏃跺緱鍒癕AX[i]=max[B[i]+1..i]鍗沖彲錛堜篃鍙互鍦∣(N)鏃墮棿鍐呭緱鍒幫級錛屽喅絳朆[i]瀵煎嚭鐨勫間負F[B[i]]+MAX[i]銆?br />鍦ㄥ垹闄ら槦棣栬繃鏃跺厓绱犵殑鏃跺欙紝闇瑕佹妸瀵煎嚭鍊間篃鍒犻櫎錛屽垹闄ら槦灝懼厓绱犱篃涓鏍鳳紝鎻掑叆鐨勬椂鍊欙紝鑻ユ彃鍏ュ墠闃熷垪涓嶄負絀猴紝鍒欓渶瑕佹彃鍏ヤ竴涓鍑哄箋備篃灝辨槸錛岄渶瑕佷竴涓敮鎸佸湪瀵規(guī)暟鏃墮棿鍐呰繘琛屾彃鍏ャ佸垹闄や換鎰忕粨鐐廣佹壘鏈灝忓肩瓑鎿嶄綔錛屾樉鐒剁敤騫寵 鏍戞渶濂姐?br />
娉ㄦ剰浜嬮」錛?br />錛?錛変笉綆℃槸鍦ㄩ槦棣栧垹闄よ繕鏄湪闃熷熬鍒犻櫎錛岃嫢鍒犻櫎鐨勬槸闃熷垪涓殑鏈鍚庝竴涓厓绱狅紝鍒欎笉闇瑕佸湪騫寵 鏍戜腑鍒犻櫎瀵煎嚭鍊鹼紱
錛?錛夋彃鍏ユ椂錛岃嫢鎻掑叆鍓嶉槦鍒椾負絀猴紝鍒欎笉闇瑕佸湪騫寵 鏍戜腑鎻掑叆瀵煎嚭鍊鹼紱
錛?錛夊湪璁$畻F[i]鏃訛紝搴斿厛灝嗗喅絳杋鍘嬪叆銆?br />
浠g爜錛?
#include <iostream>
#include 
<stdio.h>
using namespace std;
#define re1(i, n) for (int i=1; i<=n; i++)
const int MAXN = 100001;
struct node {
    
int l, r, p, sz0, sz, mul;
    
long long v;
} T[MAXN];
const long long INF = ~0Ull >> 2;
int n, N = 0, a[MAXN], b[MAXN], MAX[MAXN], Q[MAXN], front = 0, rear = -1, root = 0;
long long m, F[MAXN], res = 0;
void init()
{
    cin 
>> n >> m;
    re1(i, n) scanf(
"%d"&a[i]); a[0= ~0U >> 2;
}
void prepare()
{
    re1(i, n) 
if (a[i] > m) {res = -1return;}
    
int x = 1;
    
long long sum = 0;
    re1(i, n) {
        
for (sum+=a[i]; sum>m; sum-=a[x++]) ;
        b[i] 
= x - 1;
    }
    re1(i, n) {
        
for (; front<=rear && Q[front]<=b[i]; front++) ;
        
for (; front<=rear && a[Q[rear]]<=a[i]; rear--) ;
        Q[
++rear] = i; MAX[i] = a[Q[front]];
    }
}
void vst(int x)
{
    
if (x) {
        cout 
<< T[x].v << ' ';
        vst(T[x].l); vst(T[x].r);
    }
}
void slc(int _p, int _c)
{
    T[_p].l 
= _c; T[_c].p = _p;
}
void src(int _p, int _c)
{
    T[_p].r 
= _c; T[_c].p = _p;
}
void upd(int x)
{
    T[x].sz0 
= T[T[x].l].sz0 + T[T[x].r].sz0 + T[x].mul;
    T[x].sz 
= T[T[x].l].sz + T[T[x].r].sz + 1;
}
void lrot(int x)
{
    
int y = T[x].p;
    
if (y == root) T[root = x].p = 0else {int p = T[y].p; if (y == T[p].l) slc(p, x); else src(p, x);}
    src(y, T[x].l); slc(x, y); T[x].sz0 
= T[y].sz0; T[x].sz = T[y].sz; upd(y);
}
void rrot(int x)
{
    
int y = T[x].p;
    
if (y == root) T[root = x].p = 0else {int p = T[y].p; if (y == T[p].l) slc(p, x); else src(p, x);}
    slc(y, T[x].r); src(x, y); T[x].sz0 
= T[y].sz0; T[x].sz = T[y].sz; upd(y);
}
void maintain(int x, bool ff)
{
    
int z;
    
if (ff) {
        
if (T[T[T[x].r].r].sz > T[T[x].l].sz) {z = T[x].r; lrot(z);}
        
else if (T[T[T[x].r].l].sz > T[T[x].l].sz) {z = T[T[x].r].l; rrot(z); lrot(z);} else return;
    } 
else {
        
if (T[T[T[x].l].l].sz > T[T[x].r].sz) {z = T[x].l; rrot(z);}
        
else if (T[T[T[x].l].r].sz > T[T[x].r].sz) {z = T[T[x].l].r; lrot(z); rrot(z);} else return;
    }
    maintain(T[z].l, 
0); maintain(T[z].r, 1); maintain(z, 0); maintain(z, 1);
}
int find(long long _v)
{
    
int i = root;
    
long long v0;
    
while (i) {
        v0 
= T[i].v;
        
if (_v == v0) return i; else if (_v < v0) i = T[i].l; else i = T[i].r;
    }
    
return 0;
}
int Find_Kth(int K)
{
    
int i = root, s0, m0;
    
while (1) {
        s0 
= T[T[i].l].sz0; m0 = T[i].mul;
        
if (K <= s0) i = T[i].l; else if (K <= s0 + m0) return i; else {K -= s0 + m0; i = T[i].r;}
    }
}
void ins(long long _v)
{
    
if (!root) {
        T[
++N].v = _v; T[N].l = T[N].r = T[N].p = 0; T[N].sz0 = T[N].sz = T[N].mul = 1; root = N;
    } 
else {
        
int i = root, j;
        
long long v0;
        
while (1) {
            T[i].sz0
++; v0 = T[i].v;
            
if (_v == v0) {T[i].mul++return;} else if (_v < v0) j = T[i].l; else j = T[i].r;
            
if (j) i = j; else break;
        }
        T[
++N].v = _v; T[N].l = T[N].r = 0; T[N].sz0 = T[N].sz = T[N].mul = 1if (_v < v0) slc(i, N); else src(i, N);
        
while (i) {T[i].sz++; maintain(i, _v > T[i].v); i = T[i].p;}
    }
}
void del(int x)
{
    
if (T[x].mul > 1) {
        T[x].mul
--while (x) {T[x].sz0--; x = T[x].p;}
    } 
else {
        
int l = T[x].l, r = T[x].r, p;
        
if (l && r) {
            
int y; while (y = T[l].r) l = y;
            T[x].v 
= T[l].v; T[x].mul = T[l].mul; p = T[l].p;
            
if (l == T[p].l) slc(p, T[l].l); else src(p, T[l].l);
            
while (p) {upd(p); p = T[p].p;}
        } 
else {
            
if (x == root) T[root = l + r].p = 0else {p = T[x].p; if (x == T[p].l) slc(p, l + r); else src(p, l + r); while(p) {upd(p); p = T[p].p;}}
        }
    }
}
long long h(int x)
{
    
return F[Q[x]] + a[Q[x + 1]];
}
void solve()
{
    F[
0= 0; front = 0; rear = 0; Q[0= 0;
    re1(i, n) {
        
for (; front<=rear && Q[front]<b[i];) {if (front < rear) del(find(h(front))); front++;}
        
for (; front<=rear && a[Q[rear]]<=a[i];) {if (front < rear) del(find(h(rear - 1))); rear--;}
        Q[
++rear] = i; if (front < rear) ins(h(rear - 1));
        
if (root) F[i] = T[Find_Kth(1)].v; else F[i] = INF;
        
if (F[b[i]] + MAX[i] < F[i]) F[i] = F[b[i]] + MAX[i];
    }
    res 
= F[n];
}
void pri()
{
    cout 
<< res << endl;
}
int main()
{
    init();
    prepare();
    
if (!res) solve();
    pri();
    
return 0;
}



Mato_No1 2011-07-08 12:40 鍙戣〃璇勮
]]>
綰挎鏍戝騫寵 鏍?鍙慨鏀圭殑鍖洪棿絎琄灝忛棶棰?/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[鍦ㄦ病鏈変慨鏀規(guī)搷浣滄椂錛屽簲鐢ㄥ垝鍒嗘爲鍙互鍦∣(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>Splay Tree澶勭悊鍖洪棿闂鐨勫嚑閬撳ソ棰樺強鎬葷粨http://www.shnenglu.com/MatoNo1/archive/2011/06/25/149425.htmlMato_No1Mato_No1Sat, 25 Jun 2011 03:21:00 GMThttp://www.shnenglu.com/MatoNo1/archive/2011/06/25/149425.htmlhttp://www.shnenglu.com/MatoNo1/comments/149425.htmlhttp://www.shnenglu.com/MatoNo1/archive/2011/06/25/149425.html#Feedback2http://www.shnenglu.com/MatoNo1/comments/commentRss/149425.htmlhttp://www.shnenglu.com/MatoNo1/services/trackbacks/149425.html錛?錛塕obotic Sort錛?a title="HDU1890" >HDU1890銆?a title="ZJU2985" >ZJU2985錛?br />鏈涓昏鑰冨療鐨勬槸瀵規(guī)綾婚棶棰橈紝搴忓垪涓粰瀹氬肩殑绱㈠紩闂銆?br />褰揝play Tree鐢ㄦ潵澶勭悊涓涓簭鍒楃殑鏃跺欙紝鍏跺叧閿瓧灝辨槸搴忓垪涓厓绱犵殑涓嬫爣錛岃屼笉鏄厓绱犵殑鍊箋傝繖鏍鳳紝濡傛灉瑕佹煡鎵懼簭鍒椾腑緇欏畾鐨勫肩殑浣嶇疆錛堝亣璁懼簭鍒椾腑浠繪剰涓や釜鍏冪礌鐨勫間笉鐩哥瓑錛夌湅璧鋒潵灝辨棤娉曞疄鐜般傚叾瀹炰篃鏄湁鍔炴硶瀹炵幇鐨勶細鍥犱負鍏冪礌鍦ㄦ爲涓殑涓嬫爣鏄案榪滀笉鍙樼殑錛佷篃灝辨槸錛岃榪欎釜搴忓垪涓篈錛屽鏋淎[i]鍦ㄦ彃鍏play Tree鏃剁殑涓嬫爣涓簀錛岄偅涔堝湪A[i]琚垹闄や箣鍓嶏紝鍏朵笅鏍囦竴鐩存槸j錛屾案榪滀笉浼氬彉錛堟敞鎰忓厓绱犲湪搴忓垪涓殑涓嬫爣鍜屽湪鏍戜腑鐨勪笅鏍囨槸涓嶅悓鐨勶級銆傚埄鐢ㄨ繖涓鎬ц川鍙互瑙e喅緇欏畾鍊肩殑绱㈠紩闂銆?br />瀵逛簬鏈錛屾瘡嬈″皢浠庡簭鍒椾腑絎琲灝忕殑鍏冪礌鍒板簭鍒椾腑絎琲涓厓绱狅紙榪欓噷鍋囧畾鍏冪礌涓嬫爣鏄粠1寮濮嬬殑錛岃屼笉鏄粠0寮濮嬶級涔嬮棿鐨勬墍鏈夊厓绱犲弽杞紝騫惰緭鍑虹i灝忕殑鍏冪礌鍦ㄥ弽杞箣鍓嶇殑鍦ㄥ簭鍒椾腑鐨勪笅鏍囥傝B[i]涓虹i灝忕殑鏁扮殑鍒濆浣嶇疆錛孲[i]涓?span style="color: #ff0000">鍒濆浣嶇疆鍦ㄧi浣嶇殑鍏冪礌鐨勪笅鏍囷紝B[i]鍜孲[i]閮藉彲浠ラ氳繃棰勫鐞嗗緱鍒般傜劧鍚庯紝姣忔浜ゆ崲鍓嶏紝姹傚嚭S[B[i]]鍦ㄦ爲涓殑鎺掑悕錛堝熀鏈搷浣滐級錛屽啀鍑?錛堝洜涓烘湁杈圭晫緇撶偣錛夊氨鏄鍏冪礌鐩墠鐨勪綅緗紝鑰屽簭鍒椾腑絎琲涓厓绱犲氨鏄爲涓(i+1)灝忕殑鍏冪礌錛屽啀鎵ц浜ゆ崲鍗沖彲銆?br />涓嶈繃闇瑕佸崈涓囨敞鎰忕殑鏄湰棰樼殑鏍囪闂錛屽湪姹係[B[i]]鍦ㄦ爲涓殑鎺掑悕鏃訛紝鏈夊彲鑳藉叾紲栧厛緇撶偣涓婃湁鏍囪錛岄渶瑕佸厛閬嶅巻鍏舵墍鏈夌殑紲栧厛緇撶偣錛屽啀閫嗗悜涓嬫斁鏍囪錛堟爣璁板彧鑳借嚜欏跺悜涓嬩紶錛夈傚彟澶栧湪浜ゆ崲鐨勬椂鍊欓渶瑕佹眰鍑篠[B[i]]鐨勫悗緇э紝鍦ㄦ眰鍚庣戶鐨勮繃紼嬩腑闇瑕佹煡鎵撅紝姝ゆ椂鍗冧竾鍒繕浜嗕笅鏀炬爣璁幫紙鎬葷殑璇達紝鍑℃槸鏈夋煡鎵劇殑鍦版柟錛屽氨鏈塪m錛?br />浠g爜錛堟湰娌欒尪澶急浜嗭紝鏄妱鍒漢鐨勶紝鍥犳鍏剁畻娉曞拰涓婇潰鎬葷粨鐨勫彲鑳芥湁宸埆錛岀鐘囦笉瑕侀剻瑙嗭級
錛?錛塖uperMemo錛?a title="PKU3580" >PKU3580錛?br />鏈鐨?涓搷浣滀腑錛宎dd銆乺everse銆乮nsert銆乨elete銆乵in閮戒笉闅炬悶錛岃宺evolve鎿嶄綔闇瑕佹秹鍙婂埌鍖洪棿浜ゆ崲銆?br />鍙互鍙戠幇錛屾墍璋撶殑鏃嬭漿鍏跺疄灝辨槸浜ゆ崲涓や釜鐩擱偦鍖洪棿錛岃繖瀵逛簬鍔熻兘鏋佸己鐨凷play Tree鏉ヨ鏍規(guī)湰涓嶉毦鎼炪?br />璁捐繖涓や釜鐩擱偦鍖洪棿涓篬x, y]涓嶽y+1, z]錛屽亣璁懼畠浠潎闈炵┖錛堜篃灝辨槸x<=y<z錛屽洜涓鴻嫢鍏朵腑鑷沖皯鏈変竴涓尯闂存槸絀哄尯闂達紝鍒欎氦鎹㈡病鏈夋剰涔夛級錛屽厛鎵懼埌鏍戜腑x鐨勫墠瓚婸涓巣鐨勫悗緇錛堣繖閲寈銆亃絳夋寚鐨勯兘鏄搴旂殑緇撶偣錛屼笅鍚岋級錛屽皢P浼稿睍鍒版牴銆佸皢S浼稿睍鍒版牴鐨勫彸瀛愮粨鐐瑰錛屽垯S鐨勫乏瀛愭爲灝辮〃紺哄尯闂碵x, z]銆傜劧鍚庯紝璁維鐨勫乏瀛愭爲鐨勬牴緇撶偣錛堜篃灝辨槸S鐨勫乏瀛愮粨鐐癸級涓篘錛屽湪榪欐5瀛愭爲涓壘鍒扮1灝忕殑緇撶偣P0涓庣(y-x+2)灝忕殑緇撶偣S0錛堣繖闇瑕佹秹鍙婂埌鎵懼瓙鏍戝唴絎琄灝忕殑鎿嶄綔錛屽彧瑕佹妸鎵炬暣媯墊爲絎琄灝忕殑鎿嶄綔鐨剅oot鏀逛負N鍗沖彲錛夛紝瀹冧滑鍒嗗埆琛ㄧずx涓?y+1)錛岃繖鏍峰皢P0浼稿睍鍒癗澶勶紝灝哠0浼稿睍鍒癗鐨勫彸瀛愮粨鐐瑰錛屾樉鐒禤0鏃犲乏瀛愭爲錛孲0鐨勫乏瀛愭爲T1琛ㄧず鍖洪棿[x+1, y]錛孲0鐨勫彸瀛愭爲T2琛ㄧず鍖洪棿[y+2, z]銆傜劧鍚庯紝鍏堝皢S0浠嶱0鐨勫彸瀛愮粨鐐圭Щ鍔ㄥ埌P0鐨勫乏瀛愮粨鐐癸紝鍐嶅皢T1浣滀負P0鐨勫彸瀛愭爲錛堟敞鎰忕Щ鍔ㄦ槸涓ゆ錛氭彃鍏ュ拰鍒犻櫎錛夈傝繖鏍鋒暣媯靛瓙鏍戠殑涓簭閬嶅巻緇撴灉鍙樻垚浜哠0->T2->P0->T1錛屼篃灝辨槸[y+1, z]∪[x, y]銆?br />鍙﹀鏈鐨勬爣璁版湁鐐歸毦鎼烇紝鍙渶娉ㄦ剰rev鏄嗗悜鏍囪錛屼互鍙婃煡鎵句笌dm鍏卞瓨灝辮浜嗐?br />浠g爜
錛?錛塒lay with Chain(HDU3487)
榪欎釜綾蟲湁紲為┈濂借鐨勶紝閲岄潰鐨勬搷浣滃湪SuperMemo閲岄兘鏈夛紱
浠g爜
錛?錛?a title="AHOI2006 鏂囨湰緙栬緫鍣?editor)" >AHOI2006 鏂囨湰緙栬緫鍣?editor)
榪欓鍦ㄨ繖涓綾婚閲岄潰綆楁按鐨勩傚浜庡厜鏍囷紝鍙鐢ㄤ竴涓兼潵緇存姢灝辮浜嗐?br />鍙﹀娉ㄦ剰鏈鏋佷負鐚ョ悙鐨?鐐癸紙棰樼洰涓背鏈夎鏄庯級錛氫竴鏄渶鍒濈殑鏂囨湰騫朵笉鏄┖鐨勶紝鑰屾槸鏈変竴涓┖鏍鹼紱浜屾槸鎵цGET鎿嶄綔鏃跺厜鏍囧彲鑳戒綅浜庢枃鏈湯灝撅紝姝ゆ椂搴旇緭鍑虹┖鏍鹼紱
浠g爜
錛?錛塇FTSC2011 楂樼簿搴﹁綆楀櫒(apc)錛岄鐩榪欎釜甯栧瓙錛?br />榪欓鍙嶆槧鍑轟簡涓涓緢鍥х殑闂錛氭湁浜涗俊鎭細琚玶ev鏁翠綋鐮村潖銆?br />鏈涓殑鎿嶄綔閮芥槸甯歌鎿嶄綔錛屼絾鏄湰棰樻墍闇瑕佺淮鎶ょ殑淇℃伅鍗翠笉鏄偅涔堝鏄撶淮鎶ゃ傛湰棰樿姹傜淮鎶や竴媯靛瓙鏍戜腑鎵鏈夌粨鐐規(guī)墍琛ㄧず鐨勫厓绱犲簭鍒楋紙涓簭閬嶅巻緇撴灉錛夋ā涓涓寚瀹氱殑M鐨勫箋傝F[i]涓篟^i mod M鐨勫鹼紙榪欓噷R鏄繘鍒訛紝涔熷氨鏄鐩腑鐨凨錛夛紝鍒欐湁錛?br />T[x].mod = (T[T[x].c[0]].mod * F[T[T[x].c[1]].sz + 1] + T[x].v * F[T[T[x].c[1]].sz] + T[T[x].c[1]].mod) % M;
榪欎釜寮忓瓙鍏跺疄鏄緢濂界悊瑙g殑銆?br />鍏抽敭鏄紝鏈鐨勭尌鐞愪箣澶勫茍涓嶅湪姝ゃ傛敞鎰忔湰棰樼殑rev鎿嶄綔錛屽畠浼氭暣浣撴敼鍙樻爲涓墍鏈夌粨鐐規(guī)墍璁板綍鐨刴od鍊鹼紝榪欐椂錛屽鏋滃啀鐢ㄤ笂闈㈣繖涓紡瀛愭潵緇存姢T[x].mod錛屽氨浼氬嚭閿欙紝鍥犱負姝ゆ椂寮曠敤鍒扮殑T[T[x].c[0]].mod鍜孴[T[x].c[1]].mod閮芥槸榪囨椂鐨勩傝В鍐寵繖涓闂鍙湁涓縐嶆柟娉曪細璁板綍“閫唌od”(rmod)錛屾剰鎬濇槸灝嗘暣涓厓绱犲簭鍒楀弽杞悗鐨刴od錛屽嵆錛?br />T[x].rmod = (T[T[x].c[1]].rmod * F[T[T[x].c[0]].sz + 1] + T[x].v * F[T[T[x].c[0]].sz] + T[T[x].c[0]].rmod) % M;
榪欐牱錛屽湪鍙嶈漿鏌愬簭鍒楃殑鏃跺欙紝鐩存帴灝嗘牴緇撶偣鐨刴od鍊煎拰rmod鍊間氦鎹㈠氨琛屼簡銆?br />鍍弇od榪欐牱浼氳鍙嶈漿鎿嶄綔鏁翠綋鐮村潖鐨勪俊鎭繕鏈夊緢澶氾紝姣斿NOI2005 sequence閲岄潰鐨刲max鍜宺max銆傚鏋滅湡鐨勯亣鍒拌繖綾諱俊鎭紝鍙湁閲囩敤涓婇潰鐨勬柟娉曘?br />鍙﹀錛屾湰棰樼6銆?銆?0涓偣鏈夎銆?br />浠g爜

鐜板湪Splay Tree宸笉澶氬紕瀹屼簡錛屾帴涓嬫潵榪樻湁N澶氱煡鍚嶇殑銆佷笉鐭ュ悕鐨勯珮綰ф暟鎹粨鏋?#8230;…鏃墮棿MS鏈変簺涓嶅鐢ㄤ簡鍥?#8230;…


Mato_No1 2011-06-25 11:21 鍙戣〃璇勮
]]>
騫寵 鏍戣皟璇曟妧宸?/title><link>http://www.shnenglu.com/MatoNo1/archive/2011/06/23/149218.html</link><dc:creator>Mato_No1</dc:creator><author>Mato_No1</author><pubDate>Wed, 22 Jun 2011 16:07:00 GMT</pubDate><guid>http://www.shnenglu.com/MatoNo1/archive/2011/06/23/149218.html</guid><wfw:comment>http://www.shnenglu.com/MatoNo1/comments/149218.html</wfw:comment><comments>http://www.shnenglu.com/MatoNo1/archive/2011/06/23/149218.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/MatoNo1/comments/commentRss/149218.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/MatoNo1/services/trackbacks/149218.html</trackback:ping><description><![CDATA[騫寵 鏍戞搷浣滐紝灝ゅ叾鏄疭play Tree鐨勫尯闂存搷浣滐紙褰撶嚎孌墊爲鐢ㄧ殑閭g錛夛紝浠g爜闀夸笖鏋佹槗鎼炵柕錛屽綋鎿嶄綔澶氱殑鏃跺欙紝鐢氳嚦鍙兘璋冭瘯鐨勬椂闂存瘮鍐欎唬鐮佺殑鏃墮棿閮介暱錛?br />榪欓噷鏉ユ葷粨涓涓嬪鉤琛℃爲鍦ㄥ疄闄呭簲鐢紙緙栫▼錛変腑鐨勬槗鐤電偣鍜岃皟璇曟妧宸с?br />銆愬鉤琛℃爲錛堣繖閲屼富瑕佹寚Splay Tree錛夌殑鎿嶄綔銆?br />榪欎釜MS鍓嶉潰宸茬粡鎬葷粨榪囦簡錛屼富瑕佸垎浠ヤ笅鍑犵被錛?br />錛?錛夊熀鏈搷浣滐細鏌ユ壘銆佸崟緇撶偣鎻掑叆銆佸崟緇撶偣鍒犻櫎銆佹壘絎琄灝忋佹眰緇撶偣鐨勬帓鍚嶃佹壘鎸囧畾緇撶偣鐨勫墠瓚嬪拰鍚庣戶錛?br />錛?錛夎繘闃舵搷浣滐細鎵劇粰瀹氱殑鍊煎湪鏍戜腑鐨勫墠瓚嬪拰鍚庣戶銆佸涓涓簭鍒楀緩騫寵 鏍戙佹彃鍏ユ暣媯靛瓙鏍戙佸垹闄ゆ暣媯靛瓙鏍戯紱<br />錛?錛夊尯闂存搷浣滐紙涓庣嚎孌墊爲鐨勭粨鍚堬級錛氭爣璁幫紙鑷《鍚戜笅錛夛紱<br />錛?錛夊尯闂存搷浣滐紙涓庣嚎孌墊爲鐨勭粨鍚堬級錛氭渶澶у箋佹誨拰絳夎嚜搴曞悜涓婄淮鎶ょ殑淇℃伅錛?br />錛?錛変竴浜涚壒鍒尌鐞愮殑鎿嶄綔錛堟瘮濡侾KU3580鐨剅evolve錛夛紱<br />銆愪富瑕佸嚱鏁板強鍏舵槗鐤電偣銆?br />錛?錛塿oid sc(int _p, int _c, bool _d);<br />灝哶p鐨刜d瀛愮粨鐐癸紙0宸?鍙籌級緗負_c錛岃繖涓氨涓夊彞璇濓紝搴旇涓嶄細鎼炵柕錛?br />錛?錛塿oid upd(int x);<br />鏇存柊x璁板綍鐨勪竴浜涗俊鎭紙鑷簳鍚戜笂緇存姢鐨勪俊鎭紝鍖呮嫭澶у皬鍩焥z錛夛紝榪欎釜錛屾湁鍑犱釜淇℃伅灝卞啓鍑犲彞璇濆氨琛屼簡錛屼笉鏄撴悶鐤碉紱<br />錛?錛塿oid rot(int x);<br />鏃嬭漿鎿嶄綔錛屽皢x鏃嬭漿鍒板叾鐖剁粨鐐圭殑浣嶇疆銆傝繖涓嚱鏁頒腑鏈変袱涓槗鐤電偣錛氫竴鏄嫢x鐨勭埗緇撶偣涓烘牴錛屽垯闇瑕佸湪鏃嬭漿鍚庡皢鏍圭疆涓簒錛屼笖灝唜鐨勭埗緇撶偣緗負0錛堢壒鍒敞鎰忚繖涓級錛涗簩鏄嫢x鐨勭埗緇撶偣涓嶄負鏍癸紝鍒欓渶瑕佸皢x鐨勭埗緇撶偣鐨勭埗緇撶偣鐨勫搴斿瓙緇撶偣錛堝師鏉ユ槸x鐨勭埗緇撶偣鐨勯偅涓級緗負x錛涘彟澶栨棆杞畬鎴愬悗鍒繕浜嗘洿鏂幫紱<br />錛?錛塿oid splay(int x, int r);<br />浼稿睍鎿嶄綔錛屽皢x浼稿睍鍒皉鐨勫瓙緇撶偣澶勶紝榪欎釜鎿嶄綔鏄渶鏍稿績鐨勬搷浣滐紝鍙璁頒綇浜嗚繃紼嬶紝涓攔ot涓嶆悶鐤碉紝榪欎釜涔熷氨涓嶄細鎼炵柕錛?br />錛?錛塿oid dm(int x);<br />瀵逛簬鏈夋爣璁扮殑緇撶偣鐨勪笅鏀炬爣璁版搷浣滐紝鏋佹槗鐤碉紒<br />棣栧厛錛屽浜庝換浣曠粨鐐癸紝鏍囪涓鎵撲笂灝卞繀欏葷珛鍗崇敓鏁堬紝鍥犳闄や簡灝唜鐨勬爣璁板彇娑堛亁鐨勪袱涓瓙緇撶偣錛堝鏋滃瓨鍦ㄧ殑璇濓級鎵撲笂鏍囪澶栵紝榪樿鏇存柊涓や釜瀛愮粨鐐圭殑涓浜涘煙錛堝綋鐒惰繖閲屾洿鏂板崈涓囦笉鑳界敤upd鏇存柊錛夛紱<br />鍏舵錛岃鎼炴竻妤歺鐨勬瘡涓涓爣璁扮殑綾誨瀷錛屾槸鍙犲姞鍨嬫爣璁幫紙濡傛暣浣撳姞涓婃煇涓涓暟鐨勬爣璁幫級銆佽鐩栧瀷鏍囪錛堝鏁翠綋緗負鏌愪竴涓暟鐨勬爣璁幫級榪樻槸閫嗗悜鏍囪錛堝鏄惁緲昏漿榪囩殑鏍囪錛屽洜涓虹炕杞袱嬈$瓑浜庢病杞級錛岀劧鍚庡湪涓嬫斁鏍囪鐨勬椂鍊欐敞鎰忓啓娉曪紙鍥犱負x鐨勫瓙緇撶偣鍘熸潵鍙兘涔熸湁鏍囪錛屾鏃跺彧鏈夎鐩栧瀷鏍囪闇瑕佸皢x鐨勫瓙緇撶偣鐨勫師鏉ョ殑鏍囪瑕嗙洊鎺夛紝瀵逛簬鍙犲姞鍨嬫爣璁幫紝搴斾負鍔犳硶榪愮畻錛屽浜庨嗗悜鏍囪錛屽簲涓哄彇鍙嶆搷浣滐紝榪樻湁鍏跺畠綾誨瀷鐨勬爣璁板垎鍒鐞嗭級錛?br />鏈鍚庤繕鏈変竴鐐癸紝灝辨槸x鐨勫乏瀛愮粨鐐規(guī)垨鍙沖瓙緇撶偣鍙兘涓嶅瓨鍦紙0錛夛紝姝ゆ椂灝變笉鑳藉榪欓噷鐨?鍙風粨鐐逛笅鏀炬爣璁般?br />錛?錛塱nt Find_Kth(int x, int K);<br />鍦ㄤ互緇撶偣x涓烘牴鐨勫瓙鏍戜腑鎵劇K灝忕殑緇撶偣錛岃繑鍥炵粨鐐圭紪鍙鳳紱鑻ョ渷鐣錛岄粯璁=root錛堝嵆鍦ㄦ暣媯墊爲涓壘錛夛紱<br />榪欎釜涓鑸笉浼氭悶鐤碉紝娉ㄦ剰涓や釜鍦版柟鍗沖彲錛氫竴鏄湁mul鍩熺殑鏃跺欓渶瑕佽冭檻mul鍩燂紝浜屾槸緇撶偣濡傛灉鏈夋爣璁幫紝闇瑕佸湪鎵劇殑鏃跺欎笅鏀炬爣璁般傦紙鍑℃槸鏌ユ壘鎿嶄綔錛屽寘鎷彃鍏ユ柊緇撶偣鏃剁殑鏌ユ壘錛屽湪鏌ユ壘榪囩▼涓繀欏諱笉鏂笅鏀炬爣璁幫紝鍥犱負鏌ユ壘涔嬪悗寰堝彲鑳藉氨瑕佷幾灞曪級錛?br />錛?錛塿oid ins(int _v);<br />       void ins(int x, int _v)<br />鎻掑叆涓涓間負_v鐨勭粨鐐廣傚墠鑰呮槸鏅氭彃鍏ワ紝鍚庤呮槸鐢⊿play Tree澶勭悊搴忓垪錛堝綋綰挎鏍戠敤錛夋椂鐨勬彃鍏ワ紝琛ㄧず鍦ㄧx灝忕殑緇撶偣鍚庢彃鍏ワ紱<br />鍓嶈呮敞鎰忔湁涓夌鎯呭喌錛氭爲涓虹┖錛涙爲闈炵┖涓斿間負_v鐨勭粨鐐逛笉瀛樺湪錛涙爲闈炵┖涓斿間負_v鐨勭粨鐐瑰凡瀛樺湪錛?br />鍚庤呴渶瑕佹敞鎰忥紝鍦ㄥ皢絎瑇灝忕殑緇撶偣浼稿睍鍒版牴錛屽皢絎?x+1)灝忕殑緇撶偣浼稿睍鍒版牴鐨勫彸瀛愮粨鐐癸紝鍐嶆彃鍏ュ悗錛岄渶瑕乽pd涓婅堪涓や釜緇撶偣錛堟敞鎰弖pd欏哄簭錛夛紱<br />錛?錛塿oid del(int x);<br />灝嗙粨鐐箈鍒犻櫎銆傝繖涓竴鑸笉浼氭悶鐤碉紝鍞竴瑕佹敞鎰忕殑涓鐐規(guī)槸鍒犻櫎鍚庣殑upd錛?br />錛?錛夋墦鏍囪鎿嶄綔錛坅dd銆乺everse銆乵akesame絳夛級錛?br />鍏跺疄鎵撴爣璁版搷浣滅殑浠g爜閲忔槸寰堝皯鐨勶紝鍏抽敭灝辨槸瀵逛簬涓嶅悓鏍囪瑕佸垎鍒鐞嗭紝鍚岋紙5錛夛紱<br />錛?0錛夊悇縐嶈闂搷浣滐細<br />榪欎釜鐩存帴璋冨嚭鐩稿簲鐨勫煙鍗沖彲錛屽嚑涔庝笉鍙兘鎼炵柕錛?br />錛?1錛夋瀬鍏剁尌鐞愮殑鎿嶄綔錛坮evolve絳夛級錛?br />榪欎釜灞炰簬鏈鏄撶柕鐨勬搷浣滐紙鍚﹀垯灝變綋鐜頒笉鍑哄叾鐚ョ悙浜嗭級錛?br />棣栧厛瑕佹悶娓呮榪欎釜鎿嶄綔鐨勫叿浣撹繃紼嬶紝涓嶈榪炲叿浣撹繃紼嬮兘鎼炵柕浜嗭紝榪欐牱鍐欏嚭鏉ョ殑浠g爜鑲畾鏄柕鐨勶紱<br />鐒跺悗錛屾敞鎰忎竴浜涢潪甯哥尌鐞愮殑緇嗚妭闂錛堝緢澶氭椂鍊欙紝鏈矙鑼墮兘鏄牻鍦ㄧ粏鑺備笂鐨勶級錛?br />鍙﹀錛岃繖浜涙搷浣滀腑涓鑸兘浼氬嚭鐜板嬈′幾灞曪紝鍒繕浜嗕幾灞曞悗鐨剈pd錛?br />錛?2錛夊叾瀹冩槗鐤電偣錛?br />[1]“縐誨姩”鏄敱“鎻掑叆”鍜?#8220;鍒犻櫎”涓ら儴鍒嗙粍鎴愮殑錛屽洜姝ゅ嚒鏄秹鍙婂埌“縐誨姩”綾葷殑鎿嶄綔錛堝灝嗘煇媯靛瓙鏍戞垨鏌愪釜緇撶偣縐誨姩鍒板彟涓涓綅緗瓑錛夛紝蹇呴』瑕佸悓鏃跺嚭鐜?#8220;鎻掑叆”鍜?#8220;鍒犻櫎”錛岃屼笉鑳藉彧鎻掑叆涓嶅垹闄わ紱<br />[2]娉ㄦ剰媯鏌ヤ富鍑芥暟main()涓槸鍚︽湁鎼炵柕鐨勫湴鏂癸紱<br /><br />鏄撶柕鐐逛篃灝辮繖涔堝浜嗭紝涓嬮潰鏄皟璇曟妧宸э細<br />銆怱play Tree璋冭瘯鎶宸с?br />錛?錛夊厛鐢ㄦ牱渚嬭皟璇曪紝淇濊瘉鏍蜂緥鑳藉閫氳繃錛堟敞鎰忥紝鏍蜂緥涓繀欏誨寘鍚墍鏈夐鐩腑緇欏嚭鐨勬搷浣滐紝濡傛灉涓嶆槸榪欐牱錛岄偅鍦ㄨ皟璇曞畬鏍蜂緥鍚庤繕瑕佸姞涓緇勫寘鍚墍鏈夐鐩腑緇欏嚭鐨勬搷浣滅殑灝忔暟鎹級錛?br />錛?錛夌劧鍚庣敤mkdt閫犲ぇ鏁版嵁錛屼竴鑸鉤琛℃爲鎿嶄綔棰樼殑鍚堟硶鏁版嵁閮戒笉闅鵑狅紝鍙娉ㄦ剰鍒秺鐣屽氨琛屼簡錛?br />錛?錛夊湪璋冭瘯榪囩▼涓簲涓嶆柇灝戦噺澧炲ぇ鏁版嵁瑙勬ā錛屽洜涓哄湪鑳芥壘鍑洪棶棰樼殑鎯呭喌涓嬶紝鏁版嵁瑙勬ā瓚婂皬瓚婂ソ錛?br />錛?錛夊鏋滆皟璇曡繃紼嬩腑鍙戠幇姝誨驚鐜垨鑰匯E錛?br />[1]棣栧厛杈撳嚭姣忎釜鎿嶄綔錛屾壘鍑烘槸鍦ㄥ摢涓搷浣滃鍑轟簡闂錛?br />[2]榪涘叆璇ユ搷浣滃唴閮ㄦ鏌ワ紝涔熷氨鏄妸璇ユ搷浣滅殑浠g爜璇諱竴閬嶏紝涓鑸兘鑳芥壘鍑洪棶棰橈紱<br />[3]濡傛灉鎵句笉鍑洪棶棰橈紝鍙互榪涘叆璇ユ搷浣滃唴閮ㄨ窡韙鏌ワ紱<br />[4]濡傛灉璺熻釜媯鏌ヤ粛鐒舵病鎵懼嚭闂錛岄偅鍙兘鏄鎿嶄綔鏄鐨勶紝鑰屽叾瀹冩搷浣滃嚭浜嗛棶棰橈紝姝ゆ椂鍙互寮勪竴涓獀st錛屾妸鏁存5鏍戦亶鍘嗕竴涓嬶紝鎵懼嚭鐪熸鍑洪棶棰樼殑鎿嶄綔錛岃漿[2]錛?br />錛?錛夋帓闄や簡姝誨驚鐜垨RE鍚庯紝鎺ヤ笅鏉ュ氨鏄鏌ヨ緭鍑虹粨鏋滄槸鍚︽紜簡錛?br />[1]瀵逛簬灝忚妯℃暟鎹彲浜哄伐璁$畻媯鏌ワ紝瀵逛簬杈冨ぇ瑙勬ā鏁版嵁鍒欏繀欏婚噰鐢ㄥ鐓ф柟娉曪紝鍗沖紕涓涓ā鎷熸硶鐨勪唬鐮侊紝淇濊瘉璇ヤ唬鐮佹紜紝鐒跺悗榪涜瀵圭収錛?br />[2]濡傛灉鍙戠幇鍔犲叆閬嶅巻鏃訛紝緇撴灉姝g‘錛屼絾鍘繪帀閬嶅巻鍚庣粨鏋滀笉姝g‘錛屽垯琛ㄦ槑鏄鐞嗙粨鐐規(guī)爣璁扮殑鏃跺欏嚭浜嗛棶棰橈紙鍥犱負鍦ㄩ亶鍘嗚繃紼嬩腑闇瑕佷笅鏀炬爣璁幫級錛岃繘鍏m鎴栧姞鏍囪鎿嶄綔涓鏌ュ嵆鍙紱<br />[3]鍏跺畠鎯呭喌涓嬶紝鍙互鍦ㄩ亶鍘嗕腑杈撳嚭鏁翠釜搴忓垪錛堟垨鏁存5鏍戯級錛岃繘琛屽鐓э紝鎵懼嚭闂鎵鍦紱<br />[4]濡傛灉鏁版嵁榪囧ぇ錛屾搷浣滆繃澶氾紝浜哄伐鍒嗘瀽鏃墮棿杈冮暱錛屽氨鍙兘閲囩敤璇諱唬鐮佺殑鏂瑰紡媯鏌ヤ簡錛?br />錛?錛夋渶鍚庯紝鐢╩kdt閫犱竴涓渶澶ц妯$殑鏁版嵁錛屾鏌ユ槸鍚LE銆佹槸鍚﹁秺鐣岋紙鏁扮粍鏄惁寮灝忥級錛?br />濡傛灉浠ヤ笂鍚勭偣鍏ㄩ儴閫氳繃錛屽氨鍙互瀹e竷AC浜嗐?br /><img src ="http://www.shnenglu.com/MatoNo1/aggbug/149218.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-23 00:07 <a href="http://www.shnenglu.com/MatoNo1/archive/2011/06/23/149218.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;榪欑浼稿睍鏂規(guī)硶錛屽涓涓簭鍒椾腑鐨勪竴鏁存榪涜鏁翠綋鎿嶄綔銆傜敱浜庤闃叉鍑虹幇鍓嶈秼鎴栧悗緇т笉瀛樺湪鐨勬儏鍐碉紝闇瑕佸湪榪欎釜搴忓垪鐨勪袱绔姞鍏ヤ袱涓竟鐣岀粨鐐癸紝瑕佹眰鍏跺間笉鑳藉獎鍝嶅埌緇撶偣鍚勭璁拌澆淇℃伅鐨勭淮鎶わ紙澶氬彇0銆?#8734;鎴?∞錛夈傝繖涓や釜杈圭晫緇撶偣鍦ㄦ爲涓案榪滃瓨鍦紝涓嶄細琚垹闄ゃ?br />
錛?錛夌粨鐐圭殑寮曠敤錛?br />鍦ㄥ綋綰挎鏍戠敤鐨凷play Tree涓紝鐪熸鐨勫叧閿瓧鏄笅鏍囪屼笉鏄鹼紝鍥犳錛?#8220;搴忓垪涓i涓粨鐐?#8221;瀹為檯涓婂搴旂殑鏄?#8220;鏍戜腑絎?i+1)灝忕殑緇撶偣”錛堝洜涓哄乏杈硅繕鏈変竴涓竟鐣岀粨鐐癸級錛岃繖灝辮鏄庡湪瀵圭粨鐐瑰紩鐢ㄦ椂闇瑕佹壘絎琄灝忕殑鎿嶄綔銆傚洜姝わ紝涓嬮潰鐨?#8220;緇撶偣x”鎸囩殑鏄?#8220;鏍戜腑絎?x+1)灝忕殑緇撶偣”銆?br />錛?錛夋爣璁幫細
鍦ㄧ嚎孌墊爲涓紝濡傛灉瀵逛竴涓粨鐐規(guī)墍琛ㄧず鐨勭嚎孌墊暣浣撹繘琛屼簡鏌愮鎿嶄綔錛岄渶瑕佸湪榪欎釜緇撶偣涓婃墦涓婁竴涓爣璁幫紝鍦ㄤ笅涓嬈″啀鎵懼埌榪欎釜緇撶偣鏃訛紝鍏舵爣璁板氨浼氫笅鏀懼埌鍏朵袱涓瓙緇撶偣涓娿傚湪Splay Tree涓篃鍙互寮曞叆鏍囪銆傛瘮濡傝瀵筟2, 6]榪欎竴孌佃繘琛屾暣浣撴搷浣滐紝灝卞皢緇撶偣1浼稿睍鍒版牴鐨勪綅緗紝灝嗙粨鐐?浼稿睍鍒版牴鐨勫彸瀛愭爲鐨勪綅緗紝鐒跺悗緇撶偣7鐨勫乏瀛愭爲灝辮〃紺篬2, 6]榪欎竴孌碉紝瀵硅繖媯靛瓙鏍戠殑鏍圭粨鐐規(guī)墦涓婃爣璁板茍绔嬪嵆鐢熸晥錛堝繀欏繪槸绔嬪嵆鐢熸晥錛岃屼笉鏄瓑涓嬩竴嬈″紩鐢ㄥ啀鐢熸晥錛夛紝涔熷氨鏄珛鍗蟲敼鍙樿緇撶偣璁板綍鐨勪竴浜涗俊鎭殑鍊箋傚鏋滀笅嬈″啀嬈″紩鐢ㄥ埌榪欎釜緇撶偣錛屽氨瑕佸皢鍏舵爣璁頒笅鏀懼埌鍏朵袱涓瓙緇撶偣澶勶紱
闇瑕佹敞鎰忕殑涓鐐規(guī)槸錛屽鏋滆浼稿睍鏌愪釜緇撶偣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 />錛?錛夊洖鏀剁┖闂達細
鏍規(guī)嵁鏈鐨勬暟鎹寖鍥存彁紺猴紝鎻掑叆鐨勭粨鐐規(guī)繪暟鏈澶氬彲鑳借揪鍒?000000錛屼絾鍦ㄤ換浣曟椂鍒繪爲涓渶澶氬彧鏈?00002涓粨鐐癸紙鍖呮嫭涓や釜杈圭晫錛夛紝姝ゆ椂涓轟簡鑺傜渷絀洪棿錛屽彲浠ラ噰鐢ㄥ驚鐜槦鍒楀洖鏀剁┖闂寸殑鏂規(guī)硶銆傚嵆錛氫竴寮濮嬪皢鎵鏈夌殑鍙敤絀洪棿錛堝彲鐢ㄤ笅鏍囷紝鏈涓?~500002錛夊瓨鍦ㄥ驚鐜槦鍒桻閲岋紝鍚屾椂璁劇珛澶村熬鎸囬拡front鍜宺ear錛屾瘡嬈″鏋滄湁鏂扮粨鐐規(guī)彃鍏ワ紝灝卞彇鍑篞[front]騫朵綔涓烘柊緇撶偣鐨勪笅鏍囷紝濡傛灉鏈夌粨鐐硅鍒犻櫎錛堟湰棰樻槸涓嬈″垹闄ゆ暣媯靛瓙鏍戯紝鍥犳鍦ㄥ垹闄ゅ悗闇瑕佸垎鍒洖鏀跺畠浠殑絀洪棿錛夛紝鍒欎粠rear寮濮嬶紝灝嗘瘡涓垹闄ょ殑緇撶偣鐨勪笅鏍囨斁鍥炲埌Q閲屻傚綋鐒訛紝榪欑鏂規(guī)硶鏄鐗虹壊涓瀹氱殑鏃墮棿鐨勶紝鍥犳鍦ㄧ┖闂翠笉鏄壒鍒悆绱х殑鎯呭喌涓嬩笉瑕佺敤銆?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 鍙戣〃璇勮
]]>
Splay Tree 閲嶅嬈℃暟mul浠ュ強涓浜涜繘闃舵搷浣?/title><link>http://www.shnenglu.com/MatoNo1/archive/2011/06/21/149067.html</link><dc:creator>Mato_No1</dc:creator><author>Mato_No1</author><pubDate>Tue, 21 Jun 2011 03:31:00 GMT</pubDate><guid>http://www.shnenglu.com/MatoNo1/archive/2011/06/21/149067.html</guid><wfw:comment>http://www.shnenglu.com/MatoNo1/comments/149067.html</wfw:comment><comments>http://www.shnenglu.com/MatoNo1/archive/2011/06/21/149067.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/MatoNo1/comments/commentRss/149067.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/MatoNo1/services/trackbacks/149067.html</trackback:ping><description><![CDATA[棰?#8230;…鏈榪戜袱澶╁厜欏劇潃鍒烽蹇樹簡鎬葷粨浜?#8230;…姝eソ鐜板湪鎶婃葷粨鐨勪笢涓滃叏閮ㄨˉ涓婂惂鍥?#8230;…<br /><br />銆愰噸澶嶆鏁癿ul銆?br />鍦ㄥ墠闈㈢涓綃囨葷粨Splay Tree鐨勬椂鍊欏氨鎻愬埌浜嗙粨鐐圭殑閲嶅嬈℃暟(mul)鍩燂紝榪欎釜涓滀笢鑷充粖鍦ㄧ綉涓婅繕綾崇湅瑙佹湁鐘囩敤錛堝湪鏈矙鑼惰榪囩殑鑼冨洿鍐咃級錛屼絾鏄笉鍙惁璁ょ殑鏄繖涓煙鍦ㄦ煇浜涙儏鍐典笅鍑犱箮鏄?#8220;蹇呴』浣跨敤”鐨勩?br />鎵璋撻噸澶嶆鏁幫紝灝辨槸灝嗘爲涓墍鏈夊?v)鐩稿悓鐨勭粨鐐瑰叏閮ㄥ悎騫舵垚涓涓紝榪欎簺緇撶偣鐨勬諱釜鏁板氨鏄悎騫跺悗鐨勭粨鐐圭殑mul鍊箋傛瘮濡傦紝鍦ㄤ竴媯電┖鏍戜腑鎻掑叆3涓間負5鐨勭粨鐐瑰悗錛屽湪浣跨敤mul鍩熺殑鎯呭喌涓嬶紝鏍戜腑鍙湁涓涓粨鐐癸紝鍏秜鍊間負5錛宮ul鍊間負3銆?br />鍦ㄥ鉤琛℃爲涓紝鍊肩浉鍚岀殑緇撶偣紜疄闈炲父紕嶄簨銆傛寜鐓т簩鍙夋煡鎵炬爲鐨勫畾涔夛細“瑕佷箞鏄竴媯電┖鏍戯紝瑕佷箞鏄竴媯墊弧瓚充互涓嬫潯浠剁殑闈炵┖鏍戯細鏍圭粨鐐瑰乏瀛愭爲涓墍鏈夌粨鐐圭殑鍊煎潎灝忎簬鏍圭粨鐐癸紝鏍圭粨鐐瑰彸瀛愭爲涓墍鏈夌粨鐐圭殑鍊煎潎澶т簬鏍圭粨鐐癸紝涓旀牴鐨勫乏鍙沖瓙鏍戝潎涓轟簩鍙夋煡鎵炬爲”錛屽湪浜屽弶鏌ユ壘鏍戜腑錛屾槸涓嶅簲璇ュ嚭鐜板肩浉鍚岀殑緇撶偣鐨勩傚彲鏄湪瀹為檯闂涓紝鍑虹幇鍊肩浉鍚岀殑緇撶偣鍑犱箮鏄笉鍙伩鍏嶇殑銆傛鏃訛紝鏍戠殑瀹氫箟灝變細鍙樺緱闈炲父妯$硦錛屼篃灝辨槸瑕佹妸浜屽弶鏌ユ壘鏍戝畾涔変腑鐨?#8220;灝忎簬”鍏ㄩ儴鏀逛負“灝忎簬絳変簬”錛?#8220;澶т簬”鍏ㄩ儴鏀逛負“澶т簬絳変簬”銆傝繖鏍峰畾涔夌殑鏍戝湪涓鑸儏鍐典笅涔熺背鏈夌椹棶棰橈紝浣嗘槸鍦ㄦ壘鍓嶈秼(Pred)鍜屾壘鍚庣戶(Succ)鎿嶄綔涓紝闂灝辨潵浜嗐傚洜涓烘牴緇撶偣鐨勫墠瓚嬪拰鍚庣戶鐨勫煎彲鑳戒笌鏍圭粨鐐圭浉絳夛紙姣斿 HNOI2004 瀹犵墿鏀跺吇鎵 閭d竴棰橈級錛岃繖鏃訛紝鏍圭粨鐐圭殑鍓嶈秼鏃㈡湁鍙兘鍦ㄥ乏瀛愭爲閲岋紝涔熸湁鍙兘鍦ㄥ彸瀛愭爲閲岋紝鏍圭粨鐐圭殑鍚庣戶涔熶竴鏍楓傛鏃訛紝榪欎袱涓搷浣滃氨鏃犳硶榪涜浜嗐?<br />銆恗ul鍩熺殑緇存姢銆?br />mul鍩熷叾瀹炲彲浠ョ湅鎴愮粨鐐圭殑涓涓湰韜睘鎬э紝鍜寁涓鏍楓傚洜姝ゅ湪鏃嬭漿銆佷幾灞曟搷浣滀腑浠諱綍緇撶偣鐨刴ul鍊奸兘鏄笉浼氭敼鍙樼殑銆傚彲鑳芥敼鍙樼粨鐐筸ul鍊肩殑鍦版柟鍙湁涓ゅ錛氫竴鏄彃鍏ワ紝浜屾槸鍒犻櫎銆傚湪鎻掑叆涓涓間負_v鐨勭粨鐐圭殑鏃跺欙紝濡傛灉鍙戠幇鍊間負_v鐨勭粨鐐瑰湪鏍戜腑宸茬粡瀛樺湪錛屽垯鍙細灝嗚繖涓粨鐐圭殑mul鍊煎姞1錛岃屼笉鏄湡姝f彃鍏ヤ竴涓柊鐨勭粨鐐廣傚悓鏍風殑錛屽湪鍒犻櫎涓涓粨鐐圭殑鏃跺欙紝濡傛灉榪欎釜緇撶偣鐨刴ul鍊煎ぇ浜?錛屽垯鍙細灝嗚繖涓粨鐐圭殑mul鍊煎噺1錛岃屼笉鏄湡姝e垹闄ゃ?br />銆恗ul鍩熺殑浣滅敤銆?br />mul鍩熸渶涓昏鐨勪綔鐢ㄥ氨鏄В鍐沖肩浉鍚岀殑緇撶偣瀵逛簬鏌愪簺鎿嶄綔鐨勫獎鍝嶃傚彟澶栵紝mul鍩熺殑寮曞叆鍙互鍑忓皯鏍戜腑緇撶偣鐨勬諱釜鏁幫紙灝ゅ叾鏄綋鎻掑叆鐨勭粨鐐規(guī)暟寰堝鑰岀粨鐐圭殑鍊肩殑鑼冨洿涓嶅ぇ鐨勬椂鍊欙級錛屼粠鑰岄檷浣庢椂闂村鏉傚害錛堝噯紜潵璇村彲浠ラ檷浣庡父鏁幫級銆?br />銆怱play Tree鐨勮繘闃舵搷浣溿?br /><1>鎵鵑潪鏍圭粨鐐圭殑鍓嶈秼鍜屽悗緇с?br />Splay Tree鐢變簬鏈変幾灞曟搷浣滐紝鍙互灝嗚姹傚墠瓚嬫垨鍚庣戶鐨勭偣浼稿睍鍒版牴鍐嶆眰鍓嶈秼鎴栧悗緇с傚鏋滆涓嶉氳繃浼稿睍鎿嶄綔鎵句竴涓潪鏍圭粨鐐圭殑鍓嶈秼鎴栧悗緇ф庝箞鍔烇紵<br />璁捐繖涓粨鐐逛負x銆傚鏋渪鏈夊乏瀛愮粨鐐癸紝鍒檟鐨勫墠瓚嬪氨鏄痻鐨勫乏瀛愮粨鐐圭殑鍙抽摼涓婄殑鏈鍚庝竴涓粨鐐癸紱濡傛灉x娌℃湁宸﹀瓙緇撶偣錛屽垯x鐨勫墠瓚嬪氨鏄粠x寮濮嬪線涓婏紙寰x鐨勭鍏堬級鏌ユ壘錛岀洿鍒版壘鍒扮涓涓槸鍏剁埗緇撶偣鐨勫彸瀛愮粨鐐圭殑緇撶偣涓烘錛屽垯榪欎釜緇撶偣鐨勭埗緇撶偣灝辨槸x鐨勫墠瓚嬶紙鎴栬呰錛屽氨鏄笉鏂部鐫x鐨勭埗緇撶偣寰涓婃壘錛屼竴寮濮嬮兘鏄線鍙崇殑錛屾壘鍒扮涓涓線宸︾殑灝辮浜嗭級銆傚悗緇у垯姝eソ鐩稿弽銆傝瘉鏄庡彲浠ョ敤涓簭閬嶅巻銆?br /><2>鎵炬煇涓紇0鐨勫墠瓚嬪拰鍚庣戶錛堝間負v0鐨勭粨鐐瑰湪鏍戜腑涓嶄竴瀹氬瓨鍦級銆?br />鎵璋搗0鐨勫墠瓚嬪拰鍚庣戶錛屽氨鏄寚鍦ㄦ爲涓煎皬浜庯紙涔熸湁鐨勬槸涓嶅ぇ浜庯級v0鐨勬渶澶х殑緇撶偣鐨勫鹼紝鍜屾爲涓煎ぇ浜庯紙涔熸湁鐨勬槸涓嶅皬浜庯級v0鐨勬渶灝忕殑緇撶偣鐨勫箋傚湪鏈変簡鎿嶄綔錛?錛夈愪笉閫氳繃浼稿睍鎿嶄綔鎵鵑潪鏍圭粨鐐圭殑鍓嶈秼鍜屽悗緇с戜互鍚庯紝榪欎釜鎿嶄綔鍙樺緱鏋佷負瀹規(guī)槗錛氬厛榪涜鏅氱殑鏌ユ壘鎿嶄綔錛堟煡鎵懼間負v0鐨勭粨鐐癸級錛屽鏋滆兘鎵懼埌錛屽垯鍓╀笅鐨勬楠ゅ氨鍜屾搷浣滐紙1錛変竴鏍蜂簡錛涘鏋滄壘涓嶅埌錛屽垯蹇呯劧鏄壘鍒版煇涓┖緇撶偣錛?錛夊錛屽亣璁懼湪榪欓噷鎻掑叆涓涓間負v0鐨勭粨鐐癸紙鍙槸鍋囪錛屼笉鏄湡鎻掑叆錛夛紝鍒欒緇撶偣鏄劇劧鏄病鏈夊乏瀛愮粨鐐圭殑錛屽洜姝ゅ氨鏄?#8220;浠庤緇撶偣寮濮嬪線涓婃煡鎵撅紝鐩村埌鎵懼埌絎竴涓槸鍏剁埗緇撶偣鐨勫彸瀛愮粨鐐圭殑緇撶偣涓烘錛屽垯榪欎釜緇撶偣鐨勭埗緇撶偣灝辨槸璇ョ粨鐐圭殑鍓嶈秼”錛屼篃灝辨槸v0鐨勫墠瓚嬶紱鍚庣戶綾諱技銆?br />鍦ㄦ煡鎵捐繃紼嬩腑鍙互榪涜涓涓父鏁頒紭鍖栵細璁劇偣i涓烘煡鎵捐繃紼嬩腑“鍙寵漿”鐨勬渶鍚庝竴涓粨鐐癸紙鍗蟲壘鍒拌緇撶偣鍚庯紝鎺ヤ笅鏉ユ槸璇ョ粨鐐圭殑鍙沖瓙緇撶偣錛夛紝姣忔寰鍙沖瓙緇撶偣杞殑鏃跺欏氨鏇存柊i錛屽垯鏈鍚庣粨鐐筰灝辨槸鍊紇0鐨勫墠瓚嬶紱鍚庣戶綾諱技銆?br /><3>鍒犻櫎鎵鏈夊煎湪鏌愬尯闂村唴鐨勭粨鐐癸紙榪欎釜鍖洪棿鍙互鏄紑鍖洪棿銆侀棴鍖洪棿鎴栧崐寮鍗婇棴鍖洪棿錛夈?br />浠ュ紑鍖洪棿涓轟緥錛氬垹闄ゆ爲涓墍鏈夊煎湪(l, r)鑼冨洿鍐呯殑緇撶偣銆傚厛鎵懼埌l(fā)鐨勫墠瓚婸鍜宺鐨勫悗緇錛堟敞鎰忚繖閲岀殑鍓嶈秼鍜屽悗緇ф槸鍖呮嫭“絳変簬”鐨勶級錛岀劧鍚庡皢P浼稿睍鍒版牴錛孲浼稿睍鍒癙鐨勫彸瀛愮粨鐐瑰錛屽垯S鐨勫乏瀛愭爲涓氨鏄墍鏈夊煎湪(l, r)鑼冨洿鍐呯殑緇撶偣錛岀洿鎺ュ垹鎺夎繖媯靛瓙鏍戝嵆鍙紙娉ㄦ剰鍒犻櫎鍚庤鏇存柊S鍜孭錛夛紱鑻ユ敼涓洪棴鍖洪棿錛屽垯灝嗗墠瓚嬪拰鍚庣戶涓殑“絳変簬”鍘繪帀錛堝嵆蹇呴』鏄皬浜庢垨澶т簬錛夛紱鍗婂紑鍗婇棴鍖洪棿鍒欎竴鍗婃寜寮鍖洪棿澶勭悊錛屼竴鍗婃寜闂尯闂村鐞嗐傞棶棰樻槸錛屽鏋滅偣P鎴栫偣S涓嶅瓨鍦ㄦ庝箞鍔炪傛湁涓ょ瑙e喅鍔炴硶錛屼竴鏄嫢P鍜孲涔嬩竴瀛樺湪錛屽垯灝嗗叾浼稿睍鍒版牴錛岀劧鍚庣洿鎺ュ垹鎺夊叾宸﹀瓙鏍戞垨鍙沖瓙鏍戝嵆鍙紱鑻鍜孲閮戒笉瀛樺湪錛屽垯鏍戜負絀猴紝鐩存帴灝唕oot緗負0鍗沖彲錛涗簩鏄寜鐓equence鐨勫姙娉曪紝鍔犲叆涓や釜杈圭晫緇撶偣錛屽綋鍓嶈秼鎴栧悗緇т笉瀛樺湪鏃跺氨璁や負鏄竟鐣岀粨鐐廣?br />鍏跺疄涓嶅厜鏄垹闄わ紝鍦ㄦ壘鍒頒簡榪欐5瀛愭爲鍚庡彲浠ュ瀹冭繘琛屼竴浜涙暣浣撴搷浣滐紝浠庤岃Splay Tree鍏鋒湁綰挎鏍戠殑鍔熻兘錛堣繖涓湪涓嬮潰鐨凬OI2005 sequence閭d竴棰橀噷闈細鎬葷粨錛夈?br /><4>鎻掑叆涓媯墊爲錛堝綋鐒惰繖媯墊爲涔熸槸Splay Tree錛屽茍涓斿師鏍戜腑鐨勭粨鐐瑰煎簭鍒椾笌鏂版爲涓殑緇撶偣鍊煎簭鍒椾笉鐩鎬氦錛夈?br />鏈夋椂鍊欙紝棰樼洰涓細榪炵畫鍑虹幇寰堝鎻掑叆鎿嶄綔錛屼腑闂存病鏈夊叾瀹冩搷浣滐紝姝ゆ椂錛屼笌鍏朵竴涓竴涓彃鍏ワ紝榪樹笉濡傚皢瀹冧滑鍏堝緩鎴愪竴媯墊爲錛堝緩鏍戠殑鏂規(guī)硶鍦ㄤ笅涓綃囬噷鎬葷粨錛夛紝鍐嶆暣浣撴彃鍏ャ傛暣浣撴彃鍏ョ殑鏂規(guī)硶錛氳L鍜孯鍒嗗埆鏄柊鏍戦噷鍊兼渶灝忕殑緇撶偣鍜屽兼渶澶х殑緇撶偣錛屽湪鍘熸爲涓壘鍒癓鐨勫墠瓚婸鍜孯鐨勫悗緇錛屽皢P浼稿睍鍒版牴錛孲浼稿睍鍒癙鐨勫彸瀛愮粨鐐瑰錛岀敱浜庡師鏍戜腑鐨勭粨鐐瑰煎簭鍒椾笌鏂版爲涓殑緇撶偣鍊煎簭鍒椾笉鐩鎬氦錛堜篃灝辨槸鍘熸爲涓殑緇撶偣鍊艱涔堝皬浜嶭鐨勫鹼紝瑕佷箞澶т簬R鐨勫鹼級錛屽洜姝鏃犲乏瀛愮粨鐐癸紝姝ゆ椂灝嗘柊鏍戜綔涓篠鐨勫乏瀛愭爲鍗沖彲銆?br /><img src ="http://www.shnenglu.com/MatoNo1/aggbug/149067.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-21 11:31 <a href="http://www.shnenglu.com/MatoNo1/archive/2011/06/21/149067.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>緇堜簬鎽樻帀浜嗕笉浼氬鉤琛℃爲鐨勫附瀛?/title><link>http://www.shnenglu.com/MatoNo1/archive/2011/06/18/148934.html</link><dc:creator>Mato_No1</dc:creator><author>Mato_No1</author><pubDate>Sat, 18 Jun 2011 13:21:00 GMT</pubDate><guid>http://www.shnenglu.com/MatoNo1/archive/2011/06/18/148934.html</guid><wfw:comment>http://www.shnenglu.com/MatoNo1/comments/148934.html</wfw:comment><comments>http://www.shnenglu.com/MatoNo1/archive/2011/06/18/148934.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/MatoNo1/comments/commentRss/148934.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/MatoNo1/services/trackbacks/148934.html</trackback:ping><description><![CDATA[     鎽樿: 浠婂ぉ鐪熸槸鏈夌邯蹇墊剰涔夊晩……浠ュ墠璇曠潃鎹変簡N閬嶇殑cashier浠婂ぉ绔熺劧AC浜嗭紝鏈矙鑼剁粓浜庢帉鎻′簡騫寵 鏍戯紒錛侊紒銆怱play Tree鍙婂叾瀹炵幇銆?lt;1>緇撶偣璁板綍鐨勪俊鎭細涓鑸儏鍐典笅Splay Tree鏄敤綰挎у瓨鍌ㄥ櫒錛堢粨鏋勬暟緇勶級鏉ュ瓨鍌ㄧ殑錛屽彲浠ラ伩鍏嶅湪Linux涓嬬殑鎸囬拡寮傚父闂銆傝繖鏍峰浜庢煇涓粨鐐癸紝鑷沖皯瑕佽褰曚互涓嬬殑鍩燂細鍊鹼紙鍙堝彨鍏抽敭瀛楋級銆佸乏瀛愮粨鐐圭殑涓嬫爣銆佸彸瀛愮粨鐐圭殑涓嬫爣銆佺埗緇撶偣涓嬫爣銆佸瓙鏍戝ぇ...  <a href='http://www.shnenglu.com/MatoNo1/archive/2011/06/18/148934.html'>闃呰鍏ㄦ枃</a><img src ="http://www.shnenglu.com/MatoNo1/aggbug/148934.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-18 21:21 <a href="http://www.shnenglu.com/MatoNo1/archive/2011/06/18/148934.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://b476.com" target="_blank">欧美亚洲视频</a>| <a href="http://99chiji1.com" target="_blank">久久久久综合一区二区三区</a>| <a href="http://481323.com" target="_blank">国产精品成人在线</a>| <a href="http://497988.com" target="_blank">欧美日韩精品综合</a>| <a href="http://jiyixitong.com" target="_blank">欧美日韩亚洲一区二区三区</a>| <a href="http://sifeksa.com" target="_blank">欧美日韩成人一区二区三区</a>| <a href="http://312012.com" target="_blank">欧美日韩天堂</a>| <a href="http://481323.com" target="_blank">国产日韩视频</a>| <a href="http://www47011.com" target="_blank">最新国产成人在线观看 </a>| <a href="http://pp88qq.com" target="_blank">精品51国产黑色丝袜高跟鞋</a>| <a href="http://xprinter3d.com" target="_blank">国产女人18毛片水18精品</a>| <a href="http://4488269.com" target="_blank">国产中文一区二区</a>| <a href="http://v63xs.com" target="_blank">亚洲毛片网站</a>| <a href="http://uu6623.com" target="_blank">欧美一级在线视频</a>| <a href="http://yye321.com" target="_blank">卡通动漫国产精品</a>| <a href="http://myav2.com" target="_blank">亚洲激情精品</a>| <a href="http://1369080.com" target="_blank">宅男噜噜噜66一区二区66</a>| <a href="http://qcjpns.com" target="_blank">性色av一区二区三区在线观看</a>| <a href="http://yw9677.com" target="_blank">久久精品日韩欧美</a>| <a href="http://478884.com" target="_blank">欧美黄污视频</a>| <a href="http://www3344uh.com" target="_blank">国产视频在线观看一区二区三区</a>| <a href="http://rbet6365.com" target="_blank">尤物yw午夜国产精品视频明星</a>| <a href="http://youminwang.com" target="_blank">亚洲精品在线观看免费</a>| <a href="http://13789a.com" target="_blank">亚洲制服欧美中文字幕中文字幕</a>| <a href="http://497988.com" target="_blank">久久国产精品久久久久久</a>| <a href="http://kk1xx-com.com" target="_blank">欧美成人精品在线</a>| <a href="http://555888666.com" target="_blank">亚洲午夜精品久久久久久浪潮</a>| <a href="http://2312138.com" target="_blank">亚洲欧美日韩天堂</a>| <a href="http://www78778.com" target="_blank">欧美成人蜜桃</a>| <a href="http://laoyewo.com" target="_blank">欧美高清在线播放</a>| <a href="http://www55747.com" target="_blank">性伦欧美刺激片在线观看</a>| <a href="http://cz-hongbangfloor.com" target="_blank">亚洲性图久久</a>| <a href="http://5657hh.com" target="_blank">欧美jizzhd精品欧美喷水</a>| <a href="http://xxxxxdywvip18.com" target="_blank">99精品国产在热久久下载</a>| <a href="http://sdluliang.com" target="_blank">久久久久九九视频</a>| <a href="http://www-67499.com" target="_blank">国产精品久线观看视频</a>| <a href="http://www353488.com" target="_blank">亚洲激情视频在线播放</a>| <a href="http://sauske.com" target="_blank">久久精品导航</a>| <a href="http://diyiao.com" target="_blank">亚洲欧美国产制服动漫</a>| <a href="http://72nnnn.com" target="_blank">欧美精品日韩一本</a>| <a href="http://my7877.com" target="_blank">在线视频国产日韩</a>| <a href="http://794278.com" target="_blank">久久久www免费人成黑人精品</a>| <a href="http://wzsl8.com" target="_blank">亚洲伦理中文字幕</a>| <a href="http://l5076.com" target="_blank">久久综合激情</a>| <a href="http://2061851.com" target="_blank">国外成人性视频</a>| <a href="http://xajtyd.com" target="_blank">欧美与欧洲交xxxx免费观看</a>| <a href="http://chinagreetown.com" target="_blank">亚洲精品美女在线观看</a>| <a href="http://wltaste.com" target="_blank">美日韩精品视频免费看</a>| <a href="http://kkwwxx.com" target="_blank">狠狠色2019综合网</a>| <a href="http://138128.com" target="_blank">久久精品成人一区二区三区</a>| <a href="http://56701sy.com" target="_blank">这里只有精品视频在线</a>| <a href="http://7282789.com" target="_blank">欧美日韩视频专区在线播放</a>| <a href="http://www-787788.com" target="_blank">亚洲精品一区二区三区在线观看</a>| <a href="http://www-xj788.com" target="_blank">巨胸喷奶水www久久久免费动漫</a>| <a href="http://9585865.com" target="_blank">亚洲综合激情</a>| <a href="http://o10669.com" target="_blank">国产区日韩欧美</a>| <a href="http://chenyirong.com" target="_blank">欧美一级久久久久久久大片</a>| <a href="http://8x29ft.com" target="_blank">亚洲一区一卡</a>| <a href="http://8558585.com" target="_blank">国产酒店精品激情</a>| <a href="http://96ykm.com" target="_blank">欧美尤物巨大精品爽</a>| <a href="http://820002.com" target="_blank">亚洲欧美日韩天堂</a>| <a href="http://89wbw.com" target="_blank">国产一区二区三区黄</a>| <a href="http://pansinobbs.com" target="_blank">久久精品国产一区二区三</a>| <a href="http://v63xs.com" target="_blank">欧美亚洲一区二区在线观看</a>| <a href="http://www33444.com" target="_blank">国产欧美日韩综合</a>| <a href="http://ahhccz.com" target="_blank">久久久噜噜噜久久</a>| <a href="http://5588207.com" target="_blank">久久久伊人欧美</a>| <a href="http://www224558.com" target="_blank">亚洲国产小视频</a>| <a href="http://avtb2120.com" target="_blank">亚洲国产精品一区二区www</a>| <a href="http://jafzjz.com" target="_blank">欧美高清自拍一区</a>| <a href="http://668334.com" target="_blank">在线视频你懂得一区</a>| <a href="http://199372.com" target="_blank">一区二区三区国产在线</a>| <a href="http://www-188445.com" target="_blank">国产精品盗摄久久久</a>| <a href="http://8eb26.com" target="_blank">欧美专区在线</a>| <a href="http://sifeksa.com" target="_blank">久久婷婷蜜乳一本欲蜜臀</a>| <a href="http://ttzbdl.com" target="_blank">亚洲精品日韩一</a>| <a href="http://96ykm.com" target="_blank">在线亚洲免费视频</a>| <a href="http://51-express.com" target="_blank">国产丝袜美腿一区二区三区</a>| <a href="http://wwwok1965.com" target="_blank">久久色中文字幕</a>| <a href="http://hh474.com" target="_blank">欧美激情精品久久久久久免费印度</a>| <a href="http://1000kongbao.com" target="_blank">亚洲精品国产视频</a>| <a href="http://5yy6.com" target="_blank">亚洲午夜国产成人av电影男同</a>| <a href="http://www19829.com" target="_blank">国产精品一区二区三区四区 </a>| <a href="http://xaipad.com" target="_blank">欧美国产一区二区在线观看 </a>| <a href="http://kk5551.com" target="_blank">欧美成在线视频</a>| <a href="http://0855d.com" target="_blank">欧美精品手机在线</a>| <a href="http://725806.com" target="_blank">欧美在线高清</a>| <a href="http://www-919198.com" target="_blank">欧美一级专区</a>| <a href="http://aqd072.com" target="_blank">日韩亚洲精品视频</a>| <a href="http://www39pao.com" target="_blank">国产精品视频第一区</a>| <a href="http://99cheats.com" target="_blank">玖玖综合伊人</a>| <a href="http://aabbcc11.com" target="_blank">欧美午夜精品理论片a级按摩 </a>| <a href="http://www92994.com" target="_blank">国产午夜精品久久久</a>| <a href="http://5553303.com" target="_blank">欧美成人首页</a>| <a href="http://seanzhau.com" target="_blank">国产精品视频网址</a>| <a href="http://www-440447.com" target="_blank">欧美aaa级</a>| <a href="http://aimashe.com" target="_blank">国产精品亚洲精品</a>| <a href="http://www-23918.com" target="_blank">欧美大成色www永久网站婷</a>| <a href="http://www672hh.com" target="_blank">欧美日韩直播</a>| <a href="http://www-800778.com" target="_blank">久久久一区二区三区</a>| <a href="http://495177.com" target="_blank">欧美片第一页</a>| <a href="http://www225011.com" target="_blank">麻豆精品网站</a>| <a href="http://zhenhaozu.com" target="_blank">国产精品久久久久久av福利软件</a>| <a href="http://678665.com" target="_blank">免费欧美日韩</a>| <a href="http://ttdy20.com" target="_blank">国产精品视频网址</a>| <a href="http://shalitao.com" target="_blank">亚洲人成小说网站色在线</a>| <a href="http://avtb2120.com" target="_blank">国产一区二区久久精品</a>| <a href="http://2061856.com" target="_blank">一本色道久久综合亚洲精品不卡 </a>| <a href="http://107766a.com" target="_blank">亚洲国产精品悠悠久久琪琪</a>| <a href="http://njggmy.com" target="_blank">亚洲网址在线</a>| <a href="http://fsdashen.com" target="_blank">av成人免费</a>| <a href="http://sese750.com" target="_blank">麻豆精品一区二区av白丝在线</a>| <a href="http://laodaohang.com" target="_blank">亚洲欧美日韩区</a>| <a href="http://y65k.com" target="_blank">欧美日韩hd</a>| <a href="http://free18teen.com" target="_blank">欧美成人黑人xx视频免费观看</a>| <a href="http://qqszdq.com" target="_blank">国产精品一区二区久久</a>| <a href="http://xingcheny.com" target="_blank">亚洲国产精品成人一区二区 </a>| <a href="http://eeii33.com" target="_blank">欧美午夜精品久久久久免费视 </a>| <a href="http://mmpzyw.com" target="_blank">欧美在线啊v一区</a>| <a href="http://hczztj.com" target="_blank">亚洲一区二区三区成人在线视频精品</a>| <a href="http://changjiucf.com" target="_blank">久久久精品国产一区二区三区</a>| <a href="http://sewuyueyue.com" target="_blank">亚洲欧美美女</a>| <a href="http://107766a.com" target="_blank">欧美日韩免费观看一区二区三区</a>| <a href="http://gzpurefaith.com" target="_blank">欧美jjzz</a>| <a href="http://gzw33.com" target="_blank">亚洲欧洲日韩在线</a>| <a href="http://428368.com" target="_blank">猫咪成人在线观看</a>| <a href="http://bjygp.com" target="_blank">欧美成人国产va精品日本一级</a>| <a href="http://77mcn.com" target="_blank">国产视频在线观看一区二区</a>| <a href="http://3dmh329.com" target="_blank">亚洲午夜成aⅴ人片</a>| <a href="http://5917t.com" target="_blank">亚洲午夜一区二区</a>| <a href="http://04781900.com" target="_blank">欧美日韩亚洲成人</a>| <a href="http://coerverbeijing.com" target="_blank">亚洲精品久久久久久久久</a>| <a href="http://hdsywang.com" target="_blank">亚洲精品免费在线</a>| <a href="http://chaoxibg.com" target="_blank">免费在线看成人av</a>| <a href="http://193youwu.com" target="_blank">亚洲电影av</a>| <a href="http://456888com.com" target="_blank">亚洲毛片网站</a>| <a href="http://musicshq.com" target="_blank">欧美日韩高清在线一区</a>| <a href="http://tv-miya188.com" target="_blank">亚洲精品一区二</a>| <a href="http://2323nn.com" target="_blank">一本色道久久综合狠狠躁的推荐</a>| <a href="http://977mo.com" target="_blank">欧美激情一区二区</a>| <a href="http://jlkcjz.com" target="_blank">欧美日韩精品欧美日韩精品</a>| <a href="http://123086.com" target="_blank">久久久噜久噜久久综合</a>| <a href="http://kk553.com" target="_blank">国产区日韩欧美</a>| <a href="http://kkwwxx.com" target="_blank">欧美一区二区三区啪啪</a>| <a href="http://www31931.com" target="_blank">久久精品成人一区二区三区</a>| <a href="http://pao449.com" target="_blank">国内精品久久久久影院优</a>| <a href="http://hlyjh.com" target="_blank">久久久国产视频91</a>| <a href="http://99hhbb.com" target="_blank">欧美成人精品</a>| <a href="http://hhhtalk.com" target="_blank">一本色道**综合亚洲精品蜜桃冫</a>| <a href="http://love136.com" target="_blank">欧美人与性禽动交情品 </a>| <a href="http://83319b.com" target="_blank">模特精品裸拍一区</a>| <a href="http://avhai.com" target="_blank">亚洲精品视频中文字幕</a>| <a href="http://dacellflex.com" target="_blank">欧美精品日韩一区</a>| <a href="http://y65k.com" target="_blank">亚洲视频在线观看免费</a>| <a href="http://fdgkinetic.com" target="_blank">欧美在线影院</a>| <a href="http://216667.com" target="_blank">精品动漫3d一区二区三区免费</a>| <a href="http://wawabt.com" target="_blank">久久夜色精品国产亚洲aⅴ</a>| <a href="http://huohuoglobal.com" target="_blank">欧美激情亚洲另类</a>| <a href="http://by99969.com" target="_blank">亚洲一区三区电影在线观看</a>| <a href="http://qdpetlove.com" target="_blank">国产午夜精品久久久久久久</a>| <a href="http://cancerrxa.com" target="_blank">久久视频在线视频</a>| <a href="http://855821.com" target="_blank">亚洲蜜桃精久久久久久久</a>| <a href="http://fc3332.com" target="_blank">欧美一区影院</a>| <a href="http://5773000.com" target="_blank">91久久久在线</a>| <a href="http://wwwavtb1122.com" target="_blank">国产精品青草久久久久福利99</a>| <a href="http://www387333.com" target="_blank">欧美影院一区</a>| <a href="http://h15h15.com" target="_blank">日韩视频在线免费</a>| <a href="http://wwwavzz.com" target="_blank">久久激情五月婷婷</a>| <a href="http://by71222.com" target="_blank">日韩视频一区二区三区在线播放 </a>| <a href="http://25axxa.com" target="_blank">国产嫩草一区二区三区在线观看</a>| <a href="http://mxkaozi.com" target="_blank">久久国产加勒比精品无码</a>| <a href="http://zhijiasd.com" target="_blank">欧美激情第9页</a>| <a href="http://www19829.com" target="_blank">亚洲系列中文字幕</a>| <a href="http://kpd034.com" target="_blank">在线播放中文一区</a>| <a href="http://yzsss.com" target="_blank">国产精品日韩在线</a>| <a href="http://1277k.com" target="_blank">免费在线观看成人av</a>| <a href="http://f9494.com" target="_blank">亚洲一区久久久</a>| <a href="http://highfivewe.com" target="_blank">亚洲黄色高清</a>| <a href="http://bizssr.com" target="_blank">久久午夜电影</a>| <a href="http://kanzhelu31.com" target="_blank">亚洲欧美日韩国产</a>| <a href="http://3333347.com" target="_blank">亚洲日本欧美</a>| <a href="http://wocao1997.com" target="_blank">国内精品视频在线播放</a>| <a href="http://666cmc.com" target="_blank">欧美色图天堂网</a>| <a href="http://tk99444.com" target="_blank">欧美1区视频</a>| <a href="http://3451215.com" target="_blank">久久国产精品高清</a>| <a href="http://hbsmhy.com" target="_blank">亚洲一区二区三区在线看 </a>| <a href="http://amiee88.com" target="_blank">国产偷自视频区视频一区二区</a>| <a href="http://toomicsvip.com" target="_blank">久热精品在线视频</a>| <a href="http://tv-miya188.com" target="_blank">亚洲欧美日韩国产综合精品二区</a>| <a href="http://www-xj788.com" target="_blank">亚洲黄色三级</a>| <a href="http://fc3332.com" target="_blank">欧美mv日韩mv国产网站app</a>| <a href="http://imaben.com" target="_blank">欧美一级专区免费大片</a>| <a href="http://8x588.com" target="_blank">一区二区不卡在线视频 午夜欧美不卡'</a>| <a href="http://5252bnet.com" target="_blank">国产精品一区二区久久国产</a>| <a href="http://airsixth.com" target="_blank">欧美精品二区</a>| <a href="http://www353488.com" target="_blank">欧美国产在线视频</a>| <a href="http://bcjianyan.com" target="_blank">久久综合给合久久狠狠色</a>| <a href="http://qqkanp.com" target="_blank">欧美一区二区三区在线视频</a>| <a href="http://8xxjj.com" target="_blank">亚洲一区免费在线观看</a>| <a href="http://340332.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>