锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 鏋氫婦 棰樻剰錛氱粰瀹氫袱涓簩緇村潗鏍囦笂鐨勭偣(x1, y1)銆?/span>(x2, y2)錛屽潗鏍囪寖鍥翠負[-106, 106]銆傛眰浠庝竴涓偣(x1, y1)鍒?/span>(x2, y2)鐨勭洿綰胯礬寰勪笂緇忚繃鐨勭N涓柟鏍肩殑宸︿笅瑙掑潗鏍囷紝鏃犺В杈撳嚭no solution銆?/span> 棰樿В錛氶鍏堬紝濡傛灉涓や釜鐐圭殑x鍧愭爣鐩稿悓鎴栬?/span>y鍧愭爣鐩稿悓錛屽垯鐩存帴鏃犺В錛涘惁鍒欏皢(x1, y1)鍜?/span>(x2, y2)涓璧峰仛鐩稿簲鐨勫鉤縐伙紝浣垮緱(x1, y1)鍜?/span>(0, 0)閲嶅悎錛屾柟渚胯綆椼?/span> 濡傛灉x1 < x2錛屾灇涓?/span>x鍧愭爣灞炰簬(x1, x2]錛屽浜庢瘡涓崟浣嶄負1鐨勫尯闂?/span>[x, x+1]瀹規槗璁$畻鍑?/span>y鏂瑰悜涓婃湁澶氬皯涓柟鏍鹼紝緇熻鍑虹n涓柟鏍鹼紱濡傛灉x1 > x2錛屾灇涓?/span>x鍧愭爣灞炰簬(x2, x1]錛岀敤鍚屾牱鐨勬柟娉曡繘琛岃綆椼?br /> 瑙f瀽鍑犱綍 棰樻剰錛氱粰瀹氫笁瑙掑艦鐨勪袱鏉¤竟AB = c銆?/span> AC = b 鍜?/span> 涓鏉′腑綰?/span> AM = m 鐨勯暱搴︼紝姹備竴涓弧瓚蟲潯浠剁殑涓夎褰㈢殑鍧愭爣銆?/span> 棰樿В錛氱敱浜庝笁瑙掑艦鐨勫潗鏍囧彲浠ラ殢鎰忓彇錛屾墍浠ヤ負浜嗙畝鍖栭棶棰橈紝鍙互灝?/span>A鐐瑰畾鍦ㄥ潗鏍囧師鐐癸紝B鐐瑰畾鍦?/span>x杞存鏂瑰悜錛?/span>C鍒欏湪絎竴璞¢檺鎴栬呯浜岃薄闄愶紱 鍋囪A鍦ㄥ師鐐?/span>(0, 0) B鍦?/span>x+杞翠笂錛屽垯鏈?/span>B鐐瑰潗鏍?/span>(c, 0) 鍋囪C鐐瑰潗鏍囦負(x, y), 涓嚎鍧愭爣涓?/span> (B + C) / 2錛屽嵆 ( (x+c)/2, y/2 ) 宸茬煡AM璺濈m 鍜?/span>AC璺濈b錛屽垯鏈夛細 x2 + y2 = b2 (1) ((x+c)/2)2 + (y/2)2 = m2 (2) 鍚堝茍(1) (2)錛屽垯鏈?/span> -2cx - c2 = b2 - 4 * m2 (3) x = (4*m2 -b2 - c2)/2/c; (4) y2 = b2 - x2; (5) 鏍規嵁(5)錛屽彲浠ユ帹鍑?/span> y2 = b2 - x2 = b2 - ((4*m2 -b2 - c2)/2/c ) 2 =>[ (b+c) 2 - (2m)2 ] * [ - (b-c)2 + (2m)2 ] > 0 b+c > 2m 騫朵笖 2m > fabs(b-c)鏃?/span>y鎵嶆湁瑙?/span>錛?/font>鎵浠ュ綋 2*m > (b+c) 鎴栬?/span>2*m < fabs(b-c) 涓烘棤瑙g殑鎯呭喌銆?/span> 鑰屾垜浠亣璁?/span>C鍦ㄧ涓璞¢檺鎴栬呯浜岃薄闄愶紝鎵浠?/span>y>0錛屼簬鏄?/span>(x, y)鍙氳繃(4) (5)姹傚緱銆?/span> 鍥?/span>2 璐績 棰樻剰錛氱粰瀹?/span>N(N <= 10000)涓暟錛屾眰姣忎釜鏁板湪鎵鏈夋暟涓墍鍗犵櫨鍒嗘瘮錛岃姹傝緭鍑虹殑鏁頒箣鍜屼負100錛屾瘡涓暟鍙互榪涜涓婁笅鍙栨暣銆傚錛氱粰瀹氫笁涓暟3 3 3錛岄偅涔堣緭鍑轟負 34 33 33銆?/span>34涓哄悜涓婂彇鏁寸殑緇撴灉錛?/span>33涓哄悜涓嬪彇鏁寸殑緇撴灉銆?/span> 棰樿В錛?/span> 1錛夐鍏堟眰寰楁墍鏈夋暟涔嬪拰S錛屽皢姣忎釜鏁?/span>a[i]闄や笂S寰楀埌鍟?/span>B[i]鍜屼綑鏁?/span>M[i]銆?/span> 2錛夊鏋滀綑鏁頒負0琛ㄧず涓烘暣闄わ紝涓嶈兘榪涜涓婁笅鍙栨暣銆?/span>濡傛灉浣欐暟涓嶄負0錛岃鏄庡畠鏈?/span> +1 鎴栬?/span> +0 鐨勬満浼氥?/span> 錛堝洜涓洪鐩鍙互涓婂彇鏁達紝涔熷彲浠ヤ笅鍙栨暣錛?/span> 3) 璁板綍涓嬫墍鏈変綑鏁頒笉涓洪浂鐨勪釜鏁?/span>T銆?/span> 4錛夊皢鎵鏈夋暟鐨勫晢涔嬪拰Sum{B[i]} 鍜?/span> 浣欐暟涓嶄負闆剁殑鏁扮殑涓暟T 鐩稿姞錛屽鏋滃皬浜?/span>100錛屽垯琛ㄦ槑蹇呭畾鏃犺В銆?/span>鍚﹀垯鎵弿鏁扮粍錛屽皢 X = 100-Sum{B[i]}-T 鐨勫煎垎媧劇粰姣忎釜涓嶈兘鏁撮櫎鐨勬暟鍗沖彲錛堟瘡涓暟鍙彲鍒嗘淳1錛夈?/span> 153 Playing with matches 鍗氬紙 棰樻剰錛氱粰瀹?/span>N鏍圭伀鏌?/span>(N <= 109)錛屾瘡嬈″彲浠ヤ粠榪欎簺鐏煷涓彇1,P1,P2,...,Pm (2<=Pi<=9, 0<=m<=8)鏍癸紝涓や漢鍒嗗埆杞榪涜鎷懼彇錛屽茍涓旀繪槸鎸夌収鏈浼樼瓥鐣ュ幓鍙栵紝鏈鍚庡彇瀹岀伀鏌寸殑浜轟負杈撶殑浜猴紝闂綋鍓嶇姸鎬佹槸鍚︽槸涓涓繀鑳滅姸鎬併?/span> 棰樿В錛氱粡鍏稿崥寮堬紝瀵逛簬緇欏畾鐘舵?/span>X錛?/span> 1) 濡傛灉鎸夌収鎵鏈夋柟寮忓彇錛屾渶鍚庨兘鍙兘璁╁鎵嬪埌杈懼繀鑳滅姸鎬侊紝閭d箞X涓哄繀璐ョ姸鎬侊紱 2) 濡傛灉瀵逛簬鏌愮鍙栨硶錛屽彲浠ヨ瀵規墜杈懼埌蹇呰觸鐘舵侊紝閭d箞X涓哄繀鑳滅姸鎬侊紱 3) 鏄劇劧錛?/span>0涓哄繀鑳滄侊紝1涓哄繀璐ユ侊紝2涓哄繀鑳滄併?/span> 鏍規嵁浠ヤ笂鐨勬ц川錛屽彲浠ラ氳繃閫掓帹錛屽皢鐏煷鏍規暟紜畾鐨勬儏鍐典笅錛屽皢鎵鏈夌姸鎬佺畻鍑烘潵錛屼絾鏄敱浜?/span>N <= 109錛屾暟鎹噺澶ぇ錛屼絾鏄垜浠敞鎰忓埌姣忎釜Pi寰堝皬錛屾渶澶у間篃鍙湁9錛屾煇浜涘ぇ鐘舵佹槸閫氳繃灝忕姸鎬佺畻鍑烘潵鐨勶紝鎵浠ュ繀鐒跺瓨鍦ㄥ驚鐜?/span> 浜庢槸闂灝辮漿鍖栨垚浜嗘眰涓鍫嗗簭鍒楃殑寰幆鑺傦紝鍙互鍏堥澶勭悊灝?/span>5000錛堣凍澶熷ぇ灝辮錛変互鍐呯殑鐘舵佺敤璁板繂鍖栨悳绱㈢畻鍑烘潵錛屽浜庢瘡涓姸鎬佸鹼紝鐢?/span>0琛ㄧず蹇呰儨錛?/span>1琛ㄧず蹇呰觸銆傛灇涓懼驚鐜妭鐨勯暱搴?/span>len錛岀劧鍚庢嫻嬫槸鍚︿竴涓悎娉曠殑寰幆鑺傘傛渶鍚?/span>N鐨勭姸鎬佸煎氨鏄?/span>N % len鐨勭姸鎬佸箋?/span> 154 Factorial 浜屽垎緇熻 + 鍒濈瓑鏁拌 棰樿В錛氬洜涓?/span>K!涓殑璐ㄥ洜瀛愪腑5鐨勪釜鏁版槑鏄炬瘮2鐨勪釜鏁板皯錛屾墍浠ユ眰鏈熬鏈夊灝戜釜0錛屽叾瀹炲氨鏄眰K!涓湁澶氬皯涓川鍥犲瓙5銆傞偅涔堣繖浜涜川鍥犲瓙涓瀹氬嚭鐜板湪 5銆?/span>10銆?/span>15銆?/span>25銆?/span>30銆?/span>35銆?/span>... K涓紝瀵逛簬 K!錛屽皢鎵鏈夌殑5鐨勫嶆暟鎻愬嚭鏉ワ紝鍓╀笅閮ㄥ垎涓?/span>T錛屽垯鏈夛細 K! = 1*2*3*4*5*...(K-1)*K = 5 * 10 * 15 * ... * (1*2*3*4*6*7*8*9*11*12*13*14*16*...K) = 5*10*15*...* T = 5* (1*2*3...) * T = 5 * T * K'! 錛?/span> 鎴戜滑鍙戠幇5*T涓?/span>5鐨勮川鍥犲瓙涓暟涓?/span>T涓紝K'! 涓殑5鐨勪釜鏁板垯鍙互杞寲鎴愬瓙闂姹傝В錛岃繖鏍峰氨鍙樻垚浜嗕竴涓掑綊姹傝ВK涓川鍥犲瓙涓?/span>5鐨勪釜鏁?/span>S鐨勯棶棰橈紝閫掑綊鏂圭▼涓?/span> S[ K ] = K/5 + S[K/5] ( K > 0 ) 褰?/span>K = 0鏃惰繑鍥?/span>0錛屽嵆閫掑綊鍑哄彛銆?/span> 閭d箞灝卞彲浠ヤ簩鍒嗘灇涓句竴涓?/span>K錛岀劧鍚庨氳繃涓婇潰鐨勯掑綊姹傝ВK涓?/span>5榪欎釜璐ㄥ洜瀛愮殑涓暟錛岀劧鍚庡拰N姣旇緝錛屽鏋滄壘涓嶅埌涓涓?/span>K錛屼嬌寰楀畠鐨?/span>5璐ㄥ洜瀛愮殑涓暟涓?/span>N鍒欐棤瑙o紝鍚﹀垯鎵句竴涓渶灝忕殑銆?/span> 155 Cartesian Tree RMQ(or ZigZag) 棰樻剰錛氱粰瀹?/span>N(N <= 50000)涓暣鏁板(key, a)錛岃姹傚皢浠栦滑緇勭粐鎴愪竴媯墊爲浜屽弶鏍戯紝騫朵笖瀵逛簬鏍戠殑浠繪剰涓涓粨鐐癸紝婊¤凍濡備笅涓や釜鎬ц川錛?/span> 1) 褰撳墠緇撶偣鐨?/span>a鍊煎ぇ浜庡畠鐖惰妭鐐圭殑a鍊?/span>(灝忛《鍫嗙殑鎬ц川)錛?/span> 2) 褰撳墠緇撶偣鐨?/span>key鍊煎ぇ浜庡乏瀛愭爲鐨?/span>key鍊鹼紝騫朵笖灝忎簬鍙沖瓙鏍戠殑key鍊?/span>(鎺掑簭浜屽弶鏍戠殑鎬ц川)錛?/span> 棰樼洰淇濊瘉鎵鏈夌殑key鍊煎拰a鍊奸兘涓嶅悓銆?/span> 棰樿В錛氶鍏堝皢鎵鏈夋暣鏁板鎸?/span>key鍊奸掑鎺掑簭錛岃繖鏍鋒垜浠彧闇瑕佸鏁扮粍榪涜鍒囧垎錛屽鏋滅t涓粨鐐逛綔涓烘牴緇撶偣錛岄偅涔?/span>[1, t-1]蹇呭畾鏄畠鐨勫乏瀛愭爲闆嗗悎錛?/span>[t+1, N]蹇呭畾鏄畠鐨勫彸瀛愭爲闆嗗悎錛岃繖鏍峰氨鑳藉淇濊瘉絎簩涓潯浠訛紝鑰岀涓涓潯浠墮渶瑕佹弧瓚崇埗鑺傜偣鐨?/span>a鍊煎皬浜庡乏鍙沖瓙鏍戠殑a鍊鹼紝鎵浠ョt涓粨鐐瑰繀瀹氭槸鎵鏈夋暟涓?/span>a鍊兼渶灝忕殑錛屼簬鏄彲浠ヨ綰﹀嚭涓涓掑綊綆楁硶錛屽浜庡綋鍓嶅尯闂?/span>[l, r]錛屾壘鍒板尯闂村唴a鍊兼渶灝忕殑浣滀負鏍圭粨鐐癸紝鐒跺悗灝嗗畠宸﹁竟鐨勫尯闂村拰鍙寵竟鐨勫尯闂磋繘琛岀浉鍚岀殑閫掑綊榪愮畻銆傚垵濮嬪尯闂翠負[1, N]錛屽綋[l, r]婊¤凍 l > r鍗充負閫掑綊鍑哄彛銆傛眰鍖洪棿鏈灝忓煎彲浠ラ噰鐢?/span>RMQ銆?/span>鎬葷殑鏃墮棿澶嶆潅搴︿負鎺掑簭鐨勬椂闂村鏉傚害O(N log N)銆?/span> RMQ 璧勬枡鍙傞槄 http://www.shnenglu.com/menjitianya/archive/2014/06/26/207420.html 嬈ф媺鍥炶礬 姹傝繖涓浘鐨勪竴涓搱瀵嗗皵欏垮洖璺?/span>(緇忚繃姣忎釜欏剁偣涓嬈$殑鍥炶礬)銆?/span> 棰樿В錛氶鍏堝皢鎵鏈夊害鏁頒負2鐨勭偣榪涜鏍囪錛岄偅涔堜粠榪欎釜鍥劇殑瀹氫箟涓彲鐭ワ紝鏈爣璁扮殑鐐瑰繀瀹氭槸鍦ㄤ竴涓畬鍏ㄥ瓙鍥句腑鐨勶紝灝嗗浘涓墍鏈夊畬鍏ㄥ瓙鍥句腑鐨勭偣緙╂垚涓涓偣錛屽緙╁畬鐐圭殑鍥劇粺璁″害鏁幫紝濡傛灉鎵鏈夌殑鐐圭殑搴︽暟閮戒負鍋舵暟錛岄偅涔堝繀瀹氬瓨鍦ㄤ竴涓鎷夊洖璺紝姹傚嚭嬈ф媺鍥炶礬鍚庡啀鎷嗙偣杞崲鎴愬搱瀵嗗皵欏垮洖璺紱鍚﹀垯錛屾鎷夊洖璺笉瀛樺湪錛屽搱瀵嗗皵欏垮洖璺篃灝變笉瀛樺湪銆?/span> 157 Patience 鎵撹〃棰?br /> 棰樻剰錛氱粰瀹?/span>N(1 <= N <= 13)錛岃〃紺?/span>(1 2 3 ... N 絀?/span>)榪?/span>N+1涓綅緗紝鍏朵腑N涓綅緗殢鏈烘帓鏀劇潃1-N涓殑鏌愪竴寮犵墝錛屾瘡嬈″彲浠ュ湪“絀?#8221;宸﹁竟鐨勪綅緗壘鍒頒竴寮犵墝K錛岀劧鍚庡皢K+1榪欏紶鐗屾斁鍦?#8220;絀?#8221;鐨勪綅緗笂錛岄棶鍝簺鍒濆鐘舵佸彲浠ュ埌杈句竴涓姸鎬佷嬌寰楀墠N涓牸瀛愮殑鐗屾湁搴忔帓鍒楋紙絎?/span>N+1涓綅緗暀絀猴級銆?br /> 棰樿В錛氫粠(1 2 3 ... N 絀?/span>)榪欎釜鐘舵佽搗錛屽弽鍚戞ā鎷燂紝鑳藉鍒拌揪鐨勭姸鎬侀兘鏄彲杈劇姸鎬侊紝緇熻鎵鏈夊彲杈劇姸鎬佺殑涓暟錛?/span>N鐨勬渶澶у間負13錛屾椂闂翠笂涓嶅厑璁稿彲浠ュ鎴風璁$畻鍑哄肩劧鍚庢墦琛紒 浜屽垎鏋氫婦 棰樿В錛氬彧瑕佹灇涓捐濺闇瑕佸仠闈犵殑浣嶇疆錛岀劧鍚庢灇涓炬瘡涓漢鍒拌揪鐨勯偅涓濺闂ㄨ姳璐圭殑璺濈鎬誨拰錛屽彇鏈澶у煎氨鏄瓟妗堛?/span> 榪欓噷瀵逛簬鏌愪釜浜洪渶瑕佸幓鍝釜杞﹂棬鍙互閲囩敤浜屽垎鏋氫婦錛屽洜涓鴻濺闂ㄦ槸鏈夊簭鐨勶紝鍙浜屽垎鎵懼埌紱誨畠鏈榪戠殑宸﹁濺闂紝閭d箞涓嬩竴涓氨鏄渶榪戠殑鍙寵濺闂紙闇瑕佽冭檻杈圭晫錛屾渶宸﹀拰鏈鍙崇殑鎯呭喌閮藉彧鏈変竴涓濺闂級錛岀劧鍚庡彇宸︺佸彸杞﹂棬鐨勮窛紱誨皬鑰呫?/span>浠旂粏鎯充竴涓嬶紝鏈澶у間笉涓瀹氬嚭鐜板湪鏁寸偣涓婏紝涔熸湁鍙兘鍑虹幇鍦?/span>0.5鐨勪綅緗笂錛屾墍浠ュ彲浠ュ皢鎵鏈夊潗鏍囬兘涔?/span>2錛岀劧鍚庢渶鍚庣瓟妗堝啀闄や簩閬垮厤綺懼害璇樊銆?/span> 159 Self-Replicating Numbers 娣卞害浼樺厛鎼滅儲 棰樻剰錛?/span>姹?/span>N(N <= 2000)浣?/span>B榪涘埗鏁頒腑騫蟲柟鐨勬渶鍚庡嚑浣嶇瓑浜?/span>璇ユ暟鏈韓鐨勬暟鐨勪釜鏁般?/span> 棰樿В錛氬埄鐢?/span>dfs浠庢渶鍚庨潰涓浣?/span>digit寮濮嬫灇涓?/span>[0, B)錛屾ā鎷熺浉涔樺悗瀵瑰簲浣嶇殑浣欐暟錛屽鏋滃拰璇ユ暟鐨勬灇涓鵑偅涓浣嶄笉鐩哥鍒欎笉榪涜涓嬩竴姝ユ悳绱紝褰撴灇涓懼埌絎?/span>N浣嶅畬姣曪紝鍒欏皢瑙d繚瀛橈紝榪欓噷闇瑕佹敞鎰忓綋N涓?/span>1鐨勬椂鍊欙紝鏈楂樹綅鍙互涓?/span>0錛屽惁鍒欐渶楂樹綅涓?/span>0鐨勬儏鍐甸渶瑕佸幓鎺夛紙鏈楂樹綅涓?/span>0璇存槑瀹冧笉鏄?/span>N浣嶆暟錛?/span>N>1錛夛級銆?/span> 璁$畻鍑犱綍錛氬皠綰挎棆杞?br /> 棰樻剰錛氶渶瑕佹眰涓涓澶氳竟褰㈢殑N涓偣錛屼絾鏄粰鍑虹殑鍙湁N鍜屾煇涓や釜鐐圭殑鍧愭爣銆?/span> 棰樿В錛氭牳蹇冩濇兂鏄牴鎹粰瀹氱殑閭d袱涓偣鐨勫潗鏍囩‘瀹氬杈瑰艦涓績鐐圭殑鍧愭爣錛岃繖鏍瘋竟闀夸篃紜畾浜嗭紝鐒跺悗鍒╃敤涓績鐐瑰埌鍏朵腑涓涓偣鐨勫皠綰跨殑鏃嬭漿姹傚嚭鎵鏈夌殑鐐瑰潗鏍囥?/span> 1) 姝e杈瑰艦鐨勪腑蹇冪偣涓瀹氬湪浠繪剰涓や釜欏剁偣鐨勮繛綰跨殑涓瀭綰夸笂錛岀劧鍚庢牴鎹凡鐭ョ偣鐨勭浉瀵瑰叧緋伙紝綆楀嚭浠栦滑鍜屼腑蹇冪偣鐨勫す瑙掞紝鍒╃敤榪欎袱涓潯浠跺氨鍙互姹傚嚭涓績鐐圭殑鍧愭爣浜嗐?/span> 2) 鐒跺悗灝辨槸瑕佹眰鏌愪釜鐐圭粫涓績鐐規棆杞?/span>360/N搴﹀悗鐨勫潗鏍囦簡錛屽仛N-1嬈℃棆杞搷浣滃氨鑳芥眰鍑烘墍鏈夌殑欏剁偣浜嗐傛棆杞彲浠ラ氳繃瑙f柟紼嬫眰瑙o細 浠ゅ師鍗曚綅鍚戦噺I錛屾棆杞?/span>alpha瑙掑害鍚庣殑鍗曚綅鍚戦噺Ia錛屽叾涓?/span>I鍜?/span>alpha宸茬煡錛?/span>Ix鏄垜浠渶瑕佹眰鐨勩傞偅涔堟湁浠ヤ笅涓や釜鏂圭▼錛?/span> 1) I.x * Ia.x + I.y * Ia.y = cos( alpha ) 2) Ia.x2 + Ia.y2 = 1 灝?/span>1)涓殑Ia.x鐢?/span>Ia.y琛ㄧず浠e叆鏂圭▼2)錛屽埄鐢ㄤ竴鍏冧簩嬈℃眰鏍瑰叕寮忓彲浠ユ眰寰椾袱涓В錛岀劧鍚庣畻鍑?/span>Ia.x錛屼絾鏄В鑲畾鍙湁涓涓紝鍙互鐢ㄥ弶涔樺叧緋繪帓闄ゆ帀鍙﹀涓涓В銆?br /> 121 Bridges painting 鍥捐錛欴FS鏋勯?/span> 棰樻剰錛氬浜庝竴涓浘錛岀粰瀹氬畠鐨勮竟鍜岀偣錛岀幇鍦ㄨ姹傜粰杈規煋鑹詫紙榛戣壊鎴栬呯櫧鑹詫級銆傞棶鑳戒笉鑳芥瀯閫犱竴縐嶆煋鑹叉柟娉曪紝浣垮緱鎵鏈夌殑搴︽暟澶т簬1鐨勭偣鐨勮竟閮借兘鏈夎嚦灝戞湁涓鏉¤竟涓洪粦鑹層佽嚦灝戞湁涓鏉¤竟涓虹櫧鑹層?/span> 棰樿В錛氶鍏堣冭檻浠涔堟儏鍐典笅鏄笉鍙兘鏌撹壊鎴愬姛鐨勶紱濡傚浘1鎵紺猴紝瀵逛簬涓嬮潰榪欎釜鍥撅紝姣忎釜鐐圭殑欏剁偣搴︽暟涓?/span>2錛屾墍浠ヤ粠浠繪剰涓鏉¤竟寮濮嬫煋鑹詫紝鐩擱偦杈瑰繀鐒朵負鐩稿弽鑹詫紝鐢變簬瀛樺湪濂囩幆錛屽鑷村繀鐒舵湁涓涓偣鐨勪袱鏉¤竟鐨勯鑹茬浉鍚岋紝鏌撹壊澶辮觸銆?/span> 鐒跺悗鍐嶆潵鑰冭檻鎬庝箞灝嗚繖涓浘鎸芥晳鍥炴潵錛屽叾瀹炶繖涓浘澶辮觸鐨勭偣鍙湁涓涓紝濡傛灉鍦ㄩ偅涓偣涓婂啀鍔犱竴鏉¤竟錛岄偅涔堟暣涓浘璨屼技灝卞彲浠ヨ涓烘煋鑹叉垚鍔熶簡銆?/span> 浜庢槸鎴戜滑榪涗竴姝ヨ冭檻鏄笉鏄害鏁頒負濂囨暟鐨勭偣閫犲氨浜嗚繖涓鍒囷細 搴︽暟 = 1錛岃鐐規墍鍦ㄨ竟鍙互闅忎究鏌撹壊錛?/span> 搴︽暟 > 1錛岃鏄庡繀鐒跺瓨鍦ㄧ幆錛?/span> 濡傛灉鏄伓鏁扮幆錛岄偅涔堢粡榪囦竴緋誨垪鐨勪氦閿欐煋鑹詫紝鏈鍚庡繀鐒惰兘澶熷湪璇ョ粨鐐逛笂鏀惰幏涓ゆ潯棰滆壊涓嶄竴鏍風殑杈癸紱 濡傛灉鏄鏁扮幆錛屽湪鏌撹壊瀹屾瘯鍚庯紝蹇呯劧榪樻湁涓鏉¤竟鏈鏌撹壊錛堝洜涓哄害鏁頒負濂囨暟錛夛紝鍙互澶ц儐鐨勫皢瀹冩煋鎴愪笉鍚岀殑棰滆壊錛?/span> 鎵浠ュ浜庡害鏁頒負濂囨暟鐨勭偣錛岄噰鐢ㄤ氦閿欐煋鑹詫紝涓瀹氬彲浠ュ皢鍥炬煋鑹叉垚鍔燂紱 濡傚浘錛屽彲浠ュ浜庢墍鏈夊搴︽暟欏剁偣浣滀負鏍硅繘琛屼竴嬈?/span>dfs錛屾寜鐓х紪鍙烽『搴忚繘琛屾繁搴︿紭鍏堥亶鍘嗭紝鍏堥亶鍘嗗埌鐨勬槸1鍙鳳紝鏍囪涓洪粦鑹詫紝鐒跺悗灝嗗畠鐨勭涓涓効瀛愭爣璁頒負鐧借壊錛岄亶鍘嗗畬姣曪紝灝嗙浜屼釜鍎垮瓙鏍囪涓洪粦鑹詫紙浜ら敊鏌撹壊錛夛紝鍗蟲瘡嬈℃洿鎹㈢粨鐐圭殑鏃跺欏氨灝嗛鑹插彇鍙嶏紝褰撴垜浠亶鍘嗗埌杈?/span>6鐨勬椂鍊欏彂鐜?/span>7鏄竴鏉″悗鍚戣竟錛屼簬鏄洖鍒頒簡鏍圭粨鐐癸紝瀹屾垚閬嶅巻銆?/span> 鍒╃敤鍚屾牱鏂規硶錛屽皢鎵鏈夊害鏁頒負濂囨暟鐨勭偣榪涜涓嬈¢亶鍘嗭紝鐒跺悗鍐嶅皢搴︽暟涓哄伓鏁扮殑鐐硅繘琛岀浉鍚岀殑閬嶅巻錛堝洜涓哄彲鑳借繖涓嶆槸涓涓繛閫氬浘錛屾墍浠ュ鏋滃害鏁頒負鍋舵暟鐨勭偣鎵鍦ㄧ殑鍥鵑泦鍚堜腑鏈夊鏁扮幆錛屽鍥?/span>1鐨勬儏鍐碉紝閭d箞蹇呯劧鏃犺В錛夈?/span> 閬嶅巻瀹屾瘯錛岄渶瑕佸姣忎釜鐐瑰垽鏂槸鍚﹀瓨鍦ㄤ笉鍚堟硶鐨勯《鐐癸紙杈規暟澶т簬1錛屽茍涓斿彧鏈変竴縐嶆煋鑹詫級錛屽鏋滃悎娉曪紝璇存槑鎵鏈夎竟閮借鏌撹壊浜嗭紝杈撳嚭瑙e嵆鍙?/span> 鍥?/span>1 鍥?/span>2 鍝堝瘑灝旈】鍥炶礬闂錛歄re瀹氱悊 + 鏋勯?/span> 棰樻剰錛氱粰瀹?/span>N(N <= 1000)涓偣榪炴垚鐨勫浘錛屾瘡涓偣搴︽暟澶т簬絳変簬(N+1)/2錛屾眰榪欎釜鍥劇殑涓鏉″搱瀵嗗皵欏垮洖璺?/span> 棰樿В錛?/span> 1錛夐鍏堝亣璁懼凡緇忓緱鍒頒簡涓涓幆R錛?/span>R鐨勯《鐐逛釜鏁頒負r錛夛紝閭d箞鍦ㄦ湭閫夊埌鐜唴鐨勭偣闆?/span>R’涓繀鐒惰兘澶熸壘鍒版煇涓偣k鍜岀幆R涓叾涓竴涓偣j鏈夎竟鐩歌繛錛屽亣璁炬病鏈夎竟鐩歌繛錛岄偅涔堢幆R鍜岀幆澶栫殑鐐歸泦R’浜掍笉榪為氾紝涓轟袱涓繛閫氬垎閲忥紝鍜岄鎰忕浉宸︼紙鍥犱負姣忎釜鐐圭殑搴︽暟澶т簬絳変簬錛?/span>N+1錛?/span>/2錛屽浘璁轟功涓婃湁璇佹槑錛岃繖鑲畾鏄竴涓繛閫氬浘錛屾晠涓嶅啀绱堪錛夛紝鏁?/span>R’涓繀鐒跺瓨鍦ㄨ嚦灝戜竴涓偣k鍜?/span>R涓偣j鐩歌繛錛屼簬鏄皢閭d釜鐐?/span>j榪炴帴鍒?/span>k涓婏紝榪欐牱灝卞彉鎴愪簡涓涓暱搴︿負r+1鐨勯摼銆?/span> 2錛夎繖涓摼鐨勫ご涓?/span>s錛屽熬涓?/span>k錛岄暱搴︿負r+1錛屼笉鏂湪鍓╀笅鐨勭偣闆嗕腑鎵劇偣榪炴帴鍒?/span>s鍜?/span>k涓婏紝騫朵笖涓嶆柇鏇存柊s鍜?/span>k錛堣繛鎺ュ埌澶翠笂錛岃繛鎺ョ殑鐐瑰氨鍙樻垚浜?/span>s錛岃繛鎺ュ埌灝句笂錛岃繛鎺ョ殑鐐瑰氨鍙樻垚浜?/span>k錛夛紝鐩村埌鎵懼埌涓涓瀬澶ц繛閫氬瓙閾撅紙涓嶈兘鍐嶅湪鍓╀笅鐨勭偣涓壘鍒扮偣榪炴帴鍒伴摼鐨勪袱绔簡錛夈?/span> 3錛夌敱浜?/span>k鍜屽墿涓嬬偣闆?/span>R’娌℃湁鐐圭浉榪烇紝鎵浠ユ垜浠彧鑳藉湪榪欐潯闀塊摼涓婃壘鍜?/span>k鐩歌繛鐨勭偣t錛堝洜涓轟竴瀹氬彲浠ユ壘鍒幫紝涓轟粈涔堝憿錛?/span>k鏈韓涓嶅氨鏈変釜閾懼唴鐨勭偣榪炵潃鍢涳紝涓嶇劧瀹冨氨鏄釜瀛ょ珛鐐逛簡錛?/span>銆傛墍浠ユ壘鍒?/span>(k , t)鐩歌繛錛屽茍涓?/span>(s, t+1) 鐩歌繛錛岀劧鍚庡垹鎺?/span>(t, t+1)榪欐潯杈癸紝灝辮兘澶熷緱鍒頒竴涓柊鐨勭幆浜嗭紝濡傛灉姝ゆ椂鐜殑闀垮害涓?/span>n灝辯粨鏉熶簡錛屽惁鍒欑戶緇?/span>1錛夈?/span> 閫掓帹 棰樻剰錛氭眰鏂愭嘗閭e鏁板垪鐨勭N(N <= 40)欏廣?/span> 棰樿В錛?/span>__int64鏁扮粍棰勫鐞嗗嵆鍙?br /> 璁$畻鍑犱綍: 綰挎鍒や氦 棰樻剰錛氬湪騫抽潰涓婃湁涓浜涢棴鍚堢嚎孌碉紙娌℃湁鑷氦鍜岀浉浜掍氦鍙夛級錛屽垽鏂粰瀹氱殑鐐?/span>P鏄惁鍦ㄨ繖涓棴鍚堢嚎孌靛唴銆?/span> 棰樿В錛氬叾瀹炲氨鏄垽鏂竴涓偣鏄惁鍦ㄥ杈瑰艦鍐咃紱 棣栧厛錛岃櫄鎷熷嚭涓涓棤絀瘋繙鐨勭偣Q錛岀劧鍚庣敤PQ鍜屾瘡涓棴鍚堢嚎孌靛幓鍋氱浉浜ゆ嫻?/span>(涓ょ嚎孌靛垽浜ゅ湪榛戜功涓婃湁璇﹀敖鐨勮В閲?/span>,涓嶅啀绱堪)銆?/span> 1) 濡傛灉P鍦ㄦ煇鏉$嚎孌典笂錛岃緭鍑?/span>BORDER錛?/span> 2) 濡傛灉PQ鍜屾墍鏈夌嚎孌典氦鐐逛釜鏁頒負濂囨暟錛岃鏄庡湪澶氳竟褰㈠唴錛岃緭鍑?/span>INSIDE錛?/span> 3) 濡傛灉PQ鍜屾墍鏈夌嚎孌典氦鐐逛釜鏁頒負鍋舵暟錛岃鏄庡湪澶氳竟褰㈠錛岃緭鍑?/span>OUTSIDE錛?/span> 125 Shtirlits 娣卞害浼樺厛鎼滅儲 + 鍓灊 棰樻剰錛氱粰瀹氫竴涓煩闃?/span>B (3X3)錛?/span>B[i][j]琛ㄧずA[i][j]鍥涘懆姣斿畠澶х殑鏁扮殑涓暟錛屾眰婊¤凍鏉′歡鐨?/span>A銆?/span> 棰樿В錛氭灇涓?/span>A[i][j]鐨勬瘡涓暟瀛楋紝鏁板瓧鐨勮寖鍥翠負 [0,9]銆傚鏉傚害109錛屾墍浠ラ渶瑕佽繘琛屼竴瀹氱殑鍓灊銆?/span> a) 棣栧厛錛屽彲浠ヨ偗瀹氳繖B[i][j]涓竴瀹氫細鑷沖皯鏈変竴涓?/span>0錛屽洜涓烘繪湁涓涓暟娌℃湁姣斿畠澶х殑鏁幫紙楂樺涓嶈儨瀵掑晩~~錛夈?/span>瀵逛簬B[i][j] == 0鐨勬牸瀛愶紝灝?/span>A[i][j]璁句負鏈澶у?/span>9涓瀹氫笉浼氶敊錛屾墍浠ュ鏉傚害鑷沖皯鍙互闄嶅埌 108 浜嗐?/span> b) 灝?/span>A鐨勬瘡涓潪9鐨勬牸瀛愭爣璁頒負-1錛岀劧鍚庡姣忎釜鏍煎瓙榪涜鏋氫婦錛屾灇涓捐寖鍥翠負 [ 0, 8 ], 鍥犱負B[i][j]涓哄洓鍛ㄦ瘮瀹冨ぇ鐨勬暟鐨勪釜鏁?/span>, 濡傛灉A[i][j]==9錛岄偅涔?/span>B[i][j]蹇呴』涓?/span>0錛屽鏉傚害闄嶈嚦 98銆?/span> c) 姣忔鏋氫婦瀹屾瘯錛岃繘鍏ヤ笅涓涓暟鐨勬灇涓句箣鍓嶏紝榪涜鍏ㄥ眬鐨勬嫻嬶紝瀵逛簬姣忎釜鏍煎瓙緇熻浠ヤ笅鏁版嵁錛?/span> i) 宸茬粡鏋氫婦鐨勯偦灞呮牸瀛?/span> H ii) 鎬誨叡鏈夊灝戜釜閭誨眳鏍煎瓙 T iii) 姣旇嚜宸卞ぇ鐨勯偦灞呮牸瀛?/span> B 鐒跺悗榪涜絳涢夛紝濡傛灉 x) 姣斿綋鍓嶆牸瀛愬ぇ鐨勯偦灞呮暟宸茬粡瓚呭嚭闄愬畾鍊?/span>, 鍗?/span> B > B[i][j] y) 姣斿綋鍓嶆牸瀛愬ぇ鐨勯偦灞呮暟 + 鍓╀綑鏈煡閭誨眳鏁?/span> < 緇欏畾姣斿畠澶х殑閭誨眳鏁幫紝 鍗?/span> B + (T-H) < B[i][j] 鍧囦負鏃犳晥瑙o紝鏃犻渶寰涓嬫灇涓撅紝鍥炴函銆?/span> d) 鐩村埌鎵鏈夋暟鏋氫婦瀹屾瘯錛岃緭鍑鴻В鍗沖彲銆?/span> 126 Boxes 鍒濈瓑鏁拌 棰樻剰錛氬浜庣粰瀹氱殑A鍜?/span>B錛?/span> 濡傛灉A > B, 鍒欑姸鎬佸彉涓?/span> (A-B, 2*B) 濡傛灉A < B, 鍒欑姸鎬佸彉涓?/span> (2*A, B-A) 褰?/span> A == B 鏃訛紝緇撴潫銆?/span> 瑕佹眰杈撳嚭榪欎釜鎯呭喌鏄惁瀛樺湪錛屽鏋滃瓨鍦ㄨ緭鍑哄彉鎹㈢殑嬈℃暟錛屼笉瀛樺湪杈撳嚭-1銆?/span> 棰樿В錛氭牴鎹鎰忥紝鍙互寰楀嚭涓浜涚畝鍗曠殑鎺ㄨ錛?/span> a) 褰?/span>A == 0 鎴栬?/span> B == 0 鏃?/span> 絳旀涓?/span> 0銆?/span> b) 鏈鍚?/span>A == B鐨勬椂鍊欙紝蹇呭畾鏄?/span>K = (A+B)/2錛屾墍浠ュ綋A+B涓哄鏁版椂絳旀涓嶅瓨鍦ㄣ?/span> c) 瀹氫箟鏈鍚庣殑鐘舵佷簩鍏冪粍涓?/span> (K, K), 鍊掓暟絎簩嬈$殑鎿嶄綔蹇呭畾涓?/span> (3K/2,K/2) 鎴栬?/span>(K/2,3K/2) (2縐?/span>) 鍊掓暟絎笁嬈$殑鎿嶄綔蹇呭畾涓?/span> (7K/4, K/4) 鎴栬?/span> (3K/4, 5K/4) 鎴栬?/span> (5K/4, 3K/4) 鎴栬?/span> (K/4, 7K/4) (4縐?/span>) 鍊掓暟絎洓嬈℃搷浣?/span>(15K/8,K/8)... (8縐?/span>) 鍊掓暟絎?/span>i嬈℃搷浣?/span> ( (2(i-1)-1)/2(i-1) * K, 1/2(i-1) * K ) ... (2(i-1) 縐?/span>) d) A鍜?/span>B鐨勭粍鍚堝繀瀹氬湪榪欎簺鎯呭喌涓壘銆?/span> 浜庢槸瀹氫箟 A = L1 / 2n * K, B = L2 / 2n * K (鍏朵腑K = (A+B)/2, L1,L2涓哄鏁幫紝騫朵笖(L1+L2) = 2(n+1)) 寰楋細 L1 = 2n * (A/K) L2 = 2n * (B/K) 浠?/span> A = 2a * A', K = 2k * K' 鍒欐湁 L1 = 2(n+a-k) * A'/K' 涓哄鏁幫紝鎵浠?/span>n+a-k = 0錛屽茍涓旇淇濊瘉A' mod K' == 0錛?/span>A 鍜?/span> K 閮戒負宸茬煡錛屽垯鍙互璁$畻鍑?/span> a 銆?/span>A'銆?/span>k銆?/span>K'錛屾渶緇堢殑姝ユ暟灝辨槸k-a+1銆?/span> 闇瑕佹敞鎰忕壒孌婃儏鍐碉細A鎴?/span>B涓?/span>0鐨勬儏鍐碉紝浠ュ強A+B涓哄鏁扮殑鎯呭喌銆?/span> 127 Telephone directory 灝嗘墍鏈夌數璇濆彿鐮佹寜棣栧瓧姣嶆帓搴忥紝緇熻姣忎釜棣栧瓧姣嶅嚭鐜扮殑嬈℃暟Ai錛?Sum{ (Ai + K - 1 ) / K } + 2 灝辨槸絳旀銆?/p> 鎯蟲硶棰?/span> 棰樻剰錛氱粰瀹?/span>N錛?/span>4<=N<=10000錛変釜鏁存暟鐐癸紝闂兘涓嶈兘緇勫嚭涓涓杈瑰艦錛屾弧瓚充互涓嬫潯浠訛細 a) 闂悎錛?/span> b) 鎵鏈夌殑鐐歸兘鏄杈瑰艦涓婄殑鐐癸紝騫朵笖鍙兘琚敤涓嬈★紱 c) 浠諱綍涓や釜榪炵畫鐨勭嚎孌甸渶瑕佺粍鎴愪竴涓?/span>90搴︾殑鐩磋錛?/span> d) 澶氳竟褰㈢殑鎵鏈夎竟閮借騫寵浜庡潗鏍囪醬錛?/span> e) 澶氳竟褰笉鑳藉瓨鍦ㄨ嚜浜わ紱 f) 澶氳竟褰㈢殑鍛ㄩ暱瑕佹弧瓚蟲渶灝忥紱 棰樿В錛?/span> 1) 瀵逛簬杈撳叆鐨勭偣淇濆瓨涓や喚鏁扮粍PX銆?/span>PY錛屽茍涓旇褰曟瘡涓偣鍦ㄥ師鏁扮粍鐨勪笅鏍?/span>index錛?/span> 2) 瀵?/span>PX榪涜X浼樺厛鎺掑簭錛屽PY榪涜Y浼樺厛鎺掑簭錛?/span> 3) 瀵?/span>PX涓簭鍙蜂負濂囨暟鐨勭偣PX[i]鍜屽畠鐨勪笅涓涓偣PX[i+1]榪涜y鍊肩殑鍒ゆ柇錛屽鏋滆繖涓や釜鐐圭殑y鍊間笉鐩哥瓑錛岄偅涔堣鏄庤繖涓偣鏃犳硶鍔犲叆澶氳竟褰腑錛?/span>PX[i]鏃犳硶閰嶅錛岃瀛ょ珛浜嗭級錛屾棤瑙c傚惁鍒?/span>PX[i].index鍜?/span>PX[i+1].index蹇呯劧鏈変竴鏉¤竟錛堝彲浠ョ敤閭繪帴琛ㄦ潵瀛樿竟鍏崇郴錛屽洜涓烘渶鍚庢眰鐨勬槸涓涓杈瑰艦錛屾墍浠ユ瘡涓偣鏈変笖浠呮湁涓ゆ潯杈癸紝鍏跺疄灝辨槸涓涓搱瀵嗗皵欏垮洖璺級銆?/span> 騫朵笖鍔?/span>PX[i+1].x - PX[i].index 绱姞鍒扮瓟妗?/span>ans涓紱 4) 瀵?/span>PY涓殑鐐逛綔鍜?/span>3錛変竴鏍風殑澶勭悊錛屼繚瀛樿竟鐨勫叧緋伙紝浣嗘槸榪欓噷闇瑕佸垽鏂竴縐嶈嚜浜ょ殑鎯呭喌錛屽鍥?/span>1涓紝3)鎿嶄綔瀹屾瘯鍚庯紝浜х敓涓夋潯杈?/span>(1,1) - (2,1) (1,2) -(3, 2) (2,3) - (3,3)錛涢偅涔堝湪榪涜鎿嶄綔4錛夌殑鏃跺?/span>(1,1)-(1,2) 鍜?/span> (3,2) - (3, 3)閮芥槸娌¢棶棰樼殑錛屽敮鐙?/span> (2,1) - (2,3) 鍜?/span> 鍏堝墠鐨勮竟 (1,2) -(3, 2) 浼氫駭鐢熻嚜浜わ紝榪濆弽浜?/span>e榪欐潯瑙勫垯錛屾墍浠ラ渶瑕佹嫻嬭繖縐嶆儏鍐墊槸鍚﹀瓨鍦紝濡傛灉瀛樺湪錛岄偅涔堝繀鐒舵棤瑙o紱鍏蜂綋媯嫻嬫柟娉曞緢澶氾紝涓嶅啀绱堪錛?/span> 鍥?/span>1 5) 榪涜繃3)鍜?/span>4)鍚庯紝鍐嶈繘琛屼竴嬈¤繛閫氭у垽鏂嵆鍙紝浠ラ槻鍥?/span>2鐨勬儏鍐點?/span> 鍥?/span>2 129 Inheritance 瑙f瀽鍑犱綍 + 鍑稿寘 + 綰挎鍒や氦 棰樻剰錛氱粰瀹氫竴涓杈瑰艦鍜岃嫢騫茬嚎孌碉紝榪欎釜澶氳竟褰㈠唴浠繪剰涓ょ偣榪炵嚎涓嶄細鍜屽杈瑰艦杈圭晫鐩鎬氦錛屽垎鍒眰榪欎簺綰挎鍦ㄥ杈瑰艦鍐呴儴鐨勯暱搴︺?/span> 棰樿В錛氶鍏堬紝鏍規嵁“澶氳竟褰㈠唴浠繪剰涓ょ偣榪炵嚎涓嶄細鍜屽杈瑰艦杈圭晫鐩鎬氦”鍙互鑲畾榪欐槸涓嚫澶氳竟褰紝浜庢槸闂灝辮漿鍖栨垚浜嗘眰鏌愭潯綰挎鍜屽嚫澶氳竟褰㈢浉浜ゅ悗綰挎鍦ㄥ杈瑰艦鍐呴儴鍒嗙殑闀垮害銆?/span> 鐢變簬緇欏畾鐨勭偣鏄貢搴忕殑錛屾墍浠ユ渶綆鍗曠殑鏂規硶鏄眰榪欎簺鐐歸泦鐨勪竴涓嚫鍖咃紝鏋勯犲嚭涓涓寜鐐規帓搴忕殑澶氳竟褰紝鐩擱偦涓ょ偣榪炵嚎涓哄師澶氳竟褰㈢殑涓鏉¤竟銆?/span> 閭d箞鏋氫婦姣忔潯杈瑰拰緇欏畾綰挎鐨勭浉浜ゆ儏鍐碉細 1) 涓嶇浉浜わ紙騫寵錛夛紝緇х畫鍒ゆ柇涓嬩竴鏉¤竟錛?/span> 2) 鍏辯嚎錛岀洿鎺ヨ煩鍑烘灇涓撅紝錛堢敱浜庢槸鍑稿杈瑰艦錛屾敼綰挎鑲畾涓嶅彲鑳藉湪澶氳竟褰㈠唴錛夛紱 3) 鐩鎬氦錛屽皢榪欎釜浜ょ偣瀛樺叆闆嗗悎S錛?/span> 灝嗗師綰挎鐨勪袱涓鐐瑰瓨鍏ラ泦鍚?/span>S錛屽闆嗗悎S鐨勭偣榪涜x鍧愭爣閫掑鎺掑簭錛?/span>x鐩稿悓鏃?/span>y鍧愭爣閫掑鎺掑簭錛夛紝鐒跺悗鏋氫婦鐩擱偦涓や釜鐐圭殑涓偣錛屽垽鏂槸鍚﹀湪鍦ㄥ師澶氳竟褰㈠唴錛屽鏋滃湪錛岄偅涔堝皢榪欎袱涓浉閭葷偣緇冩垚鐨勭嚎孌電殑闀垮害绱姞鍒版渶鍚庣殑絳旀涓傚鍥?/span>1涓轟袱涓氦鐐圭殑鎯呭喌銆?/span> 鍥?/span>1 璁$畻鍑犱綍錛氬皠綰垮拰鐞冧綋鐩鎬氦 棰樿В錛氬緢鏄庢樉錛岄鍏堥渶瑕佹灇涓炬瘡涓悆浣撳拰褰撳墠灝勭嚎鐨勭浉浜ゆ儏鍐碉紝濡傛灉鍜屽涓悆浣撶浉浜よ偗瀹氭槸鍙栬窛紱繪渶榪戠殑鐞冧綋榪涜鐩鎬氦璁$畻錛岀劧鍚庤綆楀嚭絀洪棿鍙嶅皠灝勭嚎錛岄噸澶嶄互涓婃搷浣?/span>11嬈★紝濡傛灉鏌愭鐨勫弽灝勫皠綰垮凡緇忎笉鑳藉拰浠諱綍鐞冧綋鐩鎬氦閭d箞鐩存帴璺沖嚭榪欎釜榪囩▼銆?/span> 濡傚浘1錛岃〃紺哄皠綰?/span>AB鍜岀悆O鐩鎬氦浜?/span>B鐐癸紝鍙嶅皠鍚庣殑灝勭嚎涓?/span>BC錛?/span>BD涓虹悆蹇?/span>O鍒頒氦鐐圭殑寤墮暱綰匡紝閭d箞蹇呭畾婊¤凍浠ヤ笅鍑犱釜鏉′歡錛?/span> 宸茬煡A鐐瑰潗鏍?/span>(xa, ya, za)錛屽崟浣嶅悜閲?/span>tab B鐐瑰潗鏍?/span> 涓?/span> (xb, yb, zb) = (xa, ya, za) + |AB| * tab (1) B鐐瑰湪鐞?/span>O涓婏紝鎵浠?/span>B鐐瑰潗鏍囨弧瓚?/span> | (xb, yb, zb) - (xo, yo, zo) | = OB = Ro (2) 灝?/span>(1)浠e叆(2)錛屽彲璁$畻鍑?/span>|AB|鐨勯暱搴︼紙鐢變簬鏄皠綰垮拰鐞冧綋姹備氦錛岃繖涓や釜鏂圭▼姹傚嚭鏉ョ殑鏄洿綰垮拰鐞冧綋鐨勪氦鐐癸紝鎵浠ヨ繕闇瑕佽綆楁柟鍚戝垽鏂氦鐐圭殑鍙鎬э紝濡傛灉浜ょ偣鏈変袱涓紝鍒欏彇璺濈灝忕殑閭d釜錛屽鏋滃彧鏈変竴涓氦鐐癸紝璇存槑鏄浉鍒囷級錛岀劧鍚庡埄鐢?/span>(1)寮忚綆楀嚭B鐐瑰潗鏍囥?/span> 2) 灝勭嚎緇忚繃鐞冧綋鐨勫弽灝勫皠綰?/span> 鍋囪C鐐瑰湪A緇忚繃B鐐瑰弽灝勫悗鐨勫弽灝勫皠綰夸笂錛屽茍涓?/span>AB = BC錛岄偅涔?/span>AC蹇呭畾鍜?/span>OB寤墮暱綰跨浉浜わ紝鍋囪浜や簬D鐐癸紱 鍗曚綅鍚戦噺cos(ABD) = Iba * Ibd錛?/span> BD = AB * cos(ABD)錛?/span> 鍚戦噺AD = 鍚戦噺AB + 鍚戦噺BD錛?/span> 鍚戦噺AC = 2 * AD錛?/span> 鐐?/span>C (xc, yc, zc) = 鍚戦噺AC + (xa, ya, za)錛?/span> 鍚戦噺BC姹傚嚭鍚庤繑鍥?/span>1) 緇х畫鍒ゆ柇鍜屽埆鐨勭悆鐨勭浉浜ゆ儏鍐碉紱 浜屽垎絳旀 + 澶ф暟妯℃嫙 棰樻剰錛氱粰瀹?/span>X( X <= 10100)錛屾眰X寮鏂瑰悗鐨勪笅鍙栨暣銆?/span> 棰樿В錛氭暟緇勬ā鎷熷ぇ鏁般備簩鍒嗙瓟妗?/span>A錛屾壘婊¤凍 A*A <= X 鏈澶х殑A鍗充負絳旀銆?/span> 浜屽垎姹傚箓 + 澶ф暟妯℃嫙 棰樻剰錛氭眰 ab - ba ( 0 < a, b < 100)銆?/span> 棰樿В錛氭暟緇勬ā鎷熷ぇ鏁般備簩鍒嗘眰 AB銆?/span> 褰?/span> B == 0 鍒?AB = 1; 鍚﹀垯 AB = (A2)(B/2) * ( (B mod 2) ? A : 1 ); 閫掑綊姹傝В銆?/p> 113 Nearly prime numbers 绱犳暟絳涢?/span> + 绱犳暟鍒ゅ畾 棰樻剰錛氬垽鏂竴涓暟鏄惁涓轟袱涓礌鏁扮殑縐?/span> 棰樿В錛氬埄鐢ㄤ紶緇熺殑绱犳暟絳涢夊皢 1-31623 鐨勭礌鏁扮瓫閫夊嚭鏉ワ紝31623涓哄鉤鏂瑰ぇ浜庣瓑浜?/span>109鐨勬渶灝忔暣鏁幫紝鍥犱負涓涓暟鐨勫紑鏂瑰唴鎵句笉鍒頒竴涓?闈?鎴栧畠鏈韓)鍥犲瓙鐨勮瘽瀹冩湰韜氨鏄礌鏁幫紝鎵浠ョ礌鏁板彧闇瑕佺瓫閫夊埌 109 鐨勫紑鏂?/span> 鍗沖彲銆?/span> 瀵逛簬姣忎釜鏁幫紝閬嶅巻绱犳暟鏁扮粍錛屽鏋滆兘琚煇涓礌鏁版暣闄わ紝鍒ゆ柇鍟嗘槸涓嶆槸涓涓礌鏁幫紝濡傛灉鍟嗕篃鏄礌鏁扮粨鏋滀負Yes錛屽惁鍒欎負No銆?/span> 114 Telecasting station 鏋氫婦 + 緇熻 棰樻剰錛氬湪X杞翠笂瑙勫畾涓浜涙湁鏉冨?/span>ai鐨勭偣 (x1,a1), (x1,a1), (x2,a2) .. (xn,an)瑕佹眰鍦?/span>x鍧愭爣涓婃壘鍒頒竴涓偣X浣垮緱 M = |X-x1|*a1 + ... |X-xn|*an 鐨勫兼渶灝忋?/span> 棰樿В錛氱粏蹇冭瀵熷彲浠ュ彂鐜幫紝M鏄叧浜?/span>X鐨勪竴嬈″嚱鏁幫紝鎵浠ュ彲浠ョ‘瀹?/span>X蹇呭畾涓?/span> x1...xn涓殑鏌愪釜鐐廣?/span> 鐢變簬鍘熷紡涓瓨鍦ㄧ粷瀵瑰鹼紝涓轟簡灝嗙粷瀵瑰煎寲綆錛屽彲浠ュ皢X鐨勫尯闂村垎孌碉紝姣斿褰?/span>X 涓?/span> xj鏃跺彲浠ョ畝鍖栦負 M = (X-x1)*a1 + ...(X-xj)*aj + (xj+1-X)*aj+1 + ... + (xn-X)*an = (X * presum[j] - preproduct[j]) + (postproduct[j+1] - X * postsum[j+1]) 榪欎簺杈呭姪鏁扮粍鍙互閫氳繃鍥涙綰挎ф壂鎻忓緱鍑猴紝澶嶆潅搴?/span>O(n)銆?/span>鐒跺悗錛?/span>鍏堝皢xi閫掑鎺掑簭錛屾灇涓炬瘡涓?/span>xi錛岃綆楁渶灝忓兼洿鏂?/span>M錛屽氨鍙互鍦?/span>O(n)鐨勬椂闂村唴姹傝В浜嗐傛諱綋綆楁硶澶嶆潅搴︿負鎺掑簭澶嶆潅搴?/span>O(n log n)銆?br /> 綆鍗曟ā鎷?/span> 棰樻剰錛氱粰瀹氫竴涓湀浠?/span>M鍜屽ぉ鏁?/span>N錛屾眰2001鐨勯偅涓澶╂槸鏄熸湡鍑犮?/span> 棰樿В錛氬彲浠ラ澶勭悊鍑烘瘡涓湀鐨勫ぉ鏁幫紝濡傛灉澶╂暟澶т簬閭d釜鏈堝搴旂殑澶╂暟鎴栬呮湀鏁板ぇ浜?/span>12鑲畾鏄笉鍙鐨勶紝鍚﹀垯灝嗙粰瀹氭湀鏁?/span>M涔嬪墠鐨?/span> 1鍒?/span>M-1涓湀鐨勫ぉ鏁扮浉鍔犲啀鍔犱笂N寰楀埌Sum錛?/span>Sum mod 7灝卞彲浠ュ畾浣嶅埌鏄熸湡鍑犱簡銆?/span>
绱犳暟絳涢?/span> + 璁板繂鍖栨悳绱?/span>(鎴?/span> 鍔ㄦ佽鍒?/span>) 棰樿В錛氬厛灝嗘弧瓚蟲潯浠剁殑 瓚呯駭绱犳暟 絳涢夊嚭鏉ワ紝3 5 11 17絳夌瓑錛?/span>鐒跺悗瀵逛簬杈撳叆鐨?/span>N榪涜涓嬈¤蹇嗗寲鎼滅儲錛?/span>DP錛?/span> 渚嬪 N = 15 閭d箞N鐨勬渶浼樺間竴瀹氭槸鏉ヨ嚜 15-3=12錛?/span>
15-5=10錛?/span> 15-11=4 榪欎笁涓暟錛?/span>浠ユ綾繪帹錛岄掑綊鍑哄彛鏄?/span>N = 0錛屾瘡嬈¤綆楀畬N灝卞皢瀹冧繚瀛樹笅鏉ワ紝涓嬫灝變笉鐢ㄩ噸澶嶈綆椾簡銆?/span> 鎵浠ョ姸鎬佽漿縐繪柟紼嬩負錛?/span>DP[i] =
min{ DP [ i - p ] , p 涓鴻秴綰х礌鏁?/span> } + 1 鍥犱負闇瑕佽緭鍑虹粍鍚堢殑搴忓垪錛屾墍浠ユ瘡嬈℃悳绱紝闇瑕佷繚瀛樺綋鍓嶆渶浼樺肩殑鍓嶉┍緇撶偣錛屾渶鍚庝竴嬈℃ц緭鍑哄嵆鍙?/span> 浜屽垎姹備綑 棰樻剰錛氱粰瀹?/span>N(N < 10001)涓暟Ai錛屾眰鍏朵腑AiM
鏄?/span>K鐨勫嶆暟鐨勬暟鐨勪釜鏁般?/span> 棰樿В錛?/span>瀵逛簬ab mod c浜屽垎姹傝В銆?/span>褰?/span>
b == 0 鍒?nbsp;ab mod c = 1 mod c; 鍚﹀垯 ab mod c = (A2)(B/2)
* ( (B%2) ? A : 1 ) mod c; 鏁板褰掔撼娉?/span> 棰樻剰錛?/span>瀹氫箟f(n) 涓?/span> n鐨勬墍鏈夋暟瀛楃殑鍜?/span>. 濡傛灉 f(n) 鏄?/span>1浣嶆暟瀛楋紝閭d箞瀹冩槸n鐨?/span> "digital root"錛屽惁鍒?/span>n鐨?/span>"digital root" 涓?/span> f(n) 鐨?/span>"digital root"銆?br /> 緇欏畾鏁扮粍Ai錛屾眰 A1*A2* … *AN + A1*A2*…*AN-1 + … + A1*A2 + A1 鐨?/span>"digital root"(N <= 1000)銆?/span> 棰樿В錛氬畾涔?/span>d(n)涓?/span>n鐨?/span>"digital root"錛?/span>鍒╃敤鏁板褰掔撼娉曞彲璇佹槑(浠?/span>N=1鐨勬儏鍐電綉涓婇掓帹)錛?/span> 1) d( A1*A2* … *AN ) = d( AN * d( A1*A2* … *AN-1 ) ) 2) d(A1 + A2 ) = d( d(A1) +d(A2) ) 鍒╃敤榪欎袱鐐癸紝鍙互鐩存帴鎵弿A鏁扮粍灝卞彲浠ヨ綆楀嚭緇欏畾琛ㄨ揪寮忕殑"digital root"浜嗐?/span> 鏋氫婦 + 鎵╁睍嬈у嚑閲屽緱 棰樻剰錛氬浜庢墍鏈夌殑(X,Y)鍦ㄦ弧瓚?/span> (A0 * X + B0 * Y) % N = 0 (1) 鐨勬儏鍐典笅,浣垮緱(A * X + B * Y) % N = 0 (2) 涔熸垚绔?/span>, 姹傝繖鏍風殑 (A, B)銆?/span> 棰樿В錛氶鍏堟眰鍑?/span>A0銆?/span>B0銆?/span>N涓夎呯殑GCD錛屾渶鍚庣畻鍑烘潵鐨勭瓟妗堥渶瑕佷箻涓婅繖涓?/span>GCD銆?/span> (A0 * X + B0 * Y) = K * N (3) (K涓烘暣鏁?/span>) (A * X + B * Y) = K' * N (4) (K'涓烘暣鏁?/span>) X = (K*N - B0*Y) / A0 浠e叆(4)寮?/span>,鍙緱 A*(K*N - B0*Y) + B*A0*Y = K'* N * A0 (5) 鍖栫畝寰?/span> (6) (B*A0 - A*B0) * Y = (K'*A0 - K*A) * N (6) 涓よ竟鍚屾椂mod N 寰?/span> (B*A0 - A*B0) * Y % N = 0 (7) 鐢變簬Y涓轟換鎰忔暣鏁?/span>(鍗?/span>Y鏈夊彲鑳藉拰N浜掔礌), 鎵浠ュ繀欏繪弧瓚?/span> (B*A0 - A*B0) % N = 0 (8) 鍙互鍖栫畝涓?/span> (B*A0 - A*B0) = K'' * N (9) (K''涓烘暣鏁?/span>) A0 * B + N * (-K'') = A*B0 (10) 鏋氫婦A鐨勫鹼紝灝卞彲浠ユ妸鏂圭▼杞寲鎴愪簡 ax + by = c鐨勫艦寮忥紝鍏朵腑: a = A0, b = N, c = A*B0 x = B, y = -K'' 鍒╃敤鎵╁睍嬈у嚑閲屽緱鍗沖彲姹傚緱鏈灝忕殑婊¤凍鏉′歡鐨?/span>x(鍗?/span>B)鐨勫間簡銆?/span> 鏈鍚庣殑絳旀闇瑕佷箻涓?/span> A0銆?/span>B0銆?/span>N 涓夎呯殑GCD銆?/span>
151 Construct a triangle 瑙f瀽鍑犱綍
152 Making round 璐績
153 Playing With Matches 鍗氬紙 + 瑙勫緥
154 Factorial 鍒濈瓑鏁拌
155 Cartesian Tree RMQ
156 Strange Graph 嬈ф媺鍥炶礬
157 Patience 妯℃嫙鎵撹〃
150 Mr. Beetle II
鍥?
151 Construct a triangle
152 Making round
棰樻剰錛氱粰瀹氫竴涓暟N錛屾眰涓涓渶灝忕殑鏁?/span>K錛屼嬌寰?/span>K!鏈熬姝eソ鏈?/span>N涓?/span>0銆?/span>
156 Strange Graph
棰樻剰錛氱粰瀹氫竴涓?/span>N(N <= 10000)涓偣鐨勮繛閫氬浘錛岃繖涓浘婊¤凍浠ヤ笅鎬ц川錛?br /> 1) 姣忎釜欏剁偣v鐨勫害鏁伴兘澶т簬絳変簬2錛?br /> 2) 濡傛灉欏剁偣v鐨勫害鏁扮瓑浜?/span>2錛岄偅涔堝畠榪炴帴鐨勪袱涓《鐐逛笉鐩擱偦錛?br /> 3) 濡傛灉欏剁偣v鐨勫害鏁板ぇ浜?/span>2錛岄偅涔堝拰v鐩擱偦鐨勭偣u婊¤凍浠ヤ笅鏉′歡涔嬩竴錛?br /> a) u鐨勫害鏁扮瓑浜?/span>2錛?br /> b) 浠諱綍鍜?/span>v鐩擱偦鐨勭偣(闄や簡u)涓兘涓や袱鐩擱偦錛?/span>
158 Commuter Train
棰樻剰錛氳濺绔欓暱搴︿負L(L <= 5000)錛岀粰瀹?/span>N錛?/span>N<= 300錛変釜涔樺鍦ㄨ濺绔欑殑浣嶇疆錛屼互鍙婁竴杈嗗叕浜よ濺鐨?/span>M錛?/span>M <= 300錛変釜杞﹂棬紱昏濺澶寸殑浣嶇疆錛屼箻瀹竴瀹氫細閫夋嫨紱昏嚜宸辨渶榪戠殑杞﹂棬榪涘叆錛岄棶榪欒締杞﹁鍋滃湪鍝噷鍙互浣垮緱鎵鏈変漢榪涘叆杞﹂棬闇瑕佽蛋鐨勮窛紱繪誨拰鏈澶э紝濂藉彉鎬佺殑鎯蟲硶銆?/span>
]]>
]]>
]]>
121 Bridges painting 鍥捐錛氭煋鑹查棶棰?/span>
122 The Book 鍥捐錛氬搱瀵嗗皵欏垮洖璺?/strong>
123 The Sum 閫掓帹
124 Broken Line 璁$畻鍑犱綍錛氱嚎孌靛垽浜?a >
125 shtirlits 鎼滅儲錛氭繁搴︿紭鍏堟悳绱?/strong>
126 boxes 鍒濈瓑鏁拌
127 Telephone directory 鎺掑簭
128 Snake 鎺掑簭 + HASH
129 Inheritance 璁$畻鍑犱綍錛氬嚫鍖?綰挎鍒や氦
120 Archipelago
123 The sum
124 Broken line
128 Snake
]]>
111 Very simple problem 浜屽垎鏋氫婦
112 a^b-b^a 浜屽垎姹傚箓
113 Nearly prime numbers 鏁拌錛氱礌鏁扮瓫閫?br />114 Telecasting station 鏋氫婦
115 Calendar 綆鍗曟ā鎷?/strong>
116 Index of super-prime 鍔ㄦ佽鍒掞細璁板繂鍖栨悳绱?/strong>
117 Counting 浜屽垎姹傚箓
118 Digital Root 鏁板棰?/strong>
119 Magic Pairs 鏁拌錛氭墿灞曟鍑犻噷寰?/strong>
110 Dungeon
棰樻剰錛氱粰瀹氫竴鏉?/span>3D灝勭嚎 鍜?/span> N涓悆浣擄紝闂皠綰跨殑鍚勭鍙嶅脊緇忚繃鐨勭悆浣撶紪鍙鳳紝濡傛灉鍙嶅皠瓚呰繃10嬈★紝鍙渶瑕佽緭鍑哄墠鍗佹銆?/span>
鍥?
111 Very simple problem
112 a^b-b^a
鍥?
115 Calendar
棰樻剰錛氳秴綰х礌鏁版槸绱犳暟涓嬫爣涔熸槸绱犳暟鐨勬暟錛岀粰瀹氫竴涓暟N錛岄棶榪欎釜鏁拌兘涓嶈兘琚竴浜涜秴綰х礌鏁扮粍鍚堝嚭鏉ワ紝濡傛灉鍙互錛岄渶瑕佹弧瓚寵秴綰х礌鏁扮殑涓暟鏈灝戯紝瑕佹眰杈撳嚭涓涓柟妗堛?/span>
118 Digital Root
]]>
]]>