锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
PKU 1961 http://poj.org/problem?id=1961
棰樻剰錛氱粰瀹氫竴涓暱搴︿負N(N <= 106)鐨勫瓧絎︿覆S錛屾眰瀹冪殑鎵鏈夊墠緙涓兘澶熻〃紺烘垚AK鐨勫墠緙錛屽茍涓旇姹傛眰鍑烘瘡涓墠緙瀵瑰簲鐨?/span>K銆?/span>
棰樿В錛?/span>KMP
鍒╃敤KMP姹傚嚭璇ヤ覆鐨?/span>Next鏁扮粍錛岀劧鍚庢灇涓炬瘡涓墠緙錛屾牴鎹?/span>Next鏁扮粍鐨勫畾涔夛紝瀵逛簬鏌愪釜鍓嶇紑S[1...i]錛屾湁S[1...Next[i]] = S[i-Next[i]+1...i]錛屽亣璁懼墠緙S[1...i]鑳藉琛ㄧず闀?/span>AK鐨勫艦寮忥紝鍒?/span>A = S[Next[i]+1...i]錛屾墍浠ュ繀欏繪弧瓚?/span>i鑳藉琚?/span>i - Next[i] 鏁撮櫎錛屾弧瓚蟲潯浠跺悗K = i/( i - Next[i])銆?/span>
B. Corporative Network
PKU 1962 http://poj.org/problem?id=1962
棰樻剰錛氱粰瀹?/span>N(N <= 20000)涓偣鍜?/span>M(M <= 200000)嬈℃搷浣滐紝姣忔鎿嶄綔鏈変袱縐嶇被鍨嬶細
I a b 灝?/span>a鐨勭埗緇撶偣璁句負b錛屽茍涓斿悎騫惰窛紱諱負 |a-b| mod 1000
E a 璇㈤棶a鍒版牴緇撶偣鐨勫悎騫惰窛紱匯?/span>
棰樿В錛氬茍鏌ラ泦
鍒╃敤璺緞鍘嬬緝鐨勬濇兂錛岀敤dist[p]琛ㄧずp鍜?/span>p鐨勭埗緇撶偣鐨勫悎騫惰窛紱伙紝姣忔鏌ヨ鐨勬椂鍊欑瘡鍔?/span>p鍒版牴緇撶偣鐨勫悎騫惰窛紱伙紝騫朵笖灝?/span>p鍒?/span>p鎵鍦ㄦ爲鐨勬牴緇撶偣R鐨勮礬寰勪笂鐨勬墍鏈夌偣鐨勭埗緇撶偣閮借涓?/span>R錛岀劧鍚庢洿鏂板悇鑷殑鍚堝茍璺濈銆?/span>
鍚堝茍鎿嶄綔O(1)錛屾煡璇㈡搷浣滄誨鏉傚害O(N)銆?/span>
C. Cave Exploration
PKU 1963 http://poj.org/problem?id=1963
棰樻剰錛氱粰鍑?/span>N(N <= 1000)鏉℃按騫蟲垨鑰呭瀭鐩寸殑璧板粖錛屽啀緇欏畾璧板粖涓婁換鎰忎竴涓潗鏍囩偣浣滀負璧風偣浠ュ強鏂瑰悜錛屾寜鐓т互涓嬬瓥鐣ヨ蛋錛氳兘澶熷乏杞氨宸﹁漿錛屼笉鑳藉垯絎旂洿璧幫紝涓嶈兘絎旂洿璧板氨鍙寵漿錛岄兘涓嶈兘灝辨帀澶淬傝繖鏍瘋蛋鏈鍚庣粫涓鍦堝張浼氬洖鍒拌搗鐐癸紝闂摢浜涜蛋寤婃槸娌℃湁緇忚繃鐨勶紝鍙鏈変竴涓偣璧拌繃灝辯畻緇忚繃銆?br /> 棰樿В錛氭ā鎷?/span> + 鍝堝笇銆?/span>
灝嗘按騫崇嚎孌靛拰绔栫洿綰挎鍒嗗紑瀛橈紝鍒嗕袱縐嶆儏鍐佃璁猴細
1銆佹按騫崇嚎孌?/span>
瀵逛簬浠繪剰涓鏍規按騫崇嚎孌碉紝鏋氫婦鎵鏈夌殑绔栫洿綰挎錛岃綆楀嚭浜ょ偣鍜屾按騫崇嚎孌電殑绔偣錛屼繚瀛樹笅鏉ュ茍涓旀寜x鍧愭爣閫掑鎺掑簭錛屽幓鎺夐噸澶嶇偣錛屽埄鐢ㄥ弻鍚戦摼琛ㄥ皢涓や釜鐩擱偦鐐硅繛鎺ヨ搗鏉ワ紝鐢變簬x鍜?/span>y鍧愭爣鑼冨洿涓?/span>-32767~32767錛岃屼氦鐐規暟涓嶄細瓚呰繃N2錛屾墍浠ュ彲浠ラ噰鐢ㄥ搱甯屽皢浜岀淮鐨勭偣鏄犲皠鍒頒竴浣嶆暟緇勪腑銆傛瘡涓偣璁板綍姘村鉤璧板粖鐨勭紪鍙楓?/span>
2銆佺珫鐩寸嚎孌?/span>
鍚屼笂鎿嶄綔錛屼笉鍚岀殑鏄瘡涓偣璁板綍绔栫洿璧板粖鐨勭紪鍙楓?/span>
緇忚繃1鍜?/span>2涓ゆ鎿嶄綔鍚庯紝璧板粖涓婄殑鍏抽敭鐐瑰凡緇忚紱繪暎鍖栦簡錛屽茍涓旀墍鏈夌偣閮介氳繃鍥涘悜閾捐〃涓叉帴璧鋒潵錛岀劧鍚庡彧闇瑕佷粠璧風偣寮濮嬫ā鎷熻璧板嵆鍙紝璧板埌涓涓叧閿偣錛屽皢鍏抽敭鐐規墍鍦ㄧ殑涓や釜璧板粖緙栧彿鏍囪鎺夛紝鏈鍚庣粺璁℃病鏈夋爣璁扮殑璧板粖緙栧彿灝辨槸絳旀浜嗐?/span>
D. City Game
PKU 1964 http://poj.org/problem?id=1964
棰樻剰錛氱粰瀹氫竴涓?/span>M*N(M <= 1000錛?/span>N <= 1000)鐨?/span>01鐭╅樀錛屾眰瀹冪殑涓涓瓙鐭╅樀錛屾弧瓚崇煩闃靛厓绱犲叏涓?/span>1錛屽茍涓旈潰縐渶澶с?/span>
棰樿В錛氭灇涓捐錛屽浜庣i琛岋紝浠ョi琛屼負璧風偣錛屾壂鎻忔瘡涓鍒?/span>j錛屾壘鍒扮涓涓笉鏄?/span>1鐨勬暟鎵鍦ㄧ殑浣嶇疆P[j]錛屼護K[j] = P[j] - i錛屼簬鏄棶棰樿漿鍖栨垚浜嗕竴涓竴緇寸殑闂銆?/span>
L[i] 琛ㄧず K [ L[i]+1 ... i] 涓殑鍏冪礌閮藉ぇ浜庣瓑浜?/span>K[i]錛屼絾鏄?/span>L[i]灝忎簬K[i]錛?/span>
R[i] 琛ㄧず K [i ... R[i]-1] 涓殑鍏冪礌閮藉ぇ浜庣瓑浜?/span>K[i],浣嗘槸R[i]灝忎簬K[i]錛?/span>
Max{ (R[i] - L[i] - 1) * K[i], 1 <= i <= N }灝辨槸浠ュ綋鍓嶆灇涓捐涓鴻搗鐐圭殑鏈澶х煩闃碉紝鏋氫婦M嬈″彇鏈澶у煎氨鏄叏灞鐨勬渶澶у瓙鐭╅樀浜嗐?/span>
E. Cube Root
PKU 1965 http://poj.org/problem?id=1965
棰樻剰錛氱粰瀹氫竴涓笉瓚呰繃150涓暟瀛楃殑姝f暣鏁幫紝姹傚畠鐨勪笁嬈℃柟鏍癸紝綺劇‘鍒板皬鏁扮偣鍚?/span>10浣嶃?/span>
棰樿В錛氬ぇ鏁版ā鎷?/span>
灝嗚緭鍏ョ殑鏁?/span>X鐢ㄥ瓧絎︿覆瀛樺偍錛屼箻涓?/span>1030錛屽埄鐢ㄤ簩鍒嗘眰鍑烘渶澶х殑Y錛屼嬌寰?/span>Y3 <= X銆傜劧鍚庡湪Y鐨勫悗鍗佷綅鍓嶆彃鍏ヤ竴涓皬鏁扮偣錛岃緭鍑哄嵆鍙?/span>
F. Cable TV Network
PKU 1966 http://poj.org/problem?id=1966
棰樻剰錛氭眰鍥劇殑鐐硅繛閫氬害銆傜粰瀹氫竴涓?/span>N(N <= 50)涓偣鐨勫浘錛屾眰鍘繪帀鑷沖皯澶氬皯涓偣鑳藉灝嗗畠鍙樻垚涓涓潪榪為氬浘銆?/span>
棰樿В錛氭悳绱?/span> + 鍓灊 (鎴栬?/span> 鏈澶ф祦)
鏋氫婦姣忎釜鐐瑰幓鎺夋垨涓嶅幓鎺夛紝鎬誨叡250縐嶇姸鎬侊紝姣忔鍘繪帀鐐瑰悗鍒ゆ柇褰撳墠鍥劇殑榪為氭э紝涓鏃︾牬鍧忎簡榪為氾紝鍘繪帀鐨勭偣鏁板嵆涓虹瓟妗堬紱濡傛灉鍙戠幇鏌愪釜鐐瑰幓鎺夊悗錛屽墿涓嬬偣緇勬垚鐨勫浘鍙樻垚浜嗕竴涓畬鍏ㄥ浘錛岄偅涔堜笉鐢ㄧ戶緇悳绱簡錛屽洜涓哄綋鍓嶇姸鎬佷笅涓嶅彲鑳藉皢鍓╀笅鐨勫浘鍙樻垚闈炶繛閫氬浘浜嗭紱濡傛灉鍘繪帀鐨勭偣鏁拌秴榪囩洰鍓嶇殑鏈浼樿В涔熺洿鎺ュ壀鏋濄?/span>
濂藉惂...涓瀹氭槸鏁版嵁寮變簡-_-||錛屾瑙f槸鏈澶ф祦鎷嗙偣銆?/span>
G. Alibaba
PKU 1967 http://poj.org/problem?id=1967
棰樻剰錛氱粰瀹?/span>N(N <= 104)涓暣鏁板(Pi, Di)琛ㄧず鍦?/span>Pi浣嶇疆鏈変竴涓疂鐗╋紝騫朵笖闇瑕佸湪Di 鏃墮棿涔嬪墠鍙栬蛋(緇欏嚭欏哄簭涓?/span>Pi閫掑鐨勯『搴?/span>)銆傝搗濮嬪彲浠ヤ換鎰忛夋嫨涓涓綅緗紝寰宸︽垨鑰呭線鍙沖彇瀹濈墿錛岄棶鏄惁鑳藉淇濊瘉姣忎釜鐗╁搧閮藉湪Di鏃墮棿涔嬪墠鍙栬蛋(鏃墮棿鍜岃窛紱誨叧緋諱負1:1)錛屽鏋滃彲浠ワ紝緇欏嚭鍙栧畬鎵鏈夊疂鐗╃殑鏈灝戞椂闂淬?/span>
棰樿В錛氭悳绱?/span> + 鍓灊
棣栧厛鍙互鎯沖埌鐨勬槸錛岃搗濮嬩綅緗竴瀹氭槸N涓疂鐗╂墍鍦ㄤ綅緗腑鐨勫叾涓竴涓紝鎵浠ラ鍏堝彲浠ユ灇涓炬瘡涓疂鐗╃殑璧峰鐐癸紝姣斿褰撳墠浣嶇疆涓?/span>pos錛岄偅涔堝湪絎?/span>0縐掑唴錛岃闂繃鐨勫尯闂翠負[pos, pos]錛屽彲浠ラ夋嫨寰宸﹁蛋錛屼篃鍙互閫夋嫨寰鍙寵蛋錛岄偅涔堟槸涓嶆槸鍙閫夋嫨鏌愪釜鏂瑰悜璧板畬錛岀劧鍚庡啀鍙嶆柟鍚戣蛋鍒板簳濡傛灉鑳藉婊¤凍鎵鏈夌偣閮藉湪鎴鏃墮棿鍐呭畬鎴愪竴瀹氭槸瀵圭殑鍛紵絳旀鏄惁瀹氱殑錛屾潵鐪嬩竴緇勬暟鎹紝濡傚浘1錛岃搗濮嬬偣鍙兘閫夋嫨3鍙蜂綅緗紝騫朵笖鍙兘閫夋嫨寰鍙寵蛋錛岃蛋鍒?/span>4鍚庡啀鎶樺洖璧板埌2錛岀劧鍚庡啀鎶樺洖璧板埌5錛屼互姝ょ被鎺紝騫朵笖鍙湁榪欎竴縐嶈礬寰勬墠鑳芥弧瓚蟲墍鏈夊疂鐗╅兘鍦ㄦ埅鑷蟲椂闂村唴鍙栧畬銆?/span>
鍥?/span>1
鎸夌収榪欎釜鎬濊礬錛岃繘琛岀姸鎬佺殑鍒掑垎錛屽亣璁懼綋鍓嶅凡緇忚闂殑鍖洪棿涓?/span>[L, R]錛屽茍涓旂幇鍦ㄧ殑浣嶇疆澶勪簬pos浣嶇疆(榪欓噷pos瑕佷箞絳変簬L錛岃涔堢瓑浜?/span>R)錛屾墍浠ュ彲浠ョ敤涓夌淮鏉ヨ〃紺虹姸鎬?/span>DP[s][l][r](l銆?/span>r琛ㄧず璁塊棶榪囩殑鍖洪棿鐨勫乏鍙崇鐐癸紝濡傛灉褰撳墠浣嶇疆鍦?/span>l鍒?/span>s = 0錛屽鏋滃綋鍓嶄綅緗湪r錛屽垯s=1)錛屾誨叡鐘舵佹暟鐩?/span>N2錛岀姸鎬佽漿縐葷殑鏃跺欑敱澶х姸鎬佹帹灝忕姸鎬侊紝鍗?/span>DP[s][l][r]涓瀹氭槸鐢?/span>DP[0][l-1][r]銆?/span>DP[0][l][r+1]銆?/span>DP[1][l-1][r]銆?/span>DP[1][l][r+1]榪欏洓涓姸鎬佸緱鍑恒?/span>
鑰冭檻鍒?/span>N姣旇緝澶э紝鎵浠ユ妸鎵鏈夌姸鎬佸瓨鍌ㄥ埌鏁扮粍涓啀鍒╃敤鍔ㄦ佽鍒掕繘琛岄掓帹錛屽鏋滄暟鎹噺涓嶅鐨勮瘽錛屽彲浠ュ崱榪囷紝浣嗘槸鐘舵佸瓨鍌ㄩ渶瑕佺敤婊氬姩鏁扮粍錛屽惁鍒欏唴瀛樺悆涓嶆秷錛屼篃鍙互閲囩敤鎼滅儲 + 鍓灊錛屾濊礬鏄部鐢ㄤ簡鍔ㄦ佽鍒掔殑鎬濇兂錛屽亣璁懼綋鍓嶅凡緇忚闂殑鍖洪棿涓?/span>[L, R]錛岀幇鍦ㄧ殑浣嶇疆澶勪簬pos浣嶇疆(榪欓噷pos瑕佷箞絳変簬L錛岃涔堢瓑浜?/span>R)錛屽茍涓斿凡緇忎嬌鐢ㄤ簡T鐨勬椂闂達紝鏃犺褰撳墠鐨?/span>pos鏄湪宸﹀尯闂寸鐐?/span>L涓婅繕鏄湪鍙沖尯闂寸鐐?/span>R涓婏紝浠栭兘鍙互閫夋嫨璧板埌L-1(L > 1)錛屾垨鑰?/span>R+1(R < N)錛屼簬鏄氨鍙互閫掑綊姹傝В浜嗭紝閫掑綊鍑哄彛涓?/span>L=1錛?/span>R=N鐨勬椂鍊欍?/span>
鍥?/span>2
濡傚浘錛屽凡緇忚闂殑瀹濈墿涓虹孩鑹叉爣璁扮殑鐐癸紝鐏拌壊鏍囪鐨勪負鏈浘璁塊棶榪囩殑錛屽茍涓旂幇鍦ㄧ殑浣嶇疆鍦ㄥ凡緇忚闂尯闂寸殑宸︾鐐?/span>L涓婏紝宸茬粡浣跨敤浜?/span>T鐨勬椂闂達紝鎴戜滑闇瑕佸垽鏂繖涓姸鎬佹槸鍚﹀悎娉曪紝鍒欓渶瑕佹弧瓚充互涓嬬殑鍑犱釜涓嶇瓑寮忋?/span>
1銆佷繚璇佸彸杈規湭璁塊棶鐨勯兘鑳藉湪鎴鏃墮棿鍐呰闂埌錛?/span>
T + (P[R] - P[L]) + (P[R+1] - P[R]) < D[R+1]
T + (P[R] - P[L]) + (P[R+2] - P[R]) < D[R+2]
...
T + (P[R] - P[L]) + (P[N] - P[R]) < D[N]
灝嗚繖浜涚瓑寮忓寲綆錛屽彲寰楋細
T - P[L] < D[R+1] - P[R+1]
T - P[L] < D[R+2] - P[R+2]
...
T - P[L] < D[N] - P[N]
鍐嶈繘琛岃繘涓姝ュ寲綆錛屽緱錛?/span>
T - P[L] < Min{ D[k] - P[k], R < k <= N }
2銆佷繚璇佸乏杈規湭璁塊棶鐨勯兘鑳藉湪鎴鏃墮棿鍐呰闂埌錛?/span>
鍚岀悊錛屽彲浠ュ緱鍑猴細
T + P[R] < Min{ D[k] + P[k], 1 <= k < R }
閭d箞錛屼護 POSTM[i] = Min{ D[k] - P[k], i < k <= N }
PREM[i] = Min{ D[k] + P[k], 1 <= k < i }
榪欎袱涓暟緇勫彲浠ュ垎鍒氳繃涓嬈¢嗗簭鍜岄『搴忕殑綰挎ф壂鎻忔眰鍑烘潵錛岀敤浜庢悳绱㈢殑鏃跺欏垽鏂彲琛屾с備緥濡傦紝褰?/span>T - P[L] >= POSTM[R] 琛ㄧず鍦ㄥ彸杈規湭璁塊棶鐨勫疂鐗╀腑鏈夎嚦灝戜竴涓疂鐗╀笉鑳藉湪鎴鏃墮棿鍓嶈璁塊棶鍒幫紝T + P[R] >= PREM [R]琛ㄧず鍦ㄥ乏杈規湭璁塊棶鐨勫疂鐗╀腑鏈夎嚦灝戜竴涓疂鐗╀笉鑳藉湪鎴鏃墮棿鍓嶈璁塊棶鍒幫紝鐩存帴鍓灊銆?/span>
榪橀渶瑕佷竴涓壀鏋濓紝灝辨槸鍦ㄥ綋鍓嶆椂闂?/span>T鍔犱笂褰撳墠鐘舵佷笅棰勮璁塊棶瀹屾墍鏈夊疂鐗╃殑鏈灝忔椂闂?/span>宸茬粡姣斾箣鍓嶆眰鍑虹殑鏈灝忔椂闂村ぇ錛岀洿鎺ュ壀鏋濄?/span>
H . Booklets
PKU 1968 http://poj.org/problem?id=1968
棰樻剰錛?/span>N(N <= 3000)鏈皬鍐屽瓙闇瑕佸垎閰嶇粰S涓鏍★紝姣忎釜瀛︽牎寰楀埌鐨勬槸N/S鐨勪笂鏁存湰鍐屽瓙鎴栬?/span>N/S鐨勪笅鏁存湰鍐屽瓙錛屾瘡鏈唽瀛愭湁涓涓〉鏁幫紝騫朵笖瑙勫畾鍒嗛厤鍐屽瓙鐨勬椂鍊欐寜鐓ч〉鏁伴掑鏉ュ垎閰嶏紝鍏堟妸涓婃暣鏈唽瀛愬垎瀹屽啀鍒嗕笅鏁寸殑錛屽浜庢瘡涓鏍$殑鍒嗕功瑙勫垯錛屾寜鐓ц緭鍏ョ殑欏哄簭榪涜鍒嗛厤銆傛眰闂T涓鏍″垎鍒扮殑絎竴鏈唽瀛愮殑欏墊暟銆?/span>
棰樿В錛氶渶瑕佹眰鍑哄嚑涓噺錛?/span>
涓婃暣鍐屽瓙鐨勬暟鐩?/span>UIP = (N+S-1) / S;
涓嬫暣鍐屽瓙鐨勬暟鐩?/span>LIP = N/S;
鍒嗗埌涓婃暣鍐屽瓙鏁扮洰鐨勫鏍′釜鏁?/span>UIPC = N % S;
鍒嗗埌涓嬫暣鍐屽瓙鏁扮洰鐨勫鏍′釜鏁?/span>LIPC = N - N % S;
棣栧厛瀵規墍鏈夌殑鍐屽瓙鎸夐〉鏁伴掑鏉ユ帓搴?/span>(濡傛灉欏墊暟鐩稿悓鎸夌収涓嬫爣閫掑鎺掑簭)錛岀劧鍚庡噺鍘誨墠T-1涓鏍$殑鍐屽瓙鎬繪暟錛屽鏄撳緱鍑虹T涓鏍″垎鍒扮殑鍐屽瓙鏁扮洰C錛屼粠鎺ヤ笅鏉ョ殑C涓唽瀛愪腑鎵懼埌涔嬪墠涓嬫爣鏈灝忕殑鍐屽瓙錛屽畠瀵瑰簲鐨勯〉鏁板氨鏄瓟妗堛?/span>
I. Count on Canton
PKU 1969 http://poj.org/problem?id=1969
棰樻剰錛氱粰瀹氫笅鍥炬墍紺虹殑鏃犻檺鍒嗘暟搴忓垪錛屽茍涓旀寜鐓ц泧褰㈡柟寮忕紪鍙鳳紝鍗崇涓涓負1/1錛岀浜屼釜涓?/span>1/2錛岀涓変釜涓?/span>2/1錛岀鍥涗釜涓?/span>3/1錛屼互姝ょ被鎺紝闂N涓垎鏁版槸浠涔堛?/span>
1/1 1/2 1/3 1/4 1/5 ...
2/1 2/2 2/3 2/4
3/1 3/2 3/3
4/1 4/2
5/1
棰樿В錛氭暟瀛﹂銆?/span>
棣栧厛浜屽垎姹傚嚭鍦ㄧ鍑犳潯鏂滅嚎涓婏紝鍗?/span>(K-1)K/2 < N鐨勬渶澶х殑K錛岀劧鍚庢眰鏍規嵁K鐨勫鍋舵ф眰鍑鴻泧褰㈠湪絎?/span>K鏉℃枩綰跨殑琛岃蛋鏂瑰悜錛岀N - (K-1)K/2 涓暟灝辨槸絳旀銆?/span>
PKU 1298 http://poj.org/problem?id=1298
棰樻剰錛氳В鐮侀錛屾寜鐓у涓嬪搴斿叧緋昏В鐮侊細
瀵嗘枃 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
鍘熸枃 V W X Y Z A B C D E F G H I J K L M N O P Q R S T U
棰樿В錛氱畝鍗曢銆?/span>
B. Polar Explorer
PKU 1299 http://poj.org/problem?id=1299
棰樻剰錛氱粰瀹氬渾鐨勫崐寰?/span>X錛屾眰鍦嗗懆涓婁袱涓偣A鍜?/span>B鐨勮窛紱伙紝鍏朵腑鍦嗗績瑙?/span>AOB鐨勮搴︿負Z(0 <= Z <= 360)銆?/span>
棰樿В錛氭牳蹇冩槸Z濡傛灉澶т簬180錛屽垯Z = 360 - Z錛屽嵆璧板姡寮с傝屼笖棰樼洰姹傜殑鏄潵鍥炰竴嬈★紝鎵浠ヨ綆楃殑鏃跺欏姬闀胯涔?/span>2銆?/span>
C. Door Man
PKU 1300 http://poj.org/problem?id=1300
棰樻剰錛氱粰瀹氫竴浜涜竟鍜岃搗鐐?/span>s錛屾眰鑳藉惁鎵懼埌涓鏉′粠s鍒?/span>0鐨勯氳礬錛屽茍涓旇姹傝闂墍鏈夌殑杈廣?/span>
棰樿В錛氭鎷夊洖璺彲琛岃В鍒ゅ畾銆?/span>
棣栧厛鍒╃敤flood fill浠?/span>s閬嶅巻鍏ㄥ浘錛屽鏋?/span>0鐐規病鏈夎璁塊棶鍒板垯蹇呭畾涓嶅瓨鍦紱鐒跺悗鍒ゆ柇搴︽暟涓嶄負0鐨勭偣鏄惁鏈夋湭琚闂埌鐨勶紝濡傛灉鏈夛紝璇存槑鍥句笉榪為氾紝涔熷繀瀹氫笉瀛樺湪瑙o紱鏈鍚庣粺璁″害鏁頒負濂囨暟鐨勭偣鐨勪釜鏁?/span>P錛屼互鍙婂叿浣撶殑鐐癸細
1) P = 0錛屽垯蹇呭畾鏈夎В錛?/span>
2) P > 2錛屽垯鏃犺В錛?/span>
3) P =2, 閭d箞鏈夎В鐨勫墠鎻愭槸涓や釜濂囧害鏁扮偣涓竴涓槸s錛屽彟涓涓槸0錛涘惁鍒欐棤瑙c?/span>
D . The Umbrella Problem 2054
PKU 1301 http://poj.org/problem?id=1301
棰樻剰錛氱粰瀹氫竴涓?/span>10X10鐨勫湴鍥撅紝鐜╁浠庣涓琛岀殑鏌愪竴涓偣鍑哄彂錛屾瘡涓姝ヨ緙栧彿+1錛屽垪緙栧彿澧為噺鏈変笁縐嶉夋嫨(-1, 0, 1)錛屽浘涓爣璁頒負S(laser gun)鐨勭偣涓嶈兘璧幫紝騫朵笖S鐨勭偣浼氬彂鍑洪暛灝勫厜錛岀0縐掓湞涓婂彂灝勶紝絎?/span>1縐掓湞鍙籌紝絎?/span>2縐掓湞涓嬶紝絎?/span>3縐掓湞宸︼紝寰幆寰澶嶏紝鍙戝皠闀垮害涓鐩村埌鍦板浘杈圭紭銆傞棶鑳藉惁璧板埌鏈鍚庝竴琛屾爣璁頒負G(grass)鐨勫湴鏂廣?/span>
棰樿В錛氬箍鎼溿?/span>
hash[4][R][C]琛ㄧず鐘舵侊紝姣忚蛋涓姝ワ紝鍒╃敤姝ユ暟 mod 4璁$畻鍑洪暛灝勫厜鐨勬柟鍚戯紝鐒跺悗灝嗘墍鏈夌殑闀皠鍏夊彲杈懼尯鍩熷叏閮ㄦ爣璁板嚭鏉ワ紝鏈爣璁扮殑鐐逛負鍙揪鐐癸紝鏋氫婦涓変釜鏂瑰悜榪涜鎼滅儲銆?br />
E. Blue Gene, Jr.
PKU 1302 http://poj.org/problem?id=1302
棰樻剰錛氫竴涓暱搴︿負N(N <= 20)鐨勭梾姣掑熀鍥犱覆A[1...N]榪涜鍙樺紓錛屽彉寮傝繃紼嬩粠宸﹀線鍙籌紝鍒嗘儏鍐佃璁猴細
1) 濡傛灉絎?/span>i涓瓧絎︽槸 A-Z錛屽垯瀹冨皢鍙樺紓鎴愭暟瀛?/span>n mod 10錛?/span>n琛ㄧずA[i+1...N]涓彉寮傚熀鍥犵殑鏁扮洰錛?/span>
2) 濡傛灉絎?/span>i涓瓧絎︽槸 1-9錛屽垯瀹冨彉寮傛垚A[i] - 1錛屽茍涓斿鏋滅p (p = i + A[i])涓熀鍥犲瓨鍦ㄧ殑璇濓紝浠庣p涓熀鍥犲紑濮嬪彉寮傦紱鍚﹀垯浠庣i+1涓熀鍥犲紑濮嬪彉寮傦紱
棰樿В錛氶鎰忕悊瑙e悗灝辨槸涓按棰樹簡錛岄掑綊姹傝В銆?/span>
F . Byte Me!
PKU 1303 http://poj.org/problem?id=1303
棰樻剰錛氫簩榪涘埗浜屽崄涓鐐?/span>(浜岃繘鍒墮粦鏉板厠)鏄敱涓ょ鐗岀粍鎴愮殑娓告垙錛屼竴縐嶇О涓?/span>bytes(涓涓?/span>8姣旂壒鐨勫簭鍒楄〃紺?/span>0-255涔嬮棿鐨勬暟)錛屼竴縐嶇О涓?/span>nibbles((涓涓?/span>4姣旂壒鐨勫簭鍒楄〃紺?/span>0-15涔嬮棿鐨勬暟)錛屾父鎴忕帺娉曞涓嬶細
1) 娓告垙鐨勭洰鏍囨槸鑾峰緱灝介噺鎺ヨ繎510鍒嗭紝騫朵笖涓嶈兘瓚呰繃瀹冿紱
2) 姣忎釜鐜╁鏈変袱寮犵墝錛屼竴寮犻潰鏈濅笂錛屼竴寮犻潰鏈濅笅(搴勫涓嶇煡閬撴槸浠涔堢墝)錛?/span>
3) 姣忎釜鐜╁鏈夊洓嬈″彨鐗屾満浼氾紝鍙互鍙?/span>bytes錛屼篃鍙互鍙?/span>nibbles錛屼絾鏄鏋滃垎鏁拌秴榪?/span>510鍒欎笉鑳藉啀鍙墝錛?/span>
4) 鎵鏈夌殑鍙墝閮芥槸闈㈡湞涓婄殑錛?/span>
5) 濡傛灉鐜╁鍒嗘暟瓚呰繃510錛岀珛鍗沖垽涓鴻緭錛?/span>
5) 搴勫鏈鍚庝竴涓彨鐗岋紱
7) 騫沖眬鐨勬儏鍐靛簞瀹惰儨(濡傛灉鎵鏈変漢閮借秴榪?/span>510鍒嗭紝搴勫榪樻槸璧㈢殑)錛?/span>
搴勫鐨勮鍒?/span>濡備笅錛?/span>
1) 褰撶湅鍒拌嚜宸卞拰鍏朵粬浜洪潰鏈濅笂鐨勭墝錛屽垽鏂凡緇忓繀鑳滄椂涓嶈鍐嶅彨鐗屼簡錛?/span>
2) 濡傛灉鎬誨垎灝忎簬382鏃?/span> 闇瑕佸彨涓嬈?/span>byte鐗岋紱
3) 濡傛灉鎬誨垎灝忎簬絳変簬500鏃?/span> 闇瑕佸彨涓嬈?/span>nibble鐗岋紱
榪樻湁涓や釜闅愯棌瑙勫垯錛?/span>
1) 浣犳槸搴勫錛?/span>
2) 姣忎釜闈炲簞瀹剁殑鐜╁闈㈡湞涓嬬殑鐗屾槸11111111錛堜絾鏄簞瀹朵笉鐭ラ亾錛夛紝闈㈡湞涓婄殑鐗岀粰瀹氾紱
3) 闈炲簞瀹朵笉浼氬彨鐗?/span>(鍥犱負浠栦滑姣旇緝絎?/span>)錛?/span>
緇欏畾搴勫鐨勭墝鍜屽叾浠栫帺瀹墮潰鏈濅笂鐨勭墝錛屼互鍙婄墝鍫嗕腑鐨?/span>bytes鐗屽拰nibble鐗岋紝姹傚簞瀹剁殑鍥涙鍙墝鑳藉惁鑾瘋儨錛?/span>
棰樿В錛氶鐩浜嗕竴澶у爢錛屾渶鍚庨潪搴勫鐨勭帺瀹墮兘涓嶄細鍙墝錛?/span>o(╯□╰)o...鎵浠ュ彧瑕佹牴鎹簞瀹剁殑瑙勫垯榪涜鍙墝錛岀劧鍚庡垽鏂槸鍚﹁兘澶熻儨鍑哄嵆鍙紱
鍥犱負鍏朵粬浜洪兘涓嶅彨鐗岋紝姣忎釜浜洪兘鏈変袱寮犵墝錛屾墍浠ュ叾浠栦漢鐨勬誨垎涓嶅彲鑳借秴榪?/span>510鍒嗭紝鎵浠ワ紝濡傛灉搴勫鍙墝瓚呰繃510鍒嗙洿鎺ヨ鍒や負璐熴?/span>
姣忔鍙墝鍓嶅厛鍒ゆ柇鎵鏈夌帺瀹剁殑鏈濅笂鐨勫崱鐗囧垎鏁板姞涓?/span>255鍜屽簞瀹跺綋鍓嶅緱鍒嗚繘琛屾瘮杈冿紝濡傛灉鏈変竴涓帺瀹跺垎鏁板ぇ浜庡簞瀹跺垎鏁幫紝鍒欏簞瀹舵寜鐓?/span>382鍜?/span>500榪欎袱涓尯闂磋繘琛屽彨鐗屻?/span>
鍥涙鍙墝緇撴潫錛屽鏋滄墍鏈夌帺瀹跺垎鏁伴兘灝忎簬絳変簬搴勫鍒嗘暟錛屽垯鍒ゆ柇搴勫鍒嗘暟鏄惁澶т簬510錛屽鏋滄槸錛岃緭鍑?/span>Bust!錛屽惁鍒欒緭鍑?/span>Win!錛涘鏋滃皬浜庢煇涓帺瀹剁殑鍒嗘暟錛岄偅涔堣緭鍑?/span>Lose!銆?/span>
G . World's Worst Bus Schedule
PKU 1304 http://poj.org/problem?id=1304
棰樻剰錛氬叕浜よ濺绔欐湁N(N <= 20)杈嗚濺錛屾瘡杈嗚濺鐨勫彂杞︽椂闂撮棿闅斾負a1 a2 a3 a4... a1 a2 a3 a4... a1 a2 a3 a4...錛屽驚鐜彂杞︼紝闂煇浜哄湪T鏃跺埢璧跺埌鍏氦杞︾珯錛屾渶灝戦渶瑕佺瓑寰呭灝戞椂闂磋兘澶熶箻涓婂叕浜よ濺銆?/span>
棰樿В錛氬浜庢瘡杈嗗叕浜よ濺錛岃瀹冪殑鎵鏈夋椂闂撮棿闅斾箣鍜屼負S錛屼護T' = T mod S錛岀劧鍚庢灇涓炬墍鏈夌殑鍙戣濺闂撮殧錛屽墠i涓彂杞﹂棿闅?/span>a[i]涔嬪拰鍑忓幓T'涓殑鏈灝忔鍊煎氨鏄瓑榪欒締鍏氦杞﹂渶瑕佺殑鏃墮棿錛屽彇鎵鏈夊叕浜よ濺鐨勬渶灝忔椂闂村氨鏄墍姹傘?/span>
A. Artificial Intelligence?
PKU 2256 http://poj.org/problem?id=2256
棰樻剰錛氬姛鐜囩殑璁$畻鍏紡涓篜 = UI錛岀粰瀹氫竴鍙ヨ瘽錛岃繖鍙ヨ瘽涓竴瀹氫細鍖呭惈涓変釜鍙橀噺涓殑涓や釜錛屾眰鍙﹀涓涓紝騫朵笖鍗曚綅浼氭湁涓夌鍓嶇紑m(姣?錛宬(鍗?錛孧(鍏?銆?/span>
棰樿В錛氬瓧絎︿覆鎵弿銆?/span>
gets璇誨叆瀛楃涓詫紝榪涜涓嬈¢亶鍘嗭紝鏌ユ壘鏄惁鍖呭惈瀛愪覆’P=’, ‘U=’, ‘I=’, 鏍煎紡鍖栧畠鍚庨潰鐨勬暟瀛楋紝闇瑕佺敤double鏉ュ瓨錛岀劧鍚庢鏌ュ崟浣嶅墠緙錛宮闇瑕佸皢鍘熷奸櫎涓?03錛宬闇瑕佸皢鍘熷間箻涓?03錛孧闇瑕佸皢鍘熷煎父涓?06銆傜劧鍚庡垎涓夌鎯呭喌璁$畻鏈煡鐨勯偅涓煎嵆鍙?/span>
B. Balancing Bank Accounts
PKU 2257 http://poj.org/problem?id=2257
棰樻剰錛氱粰瀹歂(N <= 20)涓漢錛屼互鍙奙(M <= 1000)鏉″叧緋伙紝姣忔潯鍏崇郴鐨勬弿榪頒負nameA nameB C錛岃〃紺簄ameA榪欎釜浜虹粰浜唍ameB榪欎釜浜篊鍧楅挶錛屼負浜嗚鎵鏈変漢閮戒笉浜忥紝闇瑕佸啀緇欏嚭鑷沖N-1鏉″叧緋伙紝浣垮緱鎵鏈変漢閮芥敹鏀鉤琛°?/span>
棰樿В錛氳椽蹇冦?/span>
棣栧厛灝嗘墍鏈変漢鍒嗘垚涓ゅ爢錛宖rom_set琛ㄧず鏀跺叆澶т簬鏀嚭鐨勪漢鐨勯泦鍚堬紝to_set琛ㄧず鏀嚭澶т簬鏀跺叆鐨勪漢鐨勯泦鍚堬紝騫朵笖璁板綍浠栦滑鍚勮嚜鐨?nbsp;|鏀跺叆-鏀嚭|錛岀劧鍚庡浜庢墍鏈夌殑from_set鐨勪漢鎸?nbsp;|鏀跺叆-鏀嚭| 榪涜閫掑鎺掑簭錛屾灇涓炬瘡涓猣rom_set涓殑浜篺錛屽幓to_set涓壘鍒頒竴涓漢t錛屾弧瓚砯鍓╀綑鐨勯挶灝忎簬絳変簬t浜忔崯鐨勯挶錛屽茍涓攖鏄痶o_set涓簭鎹熸渶灝戠殑浜猴紝濡傛灉鎵句笉鍒拌繖鏍風殑浜猴紝閭d箞鎵懼埌浜忔崯鏈澶氱殑閭d釜浜猴紝灝唂鐨勯挶緇檛錛屽驚鐜線澶嶏紝鐩村埌f鐨勯挶緇欏畬涓烘銆?/span>
褰揻rom_set涓殑鎵鏈変漢灝嗛挶鍏ㄩ儴緇欎簡to_set涓殑浜哄悗錛宼o_set涓篃灝辨病鏈変漢浜忔崯浜嗭紝鎵鏈変漢杈懼埌鏀舵敮騫寵 銆?/span>
C. The Settlers of Catan
PKU 2258 http://poj.org/problem?id=2258
棰樻剰錛氱粰瀹氫竴涓狽(N <= 25)涓偣錛孧(M <= 25)鏉¤竟鐨勫浘錛屾眰鍥劇殑鏈闀胯礬錛岀偣鍏佽閲嶅錛岃竟涓嶅厑璁擱噸澶嶃?/span>
棰樿В錛氬墠鍚戞槦 + dfs銆?/span>
鍒╃敤鍓嶅悜鏄熷瓨鍙屽悜杈癸紝浠ユ瘡涓偣涓鴻搗鐐規繁鎼滈亶鍘嗘暣涓浘錛岃闂繃鐨勮竟鍝堝笇錛屾悳绱㈣繃紼嬫洿鏂版渶闀胯礬鍗沖彲銆?/span>
D. Team Queue
PKU 2259 http://poj.org/problem?id=2259
棰樻剰錛歍eam Queue鏄繖鏍蜂竴縐峲ueue錛屾瘡涓厓绱犻兘鏈変竴涓猅eam銆?/span>
瀵逛簬queue鐨刾ush鎿嶄綔錛岃push鐨勫厓绱犱粠queue涓粠澶村埌灝炬壂鎻忥紝濡傛灉鎵埌涓涓厓绱犲拰瀹冨睘浜庡悓涓涓猅eam錛岄偅涔堢洿鎺ュ皢瀹冩彃鍏ュ埌榪欎釜鍏冪礌鍚庨潰錛涘鏋滄病鏈夋壂鍒幫紝鐩存帴鎻掑埌瀵瑰垪灝俱?/span>
瀵逛簬queue鐨刾op鎿嶄綔錛岀瓑鍚屼簬鏅歲ueue鐨刾op鎿嶄綔銆?/span>
闃熶紞鏁癗灝忎簬絳変簬1000銆?/span>
棰樿В錛氭ā鎷燂紝寮1000涓槦鍒椼?/span>
瀵逛簬鎻掑叆鎿嶄綔錛屾瘡涓猅eam鐨勫厓绱犳彃鍏ュ埌瀵瑰簲鐨勯槦鍒椾腑錛屽茍涓旇褰曞綋鍓峊eam鐨勬渶鏃╂彃鍏ユ椂闂淬侽(1)
瀵逛簬寮瑰嚭鎿嶄綔錛屾灇涓炬墍鏈塗eam鐨勯槦鍒楅鍏冪礌錛屼粠涓壘鏃墮棿鏈鏃╃殑錛岀劧鍚庡閭d釜闃熷垪鎵ц寮瑰嚭鎿嶄綔銆侽(N)銆?/span>
E. Error Correction
PKU 2260 http://poj.org/problem?id=2260
棰樻剰錛氱粰瀹歂*N(N < 100)鐨?1鐭╅樀錛岄棶鏄惁鎵鏈?nbsp;琛屽拰 鍜?nbsp;鍒楀拰 閮芥槸鍋舵暟錛屽鏋滄槸杈撳嚭OK錛屽鏋滀笉鏄紝鏄惁鑳藉閫氳繃鏀瑰彉涓涓間繚璇?nbsp;閮芥槸鍋舵暟錛?nbsp;閮戒笉琛岃緭鍑篊orrupt銆?/span>
棰樿В錛氭壂鎻忋?/span>
鎵弿鎵鏈?nbsp;琛屽拰 鍜?nbsp;鍒楀拰錛屽鏋滄濂芥湁鍏朵腑涓琛孯鏄鏁幫紝騫朵笖鍏朵腑涓鍒桟鏄鏁幫紝閭d箞鏀瑰彉(R, C)鐨勫煎氨鑳戒繚璇佸叏鏄伓鏁幫紝鍚﹀垯瑕佷箞鏄疧K錛岃涔堟槸Corrupt銆?/span>
F. France '98
PKU 2261 http://poj.org/problem?id=2261
棰樻剰錛氱粰瀹?6涓浗瀹惰繘琛屾窐姹拌禌錛屼互鍙婁竴涓?6*16鐨勭煩闃礎錛屽叾涓瑼[i][j]琛ㄧずi鍙峰浗瀹舵墦璐鍙峰浗瀹剁殑姒傜巼錛岄棶姣忎釜鍥藉鍙栧緱鍐犲啗鐨勬鐜囥?/span>
棰樿В錛氬姩鎬佽鍒掋?/span>
dp[0][i] 琛ㄧず 1/2鍐寵禌 絎琲涓漢鑾瘋儨鐨勬鐜?/span>
dp[1][i] 琛ㄧず 1/4鍐寵禌 絎琲涓漢鑾瘋儨鐨勬鐜?/span>
dp[2][i] 琛ㄧず 1/8鍐寵禌 絎琲涓漢鑾瘋儨鐨勬鐜?/span>
dp[3][i] 琛ㄧず 鎬誨喅璧?nbsp;絎琲涓漢鑾瘋儨鐨勬鐜?nbsp;
1) 閭d箞鏄劇劧dp[0][i] = A[i][i^1]
2) dp[1][i]鐨勬鐜囧彇鍐充簬1/2鍐寵禌鏃剁i涓漢鑾瘋儨鐨勬鐜囦箻涓婁粬鎵撹觸1/4鍐寵禌涓悓緇勭殑閭d袱涓漢鐨勬鐜囷紱
3) dp[2][i]鐨勬鐜囧彇鍐充簬1/4鍐寵禌鏃剁i涓漢鑾瘋儨鐨勬鐜囦箻涓婁粬鎵撹觸1/8鍐寵禌涓悓緇勭殑閭e洓涓漢鐨勬鐜囷紱
4) dp[3][i]鐨勬鐜囧彇鍐充簬1/8鍐寵禌鏃剁i涓漢鑾瘋儨鐨勬鐜囦箻涓婁粬鎵撹觸 鎬誨喅璧涗腑鍚岀粍鐨勯偅鍏釜浜虹殑姒傜巼錛?/span>
鐩存帴閫掓帹姹傝В錛宒p[3][i]灝辨槸鎵姹傘?/span>
G. Goldbach's Conjecture
PKU 2262 http://poj.org/problem?id=2262
棰樻剰錛氬皢涓涓暟鍒嗚В鎴愪袱涓绱犳暟鐨勫拰銆?/span>
棰樿В錛氱礌鏁扮瓫閫夛紝鏋氫婦銆?/span>
H. Heavy Cargo
PKU 2263 http://poj.org/problem?id=2263
棰樻剰錛氱粰瀹氫竴涓湁鍚戝浘錛岃竟鏉僕(u, v)琛ㄧず浠巙鍒皏鐨勬渶澶ц澆閲嶄負W(u, v)錛屽湪緇欏畾s鍜宼錛屾眰s鍒皌 鐨勬渶澶у彲鑳借澆閲嶃?/span>
棰樿В錛氫簩鍒嗙瓟妗?nbsp;+ 鍒ゆ柇榪為氭с?/span>
浜屽垎鏋氫婦絳旀T錛岀劧鍚庝粠璧風偣鍒扮粓鐐硅繘琛岃繛閫氭у垽瀹氾紝濡傛灉杈規潈灝忎簬T鐨勮竟涓嶅彲杈撅紝浜屽垎鐨勬渶澶у煎氨鏄瓟妗堛?/span>
PKU 3690 http://poj.org/problem?id=3690
棰樻剰錛氱粰瀹?/span>N*M(N<=1000, M <= 1000)鐨?/span>01鐭╅樀S錛屽啀緇欏畾T(T <= 100)涓?/span>P*Q(P <= 50, Q <= 50)鐨?/span>01鐭╅樀錛岄棶P*Q鐨勭煩闃典腑鏈夊灝戜釜鏄?/span>S鐨勫瓙鐭╅樀銆?/span>
棰樿В錛氫綅鍘嬬緝 + KMP
鐢變簬P <= 50錛屾墍浠ユ垜浠彲浠ユ妸鎵鏈?/span>P*Q鐨勭煩闃佃繘琛屼簩榪涘埗浣嶅帇緙╋紝灝?/span>P*Q鐨勭煩闃電殑姣忎竴鍒楀帇緙╂垚涓涓?/span>64浣嶆暣鏁幫紝榪欐牱P*Q鐨勭煩闃靛氨鍙樻垚浜嗕竴涓暱搴︿負Q鐨勬暣鏁板簭鍒楋紝鐢ㄥ悓鏍風殑鏂瑰紡瀵?/span>N*M鐨勭煩闃佃繘琛屽帇緙╋紝鎬誨叡鍙互浜х敓(N-P+1)涓暱搴︿負M鐨勬暣鏁板簭鍒楋紝鍓╀笅鐨勫氨鏄繘琛屾渶澶?/span>(N-P+1)嬈?/span>KMP鍖歸厤浜嗐?/span>
KMP鐩稿叧綆楁硶鍙互鍙傞槄錛?/span>
http://www.shnenglu.com/menjitianya/archive/2014/06/20/207354.html
鍥?/span>1 ‘*’浠h〃浜岃繘鍒剁殑1, ’0’浠h〃浜岃繘鍒剁殑0
B. DNA repair
PKU 3691 http://poj.org/problem?id=3691
棰樻剰錛氱粰瀹?/span>N(N <= 50)涓暱搴︿笉瓚呰繃20鐨勬ā寮忎覆錛屽啀緇欏畾涓涓暱搴︿負M(M <= 1000)鐨勭洰鏍囦覆S錛屾眰鍦ㄧ洰鏍囦覆S涓婃渶灝戞敼鍙樺灝戝瓧絎︼紝鍙互浣垮緱瀹冧笉鍖呭惈浠諱綍鐨勬ā寮忎覆錛堟墍鏈変覆鍙湁ACGT鍥涚瀛楃錛夈?/span>
棰樿В錛?/span>AC鑷姩鏈?/span> + 鍔ㄦ佽鍒?/span>
鍒╃敤妯″紡涓插緩绔?/span>trie鍥撅紝trie鍥劇殑姣忎釜緇撶偣(鍗充笅鏂囪鍒扮殑鐘舵?/span>j)緇存姢涓変釜緇撴瀯錛?/span>
Node{
Node *next[4]; // 鑳藉鍒拌揪鐨勫洓涓姸鎬?/span> 鐨勭粨鐐規寚閽?/span>
int id; // 鐘舵?/span>ID錛岀敤浜庡埌鏁扮粍涓嬫爣鐨勬槧灝?/span>
int val; // 褰撳墠鐘舵佹槸鍚︽槸涓涓潪娉曠姸鎬?/span> 錛堜互鏌愪簺妯″紡涓茬粨灝撅級
}
鐢?/span>DP[i][j]琛ㄧず闀垮害涓?/span>i (i <= 1000)錛岀姸鎬佷負j(j <= 50*20 + 1)鐨勫瓧絎︿覆鍙樻垚鐩爣涓?/span>S闇瑕佹敼鍙樼殑鏈灝戝瓧絎︼紝璁懼垵濮嬬姸鎬?/span>j = 0錛岄偅涔?/span>DP[0][0] = 0錛屽叾浠栧潎涓烘棤絀峰ぇ銆備粠闀垮害i鍒?/span>i+1榪涜鐘舵佽漿縐伙紝姣忔杞Щ鏋氫婦鍏卞洓涓瓧絎?/span>(A銆?/span>C銆?/span>G銆?/span>T)錛屽鏋滄灇涓懼埌鐨勫瓧絎﹀拰S瀵瑰簲浣嶇疆鐩稿悓鍒欐敼鍙樺?/span>T=1錛屽惁鍒?/span>T=0錛涢偅涔堟湁鐘舵佽漿縐繪柟紼?/span> DP[i][j] = Min{ DP[i-1][ fromstate ] + T, fromstate涓烘墍鏈夎兘澶熷埌杈?/span>j鐨勭姸鎬?/span> };鏈鍚?/span>DP[n][j]涓殑鏈灝忓煎氨鏄瓟妗堛?/span>
C. Kindergarten
PKU 3692 http://poj.org/problem?id=3692
棰樻剰錛氱粰瀹?/span>G(G <= 200)涓コ瀛╁拰B(B <= 200)涓敺瀛╋紝浠ュ強M(0 <= M <= G*B)鏉¤褰?/span>(x, y)琛ㄧずx鍙峰コ瀛╁拰y鍙風敺瀛╀簰鐩歌璇嗐傚茍涓旀墍鏈夌殑濂沖浜掔浉璁よ瘑錛屾墍鏈夌殑鐢峰浜掔浉璁よ瘑錛屾眰鎵懼埌鏈澶х殑涓涓泦鍚堜嬌寰楁墍鏈変漢閮借璇嗐?/span>
棰樿В錛氫簩鍒嗗浘鏈澶у尮閰?/span>
涓涓偣闆嗕腑鎵鏈変漢閮借璇嗚〃紺鴻繖涓偣闆嗘槸涓畬鍏ㄥ浘錛岃闂灝辨槸姹傚師鍥劇殑涓涓渶澶у洟(鏈澶у畬鍏ㄥ瓙鍥?/span>)錛屽彲浠ヨ漿鍖栦負姹傝ˉ鍥劇殑鏈澶х嫭绔嬮泦錛岃岃ˉ鍥炬伆濂芥槸涓簩鍒嗗浘銆備簩鍒嗗浘鐨勬渶澶х嫭绔嬮泦 = 鎬葷偣鏁?/span> - 浜屽垎鍥劇殑鏈澶у尮閰嶃備簬鏄棶棰樺氨杞寲鎴愪簡姹傝ˉ鍥劇殑鏈澶у尮閰嶄簡銆?/span>
D. Maximum repetition substring
PKU 3693 http://poj.org/problem?id=3693
棰樻剰錛氱粰瀹氶暱搴︿負N(N <= 105)鐨勫瓧絎︿覆S錛屾眰瀹冪殑涓涓渶澶氶噸澶嶅瓙涓?/span>(娉ㄦ剰錛氭渶澶氶噸澶嶅瓙涓蹭笉絳変簬鏈闀塊噸澶嶅瓙涓詫紝鍗?/span>ababab鍜?/span>aaaa搴旇鍙栧悗鑰?/span>)銆?/span>
棰樿В錛氬悗緙鏁扮粍 + RMQ
鏋氫婦閲嶅瀛愪覆鐨勯暱搴?/span>L錛屽鏋滃浜庢煇涓?/span>i錛屾湁S[i*L ... N]鍜?/span>S[(i+1)*L ... N]鐨勬渶闀垮叕鍏卞墠緙澶т簬絳変簬L(榪欎竴姝ュ彲浠ュ埄鐢ㄥ悗緙鏁扮粍姹傝Вheight鏁扮粍錛岀劧鍚庨氳繃RMQ鏌ヨ鍖洪棿鏈灝忓兼潵瀹屾垚)錛岄偅涔堜互i*L涓洪錛岄暱搴︿負L鐨勫瓙涓茶嚦灝戜細閲嶅涓ゆ銆?/span>
鍥?/span>2
濡傚浘錛?/span>L=3錛?/span>i=3鐨勬儏鍐碉紝S[3...10]鍜?/span>S[6...10]鐨勬渶闀垮叕鍏卞墠緙涓?/span>3錛屽嵆S[3...5]鍜?/span>S[6...8]瀹屽叏鍖歸厤錛屾墍浠?/span>S[3...5]閲嶅浜嗕袱嬈°傚弽涔嬶紝濡傛灉鏈闀垮叕鍏卞墠緙灝忎簬L錛屽繀瀹氫笉浼氶噸澶嶏紙鍥犱負涓や釜瀛愪覆涔嬮棿鍑虹幇浜嗘柇灞傦級銆?/span>
鎺ㄥ箍鍒版洿涓鑸殑鎯呭喌錛屽鏋?/span>S[i*L ... N]鍜?/span>S[(i+1)*L ... N]鐨勬渶闀垮叕鍏卞墠緙涓?/span>T錛岄偅涔堜互S[i*L]涓洪鐨勯噸澶嶅瓙涓茬殑閲嶅嬈℃暟涓?/span>T / L + 1錛岃屼笖鎴戜滑鍙互鍙戠幇濡傛灉浠?/span>S[i*L]涓洪錛岄暱搴︿負L鐨勫瓙涓茬殑閲嶅嬈℃暟澶т簬絳変簬2錛岄偅涔堝畠涓瀹氫笉浼氭瘮浠?/span>S[(i+1)*L]涓洪鐨勫瓙涓茬殑閲嶅嬈℃暟灝戯紝榪欎釜鏄樉鐒剁殑錛屾瘮濡?/span>L涓?/span>2鐨勬椂鍊欙紝ababab涓瀹氭瘮abab澶氶噸澶嶄竴嬈★紝鍩轟簬榪欎釜鎬ц川錛屾垜浠畾涔変竴涓?/span>new_flag鏍囪錛岃〃紺烘槸鍚﹂渶瑕佽綆楁帴涓嬫潵鍖歸厤鍒扮殑涓?/span>(濡?/span>ababab鍜?/span>abab鐨勬儏鍐碉紝鍓嶈呰綆楄繃浜嗭紝灝辨妸new_flag緗負false錛屽氨涓嶄細璁$畻abab鐨勬儏鍐典簡)錛屽緱鍑哄畬鏁寸畻娉曪細
1) 鏋氫婦閲嶅瀛愪覆鐨勯暱搴?/span>L錛屽垵濮嬪寲new_flag鏍囪涓?/span>true錛?/span>
2) 鏋氫婦i錛岃綆?/span>S[i*L ... N]鍜?/span>S[(i+1)*L ... N]鐨勬渶闀垮叕鍏卞墠緙T錛?/span>
a) 濡傛灉T < L錛?/span>new_flag鏍囪涓?/span>true錛?/span>
b) 濡傛灉T >= L錛屽垽鏂?/span>new_flag鏄笉鏄負false錛屽鏋滀負false錛岃鏄庝互S[i*L]涓洪鐨勪覆鍜?/span>S[(i-1)*L]涓洪鐨勪覆鐨勬渶闀垮叕鍏卞墠緙澶т簬絳変簬T錛岃煩杞埌2)錛涘惁鍒欒漿3)錛?/span>
3) 鍥犱負S[i*L, (i+1)*L]鏈夐噸澶嶅瓙涓詫紝浣嗘槸瀛楀吀搴忎笉涓瀹氭渶灝忥紝鎵浠ヨ繕闇瑕佹灇涓懼尯闂?/span> [i-L+1, i+L]錛岀湅鏄惁瀛樺湪瀛楀吀搴忔洿灝忕殑瀛愪覆錛屾瘮杈冨瓧鍏稿簭榪欎竴姝ュ彲浠ョ洿鎺ヤ嬌鐢ㄥ悗緙鏁扮粍璁$畻鍑烘潵鐨?/span>rank鍊艱繘琛屾瘮杈冦?/span>
RMQ鐩稿叧綆楁硶鍙互鍙傞槄錛?/span>
http://www.shnenglu.com/menjitianya/archive/2014/06/26/207420.html
E. Network
PKU 3694 http://poj.org/problem?id=3694
棰樻剰錛氱粰瀹?/span>N(N <= 105)涓偣鍜?/span>M(N-1 <= M <= 2*105)鏉¤竟鐨勬棤鍚戣繛閫氬浘錛岃繘琛?/span>Q(Q <= 1000)嬈″姞杈癸紝姣忔鍔犲叆涓鏉¤竟瑕佹眰杈撳嚭褰撳墠鍥句腑鏈夊灝戞潯鍓茶竟銆?/span>
棰樿В錛氭棤鍚戝浘鍓茶竟銆佹渶榪戝叕鍏辯鍏?/span>
鍒╃敤tarjan姹傚嚭鍘熷浘鐨勫壊杈癸紝鐢變簬榪欓鏁版嵁閲忔瘮杈冨ぇ錛屾墍浠ョ敤閫掑綊鍙兘浼氱垎鏍堬紝闇瑕佹爤妯℃嫙瀹炵幇閫掑綊榪囩▼錛?/span>tarjan璁$畻鐨勬椂鍊欑敤parent[u]淇濆瓨u鐨勭埗緇撶偣錛屾瘡涓粨鐐硅繘鍑烘爤鍚勪竴嬈★紝鍑烘爤鏃惰〃紺轟互瀹冧負鏍圭粨鐐圭殑瀛愭爲璁塊棶瀹屾瘯錛岀劧鍚庡垽鏂?/span>(u, parent[u])鏄惁涓哄壊杈廣傛瘡嬈¤闂?/span>u, v鍔犲叆鍚庝細鏈夊灝戝壊杈癸紝鍏跺疄灝辨槸姹?/span>u鍜?/span>v鐨勫埌瀹冧滑鐨勬渶榪戝叕鍏辯鍏?/span>lca(u, v)鐨勮礬寰勪笂鏈夊灝戝壊杈癸紝鐢變簬鍦ㄨ繘琛?/span>tarjan璁$畻鐨勬椂鍊欎繚瀛樹簡姣忎釜緇撶偣鐨勬渶鏃╄闂椂闂?/span>dfn[u]錛岄偅涔堟湁榪欎箞涓涓ц川錛?/span>dfn[ parent[u] ] < dfn[u]錛岃繖鏄樉鐒剁殑(鐖剁粨鐐圭殑璁塊棶鍏堜簬瀛愮粨鐐?/span>)銆備簬鏄綋dfn[u] < dfn[v]錛屽皢parent[v]璧嬪肩粰v錛屽弽涔嬶紝灝?/span>parent[u]璧嬪肩粰u錛屽洜涓烘槸涓媯墊爲錛屾墍浠ヨ繘榪囧弽澶嶈凱浠o紝涓瀹氬彲浠ュ嚭鐜?/span>u == v 鐨勬儏鍐碉紝榪欐椂鍊欑殑u灝辨槸鍘熷厛u鍜?/span>v鐨勬渶榪戝叕鍏辯鍏堬紝鍦ㄨ凱浠g殑鏃跺欏垽鏂礬寰勪笂鏄惁瀛樺湪鍓茶竟錛岃礬寰勪笂鐨勫壊杈圭粡榪?/span>(u, v)榪欐潯杈圭殑鍔犲叆閮藉皢鎴愪負闈炲壊杈癸紝鐢ㄤ竴涓彉閲忎繚瀛樺壊杈規暟鐩紝杈撳嚭鍗沖彲銆?/span>
鍥?/span>3
濡傚浘3錛屽浘涓疄綰胯〃紺烘爲杈癸紝铏氱嚎琛ㄧず鍘熷浘涓殑杈癸紝浣嗘槸榪涜tarjan璁$畻鐨勬椂鍊?/span>7榪欎釜緇撶偣琚?/span>(6, 7)榪欐潯杈?#8220;鎹瘋凍鍏堢櫥”浜嗭紝浜庢槸(4, 7)鎴愪負浜嗕竴鏉″啑浣欒竟錛岃綆楀畬鍚庤繖涓浘鐨勫壊杈逛負(1, 2)銆?/span>(1,3)銆?/span>(3, 4)銆?/span>(3, 5)錛屽垎鍒爣璁?/span>bridge[2]銆?/span>bridge[3]銆?/span>bridge[4]銆?/span>bridge[5]涓?/span>true銆?/span>
褰撴彃鍏ヤ竴鏉¤竟(7, 5)錛岄偅涔堟部鐫7鐨勭鍏堣礬寰勫拰5鐨勭鍏堣礬寰勬渶鍚庢壘鍒扮殑鏈榪戝叕鍏辯鍏堜負3(璺緞涓?/span>7 -> 6 -> 4 -> 3 鍜?/span> 5 -> 3)錛?/span>(3, 4)銆?/span>(3, 5)榪欎袱鏉″壊杈瑰洜涓哄姞鍏ヤ簡(7, 5)榪欐潯杈硅屽彉鎴愪簡鏅氳竟錛屽皢鏍囪bridge[4]銆?/span>bridge[5]緗負false銆?/span>
F. Rectangles
PKU 3695 http://poj.org/problem?id=3695
棰樻剰錛氱粰瀹?/span>N(N <= 20)涓煩褰紝浠ュ強M(M <= 105)嬈¤闂紝璇㈤棶R(R <= N)涓煩褰㈢殑騫躲?/span>
棰樿В錛氱鏁e寲 + 鏆村姏( 鎴?/span> 瀹規枼鍘熺悊 )
紱繪暎鍖栵細鐢變簬鐭╁艦寰堝皯錛屾墍浠ュ彲浠ュ皢瀹冧滑鐨?/span>XY鍧愭爣鍒嗗埆紱繪暎鍒版暣鐐癸紝涓や釜緇村害鍒嗗埆紱繪暎錛岀偣鐨勬繪暟涓嶄細瓚呰繃2N錛屽浜庢湰嬈¤闂紝鍒╃敤鍓嶄竴嬈¤闂殑緇撴灉榪涜闈㈢Н鐨勫鍑忥紝瀵規瘡涓煩褰㈣繘琛屽垽鏂紝涓鍏辨湁涓ょ鎯呭喌錛?/span>
1錛夎繖涓煩褰㈠墠涓嬈¤闂嚭鐜幫紝鏈璇㈤棶涓嶅嚭鐜幫紝瀵瑰畠鐨勬墍鏈夌鏁e潡榪涜鑷噺鎿嶄綔錛屽鏋滄煇涓鏁e潡璁℃暟鍑忎負0錛屽垯鎬婚潰縐噺鍘昏繖涓鏁e潡鐨勯潰縐紱
2錛夎繖涓煩褰㈠墠涓嬈¤闂病鍑虹幇錛屾湰嬈¤闂嚭鐜幫紝瀵瑰畠鐨勬墍鏈夌鏁e潡榪涜鑷鎿嶄綔錛屽鏋滄煇涓鏁e潡璁℃暟绱姞鍚庝負1錛屽垯鎬婚潰縐姞涓婅繖涓鏁e潡鐨勯潰縐紱
瀹規枼鍘熺悊錛氬浜庢瘡涓闂紝鍒╃敤dfs鏋氫婦姣忎釜鐭╁艦鍙栨垨涓嶅彇錛屽彇鍑烘潵鐨勬墍鏈夌煩褰綔鐩鎬氦鎿嶄綔錛屾墍鏈?/span>[濂囨暟涓煩褰氦]鐨勯潰縐拰 – 鎵鏈?/span>[鍋舵暟涓煩褰氦]鐨勯潰縐拰 灝辨槸絳旀錛屽洜涓烘槸dfs鏋氫婦錛屾墍浠ュ湪鏋氫婦鍒版煇嬈$浉浜ょ煩褰㈤潰縐負0鐨勬椂鍊欏氨涓嶉渶瑕佸啀鏋氫婦涓嬪幓浜嗭紝綆楁槸涓涓瘮杈冨己鐨勫壀鏋濄?/span>
濡傚浘4錛岀孩鑹插尯鍩熶負琚鐩栦簡涓嬈$殑鍖哄煙錛屾鑹插尯鍩熶負琚鐩栦簡涓ゆ鐨勫尯鍩燂紝榛勮壊鍖哄煙涓鴻瑕嗙洊浜嗕笁嬈$殑鍖哄煙錛岄偅涔堝厛灝嗘墍鏈夌殑涓変釜鐭╁艦鍔犺搗鏉ワ紝鐒跺悗闇瑕佸噺鎺夐噸鍙犵殑閮ㄥ垎錛岄噸鍙犵殑鍑忔帀鍚庡彂鐜幫紝閲嶅彔鐨勯儴鍒嗗鍑忎簡錛屽嵆鍥句腑榛勮壊鐨勯儴鍒嗚澶氬噺浜嗕竴嬈★紝闇瑕佸姞鍥炴潵銆傛墍浠ュ鏂ュ師鐞嗗彲浠ユ鎷負錛氬鏁板姞錛屽伓鏁板噺銆?/span>
鍥?/span>4
G. The Luckiest number
PKU 3696 http://poj.org/problem?id=3696
棰樻剰錛氱粰瀹?/span>L(L <= 2*109)錛屾眰涓涓渶灝忕殑鏁?/span>T錛屾弧瓚?/span>T浠呯敱鏁板瓧’8’緇勬垚錛屽茍涓?/span>T鏄?/span>L鐨勫嶆暟銆?/span>
棰樿В錛氭鎷夊畾鐞?/span>
棣栧厛錛岄暱搴︿負N鐨勪粎鐢?/span>8緇勬垚鐨勬暟瀛楀彲浠ヨ〃紺轟負8*(10N-1)/9銆?/span>
濡傛灉瀹冭兘琚?/span>L鏁撮櫎錛屽垯鍙互鍒楀嚭絳夊紡(1)錛?/span>
8*(10N-1)/9 = KL (鍏朵腑K涓轟換鎰忔鏁存暟) (1)
灝嗙瓑寮忕◢浣滃彉褰㈠緱鍒扮瓑寮?/span>(2)錛?/span>
(10N-1) = 9KL/8 (2)
鐢變簬瀛樺湪鍒嗘瘝錛屾墍浠ユ垜浠渶瑕佸厛瀵瑰垎鏁伴儴鍒嗚繘琛岀害鍒嗭紝寰楀埌絳夊紡(3)錛?/span>
浠?/span>A = L/GCD(8, L), B = 8/GCD(8, L)
(10N-1) = 9K*A / B (3)
鍥犱負A鍜?/span>B宸茬粡浜掕川錛屾墍浠ュ鏋?/span>B涓嶄負1錛屼負浜嗕繚璇佺瓑寮忓彸杈逛粛涓烘暣鏁幫紝K蹇呴』鑳借B鏁撮櫎錛岃?/span>K涓轟換鎰忔暣鏁幫紝鎵浠ヤ竴瀹氳兘澶熸壘鍒頒竴涓?/span>K姝eソ鏄?/span>B鐨勫嶆暟錛屾墍浠ュ彲浠ュ湪絳夊紡涓よ竟鍚屾椂妯?/span>9A錛屽緱鍒?/span>(10N-1) mod (9A) = 0錛岀◢浣滃彉褰紝寰楀埌絳夊紡(4):
(4)
浜庢槸闇瑕佸紩鍏ヤ竴涓畾鐞嗭紝鍗蟲鎷夊畾鐞嗐?/span>
嬈ф媺瀹氱悊鐨勬弿榪頒負錛氳嫢n, a涓烘鏁存暟錛屼笖n, a浜掕川錛屽垯錛?/span>
鍥?/span>5
(ψ(n)琛ㄧずn鐨勬鎷夊嚱鏁幫紝鍗沖皬浜庣瓑浜?/span>n騫朵笖鍜?/span>n浜掔礌鐨勬暟鐨勪釜鏁?/span>)
榪欐牱涓鏉ワ紝鎴戜滑鍙戠幇鍙10鍜?/span>9A浜掕川錛?/span>鍙渶瑕佹眰9A鐨勬鎷夊嚱鏁幫紝浣嗘槸姹傚嚭鏉ョ殑嬈ф媺鍑芥暟鏄笉鏄竴瀹氫嬌寰?/span>N鏈灝忓憿錛屽茍涓嶆槸錛屾墍浠ヨ繕闇瑕佹灇涓炬鎷夊嚱鏁扮殑鍥犲瓙錛屽鏋滃畠鐨勬煇涓洜瀛?/span>T涔?/span>婊¤凍(4)鐨勭瓑寮忥紝閭d箞T鑲畾涓嶄細姣?/span>ψ(9A)澶э紝鎵浠涓瀹氭洿浼樸?/span>
榪欓噷9A鏈夊彲鑳借秴榪?/span>32浣嶆暣鏁幫紝鎵浠ヨ綆楄繃紼嬩腑閬囧埌鐨勪箻娉曟搷浣滀笉鑳界洿鎺ョ浉涔?/span>(涓や釜瓚呰繃32浣嶆暣鏁扮殑鏁扮浉涔樹細瓚呰繃64浣嶆暣鏁?/span>)錛岄渶瑕佺敤鍒頒簩鍒嗕箻娉曪紝鍗沖埄鐢ㄤ簩榪涘埗鍔犳硶妯℃嫙涔樻硶錛屾濇兂寰堢畝鍗曪紝灝辯洿鎺ョ粰鍑轟竴孌典唬鐮佸惂銆?/span>
H. USTC campus network
PKU 3697 http://poj.org/problem?id=3697
棰樻剰錛氱粰瀹?/span>N, M(N <= 104, M <= 106)錛屾眰N涓偣鐨勫畬鍏ㄥ浘鍒犳帀M鏉¤竟鍚庯紝鍜?/span>1榪欎釜緇撶偣鐩擱偦鐨勭偣鐨勬暟鐩?/span>
棰樿В錛?/span>BFS
鍒╃敤鍓嶅悜鏄熷瓨杈?/span>(榪欓噷杈圭殑鍚箟鏄弽鐨勶紝i鍜?/span>j鏈夎竟琛ㄧずi鍜?/span>j涓嶇洿鎺ヨ繛閫?/span>)銆傜劧鍚庝粠1寮濮嬪箍鎼滐紝灝嗗拰1鏈夎竟鐨勭偣hash鎺夛紝鐒跺悗鏋氫婦hash鏁扮粍涓病鏈?/span>hash鎺夌殑鐐?/span>(榪欎簺鐐規槸鍜?/span>1榪為氱殑)錛屽鏋滅偣娌℃湁琚闂繃錛屾爣璁板凡璁塊棶錛屽叆闃燂紱鐒跺悗涓嶆柇寮瑰嚭闃熷垪棣栧厓绱犺繘琛岀浉鍚岀殑澶勭悊銆?/span>
榪欓噷鍙互鍔犲叆涓涓皬浼樺寲錛屽皢鎵鏈夌偣鍒嗙粍錛岀紪鍙?/span>0-9鐨勫垎涓轟竴緇勶紝10-19鐨勫垎涓轟竴緇勶紝20-29鐨勫垎涓轟竴緇勶紝鐒跺悗鐢ㄤ竴涓鏁板櫒鏉ヨ褰曟瘡涓粍涓殑鐐規槸鍚﹁璁塊棶錛屾瘡嬈¤闂埌涓涓偣鐨勬椂鍊欒鏁板櫒鑷錛屽綋鏌愪釜緇勭殑璁℃暟鍣ㄤ負10鐨勬椂鍊欒〃紺鴻繖涓粍鍐呮墍鏈夌偣閮借璁塊棶榪囦簡錛屼笉闇瑕佸啀榪涜鏋氫婦浜嗭紝榪欐牱鍙互鎶婃渶鍧忓鏉傚害鎺у埗鍦?/span> O( N*N/10 ) 浠ヤ笅銆?/span>
A . John
PKU 3480 http://poj.org/problem?id=3480
棰樻剰錛歂鍫嗙煶瀛愶紝涓や漢杞祦浠庡叾涓竴鍫嗕腑鍙栦換鎰忕煶瀛愶紝鏈鍚庝竴涓彇瀹岀煶瀛愮殑浜鴻緭銆?/span>
棰樿В錛氬崥寮堛?/span>
1) 褰撴墍鏈夌煶瀛愮殑SG鍊煎紓鎴栧拰涓嶇瓑浜?鏃訛細
a) 涓暟澶т簬1鐨勫爢鏁?0錛屽繀瀹氭槸濂囨暟涓?錛屾墍浠ュ厛鎵嬪繀杈擄紱
b) 涓暟澶т簬1鐨勫爢鏁?1錛屾昏兘鎯沖姙娉曞皢灞闈㈠彉鎴愬鏁頒釜1錛屾墍浠ュ厛鎵嬪繀鑳滐紱
c) 涓暟澶т簬1鐨勫爢鏁?gt;1錛屾昏兘鍙栨帀鏌愪簺鐭沖瓙錛屼嬌寰楁墍鏈夌煶瀛愮殑SG鍊煎紓鎴栧拰涓?錛屽茍涓斾釜鏁板ぇ浜?鐨勫爢鏁拌嚦灝戣繕鍓╀袱鍫嗭紱
2) 褰撴墍鏈夌煶瀛愮殑SG鍊煎紓鎴栧拰絳変簬0鏃訛細
a) 涓暟澶т簬1鐨勫爢鏁?0錛屽繀瀹氭槸鍋舵暟涓?錛屽厛鎵嬪繀鑳滐紱
b) 涓暟澶т簬1鐨勫爢鏁?1錛堜笉瀛樺湪錛夛紱
c) 涓暟澶т簬1鐨勫爢鏁?gt;1錛屾棤璁烘庝箞鍙栵紝SG鍊煎紓鎴栧拰閮戒笉鍙兘涓?銆傚茍涓旀棤璁哄厛鎵嬫庝箞縐伙紝鍚庢墜鍙互瑕佷箞榪涘叆鍋舵暟涓?鐨勭姸鎬侊紝瑕佷箞淇濇寔SG鍊煎拰涓?騫朵笖闈炲叏1鐨勭姸鎬侊紙璇ョ姸鎬佸厛鎵嬪繀杈?/span>錛夛紝鎵浠ヨ繖縐嶆儏鍐碉紝鍏堟墜蹇呰觸銆?/span>
鐢變簬1) 鐨刢)鎯呭喌鍙互鍒拌揪2鐨刢)鎯呭喌錛屾墍浠?鐨刢)鎯呭喌涓哄厛鎵嬪繀鑳滅偣銆?/span>
B . Double Queue
PKU 3481 http://poj.org/problem?id=3481
棰樻剰錛氱粰瀹氫竴浜涙暟鎹?K,P)鍜屼竴浜涜闂紝K涓烘暟鎹鹼紝P涓轟紭鍏堢駭錛屾瘡嬈¤闂緭鍑哄綋鍓嶄紭鍏堢駭鏈楂樻垨鑰呮渶浣庣殑鏁版嵁鐨凨鐨勫鹼紝璇㈤棶瀹屽垹闄よ繖涓暟鎹?/span>
棰樿В錛氬鉤琛℃爲銆?/span>
鍙互鐢⊿LT鐨剆et(鍐呴儴涔熸槸騫寵 鏍戠殑瀹炵幇)姘磋繃鍘匯?/span>
C . ‘JBC’
PKU 3482 http://poj.org/problem?id=3482
棰樻剰錛氳繘鍒惰漿鎹紝鏁板瓧浣嶅彲浠ユ槸浠諱綍鐨勫彲瑙丄SCII鐮侊紝姹傛墍鏈夊彲鑳借繘鍒朵笅鐨勪覆杞崲鎴愬崄榪涘埗鍚庣殑鍜屻?/span>
棰樿В錛氭ā鎷熻繘鍒惰漿鎹紝妯℃嫙澶ф暟榪愮畻銆?/span>
D . Loan Scheduling
PKU 3483 http://poj.org/problem?id=3483
棰樻剰錛氱粰瀹歂(N <= 10000)涓換鍔★紝姣忎釜浠誨姟鏄竴涓簩鍏冪粍(Pi, Di)錛岃〃紺哄鏋滃湪[0, Di]鐨勬煇涓椂鍒誨唴瀹屾垚鍒欏彲浠ュ緱鍒癙i鐨勫埄娑︼紝姣忎釜鏃墮棿鐐規渶澶氬彧鑳芥湁L(L <= 100)涓換鍔★紝姹傚彇涓涓換鍔″瓙闆嗘潵瀹屾垚鐨勭殑鏈澶у埄娑︽誨拰銆?/span>
棰樿В錛氳椽蹇冦?/span>
鍒濆鍖栨瘡涓椂闂寸偣鐨勫彲鐢ㄤ換鍔℃暟涓篖錛屽垵濮嬪寲浠誨姟鍒╂鼎鍜孲銆?/span>
灝嗘墍鏈変換鍔℃寜Pi浠庡ぇ鍒板皬鎺掑簭錛屽浜庢瘡涓換鍔★紝浠嶥i鍒?鏋氫婦瀹冪殑瀹屾垚鏃墮棿t錛屽鏋渢榪欎釜鏃墮棿鐐硅繕鏈夊彲鐢ㄤ換鍔★紝绱姞Pi鍒癝錛屽茍涓斿皢t榪欎釜鏃墮棿鐐圭殑鍙敤浠誨姟鏁板噺1錛屾灇涓懼畬鎵鏈変換鍔″悗S鍗充負鎵姹傘?/span>
E . Showstopper
PKU 3484 http://poj.org/problem?id=3484
棰樻剰錛氱粰瀹氫竴浜涗笁鍏冪粍(X, Y, Z)錛屼竴涓笁鍏冪粍琛ㄧず婊¤凍X + K*Z <= Y (K = 0, 1, 2, 3 ... ) 鐨勬墍鏈夋鏁存暟 X + K*Z鍑虹幇浜嗕竴嬈°傚浜庡涓笁鍏冪粍錛屼繚璇佹墍鏈夋暟涓嚦澶氬彧鏈変竴涓暟鍑虹幇濂囨暟嬈★紝姹傝繖涓暟浠ュ強瀹冨嚭鐜扮殑嬈℃暟銆?/span>
棰樿В錛氫簩鍒嗙瓟妗堛?/span>
瀵逛簬鍑虹幇濂囨暟嬈$殑閭d釜鏁癟錛岄偅涔堝鏋滃皬浜嶵鐨勬墍鏈夋暟鐨勫拰蹇呭畾鏄伓鏁幫紝澶т簬絳変簬T鐨勬墍鏈夋暟鐨勫拰蹇呭畾鏄鏁幫紝鍒╃敤榪欎竴鐐瑰彲浠ヤ簩鍒嗘灇涓捐繖涓猅錛岀劧鍚庡埄鐢ㄦ墍鏈夊皬浜庣瓑浜嶵鐨勬暟鐨勪釜鏁扮殑濂囧伓鎬ц繘琛屼簩鍒嗗垽瀹氥?/span>
瀵逛簬鏌愪釜涓夊厓緇?X, Y, Z)錛屽皬浜庣瓑浜嶵鐨勪釜鏁板垎鍑犵鎯呭喌璁ㄨ錛?/span>
1) 褰揟 >= Y錛屼釜鏁頒負 (Y-X)/Z + 1;
2) 褰揟 < X錛屼釜鏁頒負0;
3) 褰?nbsp;X <= T < Y錛屼釜鏁頒負 (T-X)/Z + 1;
姣忔鏋氫婦T錛屽皢鎵鏈夊尯闂寸殑鏁扮浉鍔犲垽鏂鍋舵у嵆鍙?/span>
F . Highway
PKU 3485 http://poj.org/problem?id=3485
棰樻剰錛氱粰瀹氫竴鏉¢珮閫熷叕璺殑闀垮害L(鑼冨洿涓?鍒癓)鍜孨涓潙搴勶紝瑕佹眰鍦ㄩ珮閫熷叕璺笂寤轟竴浜涘嚭鍙o紝浣垮緱姣忎釜鏉戝簞鍒伴珮閫熷叕璺嚦灝戞湁涓涓嚭鍙g殑璺濈涓嶅ぇ浜嶥錛屽茍涓斿嚭鍙f繪暟鏈灝戙?/span>
棰樿В錛氳椽蹇冦?/span>
璁$畻鍑烘瘡涓潙搴勫埌楂橀熷叕璺窛紱籇鑼冨洿鍐呯殑宸﹀彸鍖洪棿[Li, Ri]錛屽榪欎簺鍖洪棿榪涜鎺掑簭錛屾帓搴忚鍒欎負濡傛灉宸︾鐐逛竴鑷村垯鎸夌収鍙崇鐐歸掑鎺掑簭錛屽惁鍒欐寜鐓у乏绔偣閫掑鎺掑簭銆傜劧鍚庢寜宸︾鐐歸掑鏋氫婦姣忎釜鍖洪棿錛堟瘡涓尯闂村搴斾竴涓潙搴勶級錛屽浜庡皻鏈湁楂橀熷叕璺彲杈劇殑鏉戝簞錛屽湪鍏跺彸绔偣寤虹珛涓涓嚭鍙o紙璐績鎵鍦紝鍥犱負鏄粠宸﹀線鍙蟲壂鎻忥紝鎵浠ュ湪鍙崇鐐瑰緩鍑哄彛鑲畾姣斿乏绔偣寤烘洿浼橈級錛岀劧鍚庡皢瀹冧箣鍚庣殑宸︾鐐瑰潗鏍囧皬浜庤繖涓嚭鍙g殑鍖洪棿鍏ㄩ儴hash鎺夛紙鍥犱負閭d簺鏉戝簞鍙互鐢ㄨ繖涓嚭鍙o紝鏃犻』寤虹珛鏂扮殑鍑哄彛錛夛紝鐩村埌鎵鏈夊尯闂存灇涓懼畬姣曪紝鍑哄彛鏁頒篃灝卞緱鍑轟簡銆?/span>
G . Computers
PKU 3486 http://poj.org/problem?id=3486
棰樻剰錛氭晠浜嬭儗鏅槸姣忓勾閮借鏇存崲鐢佃剳鎴栬呰繘琛屼竴嬈$淮淇紝濡傛灉鎹㈢數鑴戦渶瑕乧鐨勮姳璐癸紝濡傛灉涓嶆崲鐢佃剳錛岄偅涔堢y騫村埌絎瑉騫? 1 <= y <= z <= n)鐨勬葷淮淇垂鐢ㄤ負m[y][z]錛屾眰緇忚繃n騫寸殑鏈灝忚姳璐廣?/span>
棰樿В錛氬姩鎬佽鍒掋?/span>
DP[i]琛ㄧず緇忚繃i騫寸殑鎬誨紑閿錛屽亣璁句粠絎琷騫村紑濮嬩拱浜嗕竴鍙版柊鐨勭數鑴戯紝涓鐩寸敤鍒頒簡絎琲騫達紝閭d箞鍓峧騫寸殑鎬誨紑閿涓篋P[j]錛屼粠絎琷+1騫村埌絎琲騫寸殑緇翠慨寮閿鍔犱笂璐拱鑺辮垂c錛屽嵆DP[j] + m[j+1][i] + c錛孌P[i]灝辨槸榪欎簺寮閿涓殑鏈灝忓鹼紝鍗熾?/span>
DP[i] = min{ DP[j] + m[j+1][i] + c, 0 <= j < i };
H . The Stable Marriage Problem
PKU 3487 http://poj.org/problem?id=3487
棰樻剰錛歯(n < 27)瀵圭敺濂籌紝姣忎釜鐢蜂漢鏈夊鎵鏈夊コ浜虹殑濂芥劅搴︼紝姣忎釜濂充漢涔熸湁瀵規墍鏈夌敺浜虹殑濂芥劅搴︼紝A瀵笲鐨勫ソ鎰熷害璁頒負G(A, B), 姹傛壘鍑轟竴縐嶇ǔ瀹氱殑濠氶厤鍏崇郴錛屼嬌寰楀浜庝換鎰忎竴瀵瑰か濡嘪(M, W)錛屼笉瀛樺湪 G(XM, YW) > G(XM, XW) 騫朵笖 G(XW, ZM) > G(XW, XM)錛屽茍涓旇姹傜敺澹紭鍏堣冭檻錛堝嵆鐢鋒柟濡傛灉鑳芥壘鍒板ソ鐨勪竴瀹氫笉浼氭洿宸殑錛夈傞氫織鐨勮錛屽氨鏄疿M鏇村姞鍠滄鍒漢鐨勮佸﹩錛孹w鏇村姞鍠滄鍒漢鐨勮佸叕錛岃繖鏍風殑濠氬Щ鏄笉紼沖畾鐨勶紝鍙屾柟閮芥湁鍙兘鍑虹幇澶栭亣銆?/span>
棰樿В錛氱ǔ瀹氬濮葷粡鍏哥畻娉曘?/span>
鐢變簬鏄敺澹渶浼橈紝鎵浠ラ渶瑕佹ā鎷熺敺澹眰鐖辯殑鏂瑰紡銆?/span>
鐢↙[i][j]琛ㄧずi鍙風敺瀛愬枩嬈㈢殑絎琷涓コ瀛愮殑緙栧彿錛?/span>
鐢≧[i][j]琛ㄧずi鍙峰コ瀛愬j鍙風敺瀛愮殑璇勫垎錛堣秺澶ц瘎鍒嗚秺楂橈紝涓斿浜庣‘瀹氱殑i鑲畾浜掍笉鐩稿悓錛夛紱
綆楁硶濡備笅錛?/span>
1) 灝嗘墍鏈夌殑鐢峰瓙浠ュ強浠栦滑鍚戝灝戜釜濂充漢姹傝繃濠氱殑淇℃伅鍏ラ槦錛屾瘡嬈″脊鍑轟竴涓敺瀛怣錛屾壘鍒頒粬涓嬩竴涓姹傚鐨勫璞★紙姹傚欏哄簭鎸夌収瀵瑰コ鐢熺殑濂芥劅搴﹂『搴忚繘琛岋級銆?/span>
a) 濡傛灉褰撳墠姹傚瀵硅薄W娌℃湁閰嶅伓錛岀洿鎺ラ厤瀵癸紝璁癕atch[ W ] = M;
b) 濡傛灉褰撳墠姹傚瀵硅薄鏈夎佸叕錛屽嵆Match[ W ]錛岄偅涔堟鏌 鍜?nbsp;Match[ W ]鍦╓鐨勮瘎鍒嗭紝濡傛灉M鐨勮瘎鍒嗗ぇ浜嶹鐨勮佸叕錛屽垯榪嬌鍏舵敼瀚侊紝鍓嶅か鍏ラ槦錛孧atch[ W ] = M錛涘惁鍒欙紝璇ョ敺瀛怣緇х畫鍏ラ槦錛?/span>
2) 鍙嶅榪涜1)鐩村埌鎵鏈変漢閮芥壘鍒扮殑瀵硅薄銆?/span>
I . Arne Saknussemm
PKU 3488 http://poj.org/problem?id=3488
棰樻剰錛氱畝鍗曞瓧絎︿覆妯℃嫙銆?/span>
棰樿В錛氭牴鎹鎰忓仛灝辮浜嗐?/span>
A.Nth Largest Value
PKU 3781 http://poj.org/problem?id=3781
姘撮錛屾眰10涓暟涓3澶х殑鏁般?/span>
B.Equal Sum Partitions
PKU 3782 http://poj.org/problem?id=3782
棰樻剰錛氱粰瀹氫竴涓?/span>M(M <= 10000)涓厓绱犵殑搴忓垪錛屽皢瀹冨垏鍓叉垚K鍧楋紝姣忓潡鐨勫拰鐩哥瓑錛屾眰鏈澶х殑K銆?/span>
棰樿В錛氭灇涓俱?/span>
棣栧厛錛屽垏鎴?/span>K鍧楋紝姣忓潡鍜岀浉絳夛紝閭d箞榪欎釜鍜屽繀瀹氭槸M涓厓绱犳誨拰鐨勪竴涓洜瀛愶紝閭d箞鍙互鏋氫婦絎竴涓潡鐨勯暱搴︼紙M縐嶏級錛屽垽鏂綋鍓嶅潡鐨勫拰鏄惁鑳借鎵鏈夋暟鐨勬誨拰鏁撮櫎錛屽鏋滃彲浠ワ紝欏哄簭鍒ゆ柇鍙鎬э紝鐪嬩技澶嶆潅搴︽槸O(M^2)錛屼絾鏄兘鍚︽暣闄よ繖涓壀鏋濆彲浠ョ瓫閫夋帀緇濆ぇ閮ㄥ垎鎯呭喌銆?/span>
C.Balls
PKU 3783 http://poj.org/problem?id=3783
棰樻剰錛氱粰瀹?/span>B (B <= 50) 涓竴鏍風殑鐞冿紝浠?/span> M (M <= 1000) 灞傛ゼ涓婁竴涓竴涓線涓嬫墧錛屽瓨鍦ㄦ煇涓ゼ灞?/span>K錛屼嬌寰椾綆浜庡畠鐨勬ゼ灞傚線涓嬫墧鐞冿紝鐞冧笉浼氱錛屽湪絎?/span>K灞傛墧涓嬪幓浼氱銆傛眰鏈鍧忔儏鍐典笅錛岄渶瑕佹墧鍑犳鎵嶈兘紜畾榪欎釜K銆?/span>
棰樿В錛氬姩鎬佽鍒掋?/span>
浠?/span>DP[i][j]琛ㄧず鎬繪ゼ灞備負i錛屾寔鏈?/span>j涓悆鏃訛紝鏈鍧忔儏鍐甸渶瑕佺殑嬈℃暟錛?/span>
閭d箞濡傛灉浠?/span>k ( 1 <= k <= i) 灞傝繘琛屾墧鐞冿紝鏈変袱縐嶆儏鍐碉細
1) 濡傛灉鐞冧笉紕庯紝鍒欒繕闇瑕佽繘琛?/span>DP[i-k][j]嬈℃祴璇曪紙鍚戞洿楂樼殑妤煎眰榪涘彂錛夛紱
2) 濡傛灉鐞冪錛岄偅涔堣繕鍙互榪涜鐨勬鏁頒負DP[k-1][j-1] 錛堟崯澶變簡涓涓悆錛夛紱
鐢變簬瑕佽冭檻鏈鍧忔儏鍐碉紝鎵浠ユ瘡嬈℃祴璇曞繀欏誨彇(1) (2)涓殑澶ц?/span>+1錛屾瘡嬈¢夊畾涓涓ゼ灞傦紝浣垮緱榪欎釜妤煎眰寰涓嬫墧鐞冪殑緇撴灉鐨勬渶澶у兼渶灝忥紝涔熷嵆鐘舵佽漿縐繪柟紼嬩負錛?/span>
DP[i][j] = Min( DP[i][j], Max(DP[i-k][j], DP[k-1][j-1]) + 1 );
Pku涓婃湁閬撳拰榪欓鎯蟲硶綾諱技鐨勯錛?/span>http://poj.org/problem?id=1243
D.Running Median
PKU 3784 http://poj.org/problem?id=3784
棰樻剰錛氫竴涓暱搴︿負M(M <= 9999)鐨勫簭鍒楋紝姣忔濂囨暟浣嶇殑鏁拌鍏ョ殑鏃跺欒綆楀墠闈㈡暣涓簭鍒楃殑涓綅鏁般?/span>
棰樿В錛氫簩鍒?/span> + 鏍戠姸鏁扮粍銆?/span>
鐢變簬鏁板瓧鏄?/span>int32鑼冨洿錛屾墍浠ラ鍏堥渶瑕佸皢鎵鏈夋暟紱繪暎鍒頒笅鏍囷紝鏋氫婦姣忎竴涓暟瀛楄鍏ワ紝灝嗗搴斾綅鐨勬暟瀛椾笅鏍囨彃鍏ュ埌鏍戠姸鏁扮粍涓紝姣忓綋璇誨埌濂囨暟涓殑鏃跺欙紝鍒╃敤鏍戠姸鏁扮粍鐨勬垚绔眰鍜岀殑鎬ц川錛屽鏋滆鎵劇K澶х殑鏁幫紝閭d箞灝變簩鍒嗕竴涓瓟妗堬紝鐒跺悗鏌ヨ鏍戠姸鏁扮粍錛屽鏋滄眰鍜屽ぇ浜庣瓑浜?/span>K錛岃〃紺烘槸涓涓欓夎В錛堝洜涓鴻淇濊瘉澶т簬絳変簬K鐨勬暟鏈灝忥紝鎵嶆槸絎?/span>K澶х殑鏁幫級錛屽弽澶嶄簩鍒嗭紝鐩村埌鎵懼埌鏈灝忕殑鍊?/span>V婊¤凍sum(V) >= K錛屾椂闂村鏉傚害O(2 *M * log(M) )銆?/span>
E.The Next Permutation
PKU 3785 http://poj.org/problem?id=3785
棰樻剰錛氱粰瀹氫竴涓彲閲嶅鍏冪礌鐨勬帓鍒?/span>A[i]錛屾眰涓嬩竴涓帓鍒椼?/span>
棰樿В錛氫粠鍚庡線鍓嶆壂鎻忥紝瀵逛簬絎?/span>i涓厓绱?/span>A[i]錛屽鏋滆兘澶熸壘鍒頒竴涓?/span>j錛屼嬌寰?/span>A[j] > A[i]錛屽茍涓旀弧瓚?/span>A[j]鏄戶絎?/span>i浣嶄箣鍚庢渶灝忕殑鏁幫紝閭d箞灝?/span>A[i]鍜?/span>A[j]榪涜浜ゆ崲錛岀劧鍚庡皢A[i+1]鍒版湯灝劇殑鍏冪礌榪涜涓嬈′笉闄嶅簭鎺掑簭錛屾渶鍚庡緱鍒扮殑涓插氨鏄В銆?/span>
F.Adjacent Bit Counts
PKU 3786 http://poj.org/problem?id=3786
棰樻剰錛氭眰闀垮害涓?/span>n鐨勪簩榪涘埗鏁存暟涓紝鐩擱偦涓や釜1鐨勫鏁版湁k瀵癸紙鍙噸澶嶄嬌鐢級鐨勬暣鏁頒釜鏁般?/span>
棰樿В錛氬姩鎬佽鍒掋?/span>
浠ら暱搴︿負n錛岀浉閭?/span>1鐨勫鏁頒負k鐨勬暟鐨勪釜鏁頒負DP[n][k]錛屽叾涓互0緇撳熬鐨勪負DP[n][k][0]錛屼互1緇撳熬鐨勪負DP[n][k][1]錛岄偅涔?/span> DP[n][k] = DP[n][k][0] + DP[n][k][1]錛?/span>
騫朵笖鏈夊涓嬬姸鎬佽漿縐繪柟紼嬶細
1) 闀垮害涓?/span>n-1鐨勪簩榪涘埗鏁板湪鏈熬鍔犱笂涓涓?/span>0錛岀浉閭?/span>1鐨勫鏁頒笉鍙橈紝鎵浠ユ湁錛?/span>
DP[n][k][0] = DP[n-1][k][0] + DP[n-1][k][1];
2) 闀垮害涓?/span>n-1鐨勪簩榪涘埗鏁板湪鏈熬鍔犱笂涓涓?/span>1錛岀浉閭?/span>1鐨勫鏁板彇鍐充簬錛岀n-1浣嶆槸0榪樻槸1錛屽綋絎?/span>n-1浣嶆槸1錛岀浉閭?/span>1鐨勫鏁?/span>+1錛涘綋絎?/span>n-1浣嶆槸0錛岀浉閭?/span>1鐨勫鏁頒笉鍙橈紝鎵浠ユ湁錛?/span>
DP[n][k][1] = DP[n-1][k][0] + DP[n-1][k-1][1];
騫朵笖鍒濆鐘舵佷笅DP[0][0][0] = 1, DP[0][0][1] = 0
G.Convex Hull of Lattice Points
PKU 3787 http://poj.org/problem?id=3787
棰樻剰錛氬嚫鍖呫?/span>
棰樿В錛?/span>Graham鎵弿娉曟眰瑙e嵆鍙?/span>
H.Interior Points of Lattice Polygons
PKU 3788 http://poj.org/problem?id=3788
棰樻剰錛氱粰瀹氫竴涓嚫澶氳竟褰紝姹傚畠鍐呴儴鎵鏈夌殑姘村鉤綰挎銆?/span>
棰樿В錛氫粠澶氳竟褰㈢涓涓偣鐨?/span>y鍧愭爣寮濮嬶紝閫掑噺鏋氫婦姘村鉤綰挎鐨?/span>y鍧愭爣錛屽垎鍒拰澶氳竟褰㈢殑n鏉¤竟榪涜姹備氦鐐癸紱
1) 濡傛灉姘村鉤綰挎鍜屽杈瑰艦鏌愭潯杈瑰叡綰匡紝璇存槑姝eソ鍒頒簡澶氳竟褰㈢殑杈圭紭錛屾棤欏誨線涓嬫灇涓撅紝璺沖嚭寰幆銆?/span>
2) 濡傛灉姘村鉤綰挎鍜屽杈瑰艦灝忎簬涓涓氦鐐癸紝閭d箞褰?/span>y杞村啀嬈″噺灝忕殑鏃跺欙紝蹇呯劧娌℃湁浜ょ偣錛屼篃鏃犻』緇х畫鏋氫婦銆?/span>
3) 鍚﹀垯錛屽皢宸︾鐐瑰潗鏍囧彇涓婃暣x1錛屽彸绔偣鍙栦笅鏁?/span>x2錛屽鏋?/span>x1 <= x2 灝嗗畠鎻掑叆鍒拌В闆嗕腑銆?/span>
棰樻剰錛氱粰瀹氫竴涓竴緇寸殑媯嬬洏錛岃寖鍥翠負[0, W] (W <= 1000,000,000)錛屾煇涓や釜鐐逛箣闂存湁姊瓙鎴栬櫕媧烇紝姊瓙鐨勪笅绔偣鍒頒笂绔偣浠ュ強铏礊鐨勪笂绔偣鍒頒笅绔偣鑺辮垂鐨勬鏁頒負0錛屽叾瀹冧換鎰忕偣涔嬮棿鐨勮窛紱婚氳繃璺寵穬鏉ヨ綆楋紝鏈澶氭瘡嬈¤煩璺冧笉瓚呰繃S鏍鹼紙S<= 6錛夛紝璺寵穬鐨勮繃紼嬩腑濡傛灉璺沖埌姊瓙鐨勪笅绔偣鎴栬呰櫕媧炵殑涓婄鐐瑰氨浼氳鐩存帴浼犻佸埌鍙︿竴绔紝騫朵笖姣忔璺寵穬鍙兘浠庡皬鐨勭偣璺沖埌澶х殑鐐癸紙铏礊鏄釜渚嬪錛夛紝姹備粠0鍒?/span>W鐨勬渶鐭窛紱匯?/span>
鍥?/span>A-1
棰樿В錛?/span>
紱繪暎鍖?/span> + SPFA銆?/span>
灝嗘墍鏈夋瀛愬拰铏礊鐨勪袱绔偣銆?/span>0鍜?/span>W浠ュ強浠栦滑寰鍓嶅線鍚?/span>S姝ヤ互鍐呯殑鏁板叏閮ㄨ褰曚笅鏉ワ紝姊瓙鍜岃櫕媧炴湁P錛?/span>P <= 40錛変釜錛屽姞涓婅搗鐐圭粓鐐癸紝鎬誨叡82涓偣錛岀畻涓婂墠鍚庡悇鍏錛屾誨叡82 * 13 = 1066涓偣錛岀劧鍚庡皢榪欎簺鐐規帓搴忓悗紱繪暎鍖栵紝鏈鍚庡氨鏄鏋勫緩涓涓綉緇滃浘錛岄氳繃緗戠粶姹?/span>0鍒?/span>W鐨勬渶鐭礬錛屾渶鐭礬鍙互鐢?/span>SPFA姹傝В銆?/span>
璋堣皥寤哄浘鐨勮繃紼嬶紝瀵逛簬浠繪剰涓や釜鐐癸紝浠栦滑涔嬮棿蹇呭畾鍙互榪炰竴鏉¤竟錛岀劧鍚庢湁涓涓鏁拌〃紺鴻竟鐨勬潈鍊鹼紙榪欓噷鐨勬鏁頒篃鍙兘鏄鏃犵┓錛屼篃鍗蟲案榪滈兘鏃犳硶鍒拌揪錛夈?/span>
瀵逛簬浠繪剰涓や釜鐐?/span>(u, v)錛屼粬浠殑姝ユ暟w(u, v)錛堣竟鏉冿級鎴戜滑鍋氬涓嬭璁猴紙榪欓噷鐨?/span>u銆?/span>v鏄鏁e寲鍚庣殑鐐癸級錛?/span>
1錛夊鏋?/span>u鏄瀛愮殑涓嬬鐐癸紝v鏄瀛愮殑涓婄鐐?/span> 鎴栬?/span> u鏄櫕媧炵殑涓婄鐐癸紝v鏄櫕媧炵殑涓嬬鐐癸紝閭d箞w(u, v) = 0錛屽惁鍒欒繘鍏?/span>2)鐨勫垽鏂?/span>;
2錛夊鏋?/span>u鐨勭紪鍙峰ぇ浜?/span>v錛?/span>w(u, v) = inf錛岃〃紺烘案榪滀笉鍙揪錛屽洜涓烘煇嬈¤煩璺冨彧鑳戒粠灝忕殑鐐硅煩鍒板ぇ鐨勭偣錛屽惁鍒欒繘鍏?/span>3錛夌殑鍒ゆ柇;
3錛夊鏋?/span>u鐨勫疄闄呬綅緗拰v鐨勫疄闄呬綅緗樊鍊煎皬浜庣瓑浜?/span>S錛屽垯w(u, v) = 1錛?/span>
4錛夋鏌?/span>u鍜?/span>v涔嬮棿鏄惁鏈夎櫕媧炵殑涓婄鐐規垨鑰呮瀛愮殑涓嬬鐐癸紝涔嬪悗灝嗚繖涓ょ鐐圭О涓?/span>X鐐?/span>
a錛夊鏋滄湁錛屽垽鏂粬浠槸鍚﹁繛緇紝
i) 濡傛灉涓嶈繛緇?/span>w(u, v) = inf錛堣繖涓姝ヨ繖涔堝仛鏄負浜嗙畝鍗曞寲錛岃瘯鎯充竴涓嬶紝濡傛灉X鐐逛笉鏄叏閮ㄨ繛緇紝璇存槑u鍙互鍏堣煩鍒頒粬浠腑闂寸殑鏌愪釜闈?/span>X鐨勭偣錛岀劧鍚庡啀璺沖埌v鐐癸紝榪欎竴姝ユ槸閫氳繃SPFA鏉ュ疄鐜拌凱浠g殑錛屽緩杈圭殑鏃跺欏彲浠ヤ笉鑰冭檻錛夈?/span>
ii錛夊鏋滆繛緇紝鍒ゆ柇浠栦滑榪炵畫鐨勬牸瀛愮殑鏁扮洰錛屽鏋滃ぇ浜庣瓑浜?/span>S璇存槑榪欎釜榪炵畫鐨勫潡蹇呭畾璺充笉榪囧幓錛屾墍浠?/span>w(u, v) = inf錛屽惁鍒欏彲浠ュ厛璺沖埌鏈鍏堢殑涓涓?/span>X鐐圭殑鍓嶉潰涓涓偣錛岀劧鍚庣粡榪囦竴姝?/span>S璺寵穬灝嗚繖涓繛緇潡璺寵繃鍘伙紝鍐嶈煩鍒?/span>v銆?/span>
b錛夊鏋滄病鏈?/span>X鐐癸紝閭d箞鐩存帴浠?/span>u鐐硅煩鍒?/span>v鐐廣?/span>
榪欓噷鎴戜滑闇瑕佽綆椾粠a鐐硅煩鍒?/span>b鐐逛笉鑰冭檻铏礊鍜屾瀛愮殑鏈鐭窛紱伙紝鍙互璐績鐨勮煩錛屾瘡嬈″線澶х殑璺籌紝鐩村埌鍓╀綑鏍煎瓙涓嶈凍S鏍鹼紝鍗?/span>(b-a + S-1) / S 錛?/span>b-a瀵?/span>S姹傚晢鐨勪笂鏁達級銆?/span>
杈瑰緩绔嬪畬鎴愬氨鍙互鍒╃敤騫挎悳姹傝В0-W鐨勬渶鐭礬浜嗐?/span>
B. Gnome Sequencing
PKU 3913 http://poj.org/problem?id=3913
姘撮錛屽垽鏂笁涓暟鏄叏閫掑榪樻槸鍏ㄩ掑噺榪樻槸鏃犲簭銆?/span>
C. DuLL
PKU 3914 http://poj.org/problem?id=3914
棰樻剰錛氱粰瀹氫竴浜?/span>dll鏂囦歡鍜屽畠鍗犵敤鐨勫唴瀛樼┖闂達紝浠ュ強涓浜涘彲鎵ц紼嬪簭鍗犵敤鐨勫唴瀛樼┖闂村拰瀹冧緷璧栫殑dll鏂囦歡錛岀▼搴忎互榪涚▼涓哄崟浣嶏紝涓や釜鐩稿悓鐨勭▼搴忓彲鑳芥湁涓嶅悓鐨勮繘紼嬶紝榪涜涓浜涗笅鍒楃殑鎿嶄綔錛?/span>
1錛夋煇涓▼搴忚繍琛岀殑鏃跺欓渶瑕佸畠渚濊禆鐨?/span>dll鏂囦歡涔熷姞杞藉埌鍐呭瓨涓紝澶氫釜紼嬪簭鍙互鍏辯敤涓涓?/span>dll鏂囦歡錛?/span>
2錛夋煇涓▼搴忛鍑虹殑鏃跺欙紝濡傛灉瀹冩墍渚濊禆鐨?/span>dll鏂囦歡娌℃湁鍏跺畠紼嬪簭浣跨敤錛岄渶瑕侀噴鏀捐繖孌靛唴瀛樼┖闂達紱
緇欏畾涓緋誨垪鐨勮繍琛岃繘紼嬶紝姹傛煇涓椂鍒葷殑鏈澶у唴瀛樺崰鐢ㄣ?/span>
棰樿В錛?/span>HASH鐨勭畝鍗曞簲鐢ㄣ?/span>
鍒濆鍖栧唴瀛樺崰鐢?/span>V = 0錛?/span>
瀵逛簬緇欏畾鐨勮緭鍏ヨ繘紼嬶細
1錛夊鏋滄槸鏂拌繍琛岀殑榪涚▼錛屽皢V鍔犱笂榪欎釜榪涚▼鐨勫唴瀛樺崰鐢紝騫跺皢瀹冩墍鏈変緷璧栫殑dll鏂囦歡媯鏌ヤ竴閬嶏紝濡傛灉寮曠敤璁℃暟涓?/span>0錛屽垯灝嗗搴?/span>dll鏂囦歡鐨勫唴瀛樼瘡鍔犲埌V涓婏紝寮曠敤璁℃暟+1錛?/span>
2錛夊鏋滄槸閫鍑鴻繘紼嬶紝灝?/span>V鍑忓幓榪欎釜榪涚▼鐨勫唴瀛樺崰鐢紝騫跺皢瀹冩墍鏈変緷璧栫殑dll鏂囦歡媯鏌ヤ竴閬嶏紝濡傛灉寮曠敤璁℃暟涓?/span>1錛屽垯鐢?/span>V鍑忓幓瀵瑰簲dll鏂囦歡鐨勫崰鐢ㄩ噺錛屽紩鐢ㄨ鏁?/span>-1錛?/span>
姣忔鎿嶄綔璁板綍鏈澶х殑V灝辨槸鏈鍚庣殑絳旀銆?/span>
D. Black Vienna
PKU 3915 http://poj.org/problem?id=3915
棰樻剰錛氫笁涓漢錛屾瘡涓漢浜斿紶鐗岋紝浜掔浉涓嶇煡閬撳鏂圭殑鐗岋紝榪樻湁棰濆鐨勪笁寮犵墝鏀懼湪涓杈癸紙鎵鏈夌墝緙栧彿涓?/span>A - R錛夈傛瘡涓杞紝鐢?/span> (i-1)%3+1 (1 <= i <= 15) 鍙風帺瀹惰繘琛屽彂闂紝闂?/span>Ai (1 <= Ai <= 3) 鍙風帺瀹?/span>XYZ錛堜唬琛ㄤ換鎰忎笁涓墝鍙鳳級涓夊紶鐗屼腑鏈夊灝戝紶鍦ㄤ粬鎵嬩笂錛岀劧鍚庝粬鍥炵瓟Bi (0 <= Bi <= 3)錛岄棶緇忚繃澶氬皯杞箣鍚庢湁鏌愪綅鐜╁鐭ラ亾 棰濆 鐨勯偅涓夊紶鐗屾槸浠涔堛?/span>
棰樿В錛?/span>dfs鏋氫婦 + 鍓灊銆?/span>
棣栧厛鏋氫婦鍒版煇涓闂?/span>i鐨勬椂鍊欑帺瀹?/span>j鑳藉鐚滃嚭鐨勯偅涓夊紶鐗岀殑鎯呭喌錛屽鏋滄灇涓懼畬鎵鏈夋儏鍐墊渶鍚庣‘瀹氬彧鏈変竴涓В婊¤凍鏉′歡鐨勬椂鍊欙紝閭d釜璇㈤棶鐨勭紪鍙?/span>i灝辨槸絳旀浜嗐?/span>
綾諱技IDA*鐨勬濊礬錛屽厛鏋氫婦璇㈤棶鏈澶ф繁搴︼紝濡傛灉鍒拌揪閭d釜璇㈤棶涓嶈兘紜畾棰濆鐨勯偅涓夊紶鐗屾垨鑰呮湁寰堝縐嶆儏鍐碉紝閭d箞璇存槑榪橀渶瑕佹洿澶氱殑璇㈤棶錛岃凱浠f繁搴︾戶緇灇涓俱?/span>
瀵逛簬鏌愪釜璇㈤棶i錛屾壘鍒拌闂殑閭d笁寮犵墝涓凡緇忔槸Ai鍙烽夋墜鐨勬暟閲?/span>ansCnt錛屼互鍙婂皻鏈‘瀹氱墝鐨勫綊灞炵殑鐗岀殑鏁伴噺xCnt錛屽鏋滃凡緇忕‘瀹氫綅緗殑鐗屾暟閲?/span> 澶т簬 瀹為檯浠栧洖絳旂殑鏁伴噺錛?/span>ansCnt > Bi錛夋垨鑰?/span> 灝氭湭紜畾浣嶇疆鐨勭墝鏁伴噺 + 宸茬粡紜畾涓轟粬鐨勭墝鏁伴噺 灝忎簬 瀹為檯浠栧洖絳旂殑鏁伴噺錛?/span>ansCnt + xCnt < Bi錛夐兘鏄笉鍚堢悊鐨勬儏鍐碉紝鍓灊錛屼笉鐢ㄧ戶緇線涓嬫悳绱紱
鍚﹀垯錛屽皢(Bi - ansCnt)寮犵墝鍒嗛厤緇?/span>Ai錛?/span>(xCnt - (Bi - ansCnt))寮犵墝鍒嗛厤緇欏叾瀹冧袱浣嶇帺瀹朵互鍙婇澶栫殑閭d竴鍫嗭紝榪欓噷闇瑕佺敤鍒板祵濂?/span>dfs鏋氫婦錛屾灇涓懼畬鍚庤繘鍏ヤ笅涓涓闂殑鏋氫婦錛屾瘡嬈¤闂殑鏃跺欏彲浠ユ湁鍑犱釜鍓灊錛?/span>
1錛夊鏋滄煇涓樁孌墊煇涓漢鐨勭墝鏁拌秴榪?/span>5寮狅紱
2錛夋灇涓劇殑瑙g殑鏁伴噺瓚呰繃2涓紱
3) 瀵逛簬涓嬈″畬鍏ㄦ灇涓撅紝鏋氫婦瀹屾墍鏈夎闂悗榪樻槸鏈夋棤娉曠‘瀹氫笁寮犻澶栫殑鐗岀殑鎯呭喌錛?/span>
E. Duplicate Removal
PKU 3916 http://poj.org/problem?id=3916
姘撮錛屽杈撳叆鐨勫厓绱犺繘琛岃繛緇垽閲嶈緭鍑恒?/span>
F. Rock, Paper, Scissors
PKU 3917 http://poj.org/problem?id=3917
姘撮錛屽壀鍒鐭沖ご甯冿紒O_o
G. A to Z Numerals
PKU 3918 http://poj.org/problem?id=3918
棰樻剰錛氬鏉傛ā鎷熴傦紙娌″仛鍑烘潵錛?/span>#-_-# 鏍蜂緥鐨?/span>98鏄庝箞鍑烘潵鐨勫憖錛侊紒錛侊級
H. Cell Towers
PKU 3919 http://poj.org/problem?id=3919
棰樻剰錛氱粰鍑轟竴鏉℃洸鎶樼殑榪炵畫綰挎錛屾洸綰夸粠璧風偣寮濮嬫瘡緇忚繃涓涓暱搴︿負1鐨勫崟浣嶄細鏀劇疆涓涓畧鍗?/span>K錛屽湪鏇茬嚎浠ュ鐨勬煇浜涘湴鏂逛細鏈?/span>T(T <= 10)涓俊鍙峰彂灝勫櫒錛岀敤A銆?/span>B銆?/span>C...鏉ヨ〃紺猴紝姣忎釜淇″彿鍙戝皠鍣ㄦ湁瀹冪殑淇″彿寮哄害Pi錛屾瘡涓俊鍙峰彂灝勫櫒鍒板畧鍗?/span>K鐨勮窛紱誨鏋滄槸D錛岄偅涔堝畠鑳芥帴鏀跺埌鐨勪俊鍙峰間負Pi / D2鐨勬渶榪戞暣鏁幫紝騫朵笖瀵逛簬瀹堝崼K錛屽畠鍙細鎺ユ敹鏈澶х殑淇″彿鍊鹼紝濡傛灉鏈夊涓彂灝勫櫒瀵逛簬K鐨勪俊鍙峰肩浉鍚岋紝閭d箞閫夋嫨瀛楀吀搴忔渶灝忕殑鍙戝皠鍣ㄣ傞渶瑕佹眰鏄竴浜涘畧鍗泦鍚堬紝榪欎簺瀹堝崼鍒嗗埆鍜屽畠鐨勫墠涓涓畧鍗墍鎺ユ敹鐨勪俊鍙峰彂灝勫櫒涓嶄竴鏍楓?/span>
棰樿В錛氳綆楀嚑浣曘佸悜閲忕殑綆鍗曞簲鐢ㄣ?/span>
瀵逛簬姣忔潯灝勭嚎錛岀粓鐐瑰噺鍘昏搗鐐癸紝鍐嶅崟浣嶅寲鍚庡氨鍙互寰楀埌榪欐潯灝勭嚎鐨勫崟浣嶅悜閲忥紝鍒╃敤榪欎竴鐐瑰彲浠ュ緢綆鍗曠殑灝嗘墍鏈夊畧鍗殑鍧愭爣姹傚嚭鏉ワ紝鐒跺悗瀵逛簬姣忎釜瀹堝崼鍒ゆ柇鎺ユ敹鐨勬槸鍝釜鍙戝皠鍣紝鍒ゆ柇鍜屼箣鍓嶉偅涓畧鍗槸鍚︾浉鍚屽嵆鍙?/span>
闇瑕佹敞鎰忕殑鏄渶鍚庝竴涓畧鍗紝褰撳拰涓婁竴涓畧鍗窛紱誨皬浜?/span>0.5鐨勬椂鍊欎笉浼氬緩绔嬫柊鐨勫畧鍗?/span>
I. RIPOFF
PKU 3920 http://poj.org/problem?id=3920
棰樻剰錛氱粰瀹?/span>N(N <= 200)涓暟鐨勪竴緇存暟緇?/span>A錛屽彇涓嶅ぇ浜?/span>T+2涓暟錛屾瘡鐩擱偦涓や釜鏁頒箣闂寸殑涓嬫爣涓嶅ぇ浜?/span>S錛岄棶鏈澶х殑鍙栧兼誨拰(絎?/span>0涓拰絎?/span>N+1涓暟蹇呭彇錛屼笖鏉冨間負0)銆?/span>
棰樿В錛氬姩鎬佽鍒掋?/span>
DP[i][j] 琛ㄧず絎?/span>j涓暟鍙?/span> A[i]鐨勬渶澶у鹼紝閭d箞鐘舵佽漿縐繪柟紼嬪彲浠ヨ〃紺轟負錛?/span>
DP[i][j] = max{ DP[k][j-1] + A[i], i > k > i-1-S && k >= 0};
鐗規畩鐨勶紝DP[0][0] = 0錛屽叾浠栫殑DP[i][j] 閮藉垵濮嬪寲涓?/span>INF;
鏈鍚庤綆楀嚭鐨?/span>DP[N+1][i]涓殑鏈澶у煎氨鏄瓟妗堜簡銆?/span>
棰樻剰錛氱粰瀹氫竴涓?/span>3X3鐨勫叚闈㈤瓟鏂癸紙姣忎釜闈㈡湁3X3涓潡錛夛紝姹傜粡榪囨煇浜涙棆杞箣鍚庤兘鍚︿嬌寰楁墍鏈夐潰鐨勯鑹查兘鐩稿悓錛屾棆杞寘鎷鏌愪釜闈㈣繘琛岄『鏃墮拡鍜岄嗘椂閽堟棆杞紙鍏?/span>12縐嶆儏鍐碉級銆?/span>
鍥?/span>A-1
濡傚浘1錛岃緭鍏ユ暟鎹負宸﹀浘鐨勫艦寮忥紝鍙沖浘緇欏搴旂殑闈㈢紪鍙鳳紝綆ご鏂瑰悜涓洪『鏃墮拡鏃嬭漿鏂瑰悜銆?/span>
+A琛ㄧず瀵?/span>A榪欎釜闈㈣繘琛屼竴嬈¢『鏃墮拡鏃嬭漿錛?/span>-B琛ㄧず瀵?/span>B榪欎釜闈㈣繘琛屼竴嬈¢嗘椂閽堟棆杞傞棶緇忚繃涓瀹氱殑+A/-B鎿嶄綔涔嬪悗鑳藉惁浣垮緱鎵鏈夐潰鐨?/span>3X3涓瓧姣嶉兘鐩稿悓銆?/span>
棰樿В錛氭ā鎷熼
鍋氭硶寰堝錛岃繖閲屼粙緇嶄竴縐嶆瘮杈冨鏄撶悊瑙g殑鐘舵佽褰曟柟寮忥紝鑰冭檻鏌愭鏃嬭漿錛屼竴瀹氭槸鏃嬭漿鏌愪釜闈紝鐒跺悗瀵歸偦鎺ョ殑鍥涗釜闈㈢殑鏌愭潯杈硅繘琛岄『嬈″鉤縐匯傚鍥?/span>A-2, 2鍙烽潰鐨勬棆杞甫鍔ㄧ殑鏄?/span>1銆?/span>5銆?/span>3銆?/span>6鍥涗釜闈€?/span>
鍥?/span>A-2
鎴戠敤涓涓暟緇?/span>rotate_n鏉ヨ褰曟煇涓潰鏃嬭漿鐨勬椂鍊欏甫鍔ㄧ殑闈㈢殑緙栧彿闆嗗悎錛堢紪鍙蜂負0鐨勬暟鎹負鍗犱綅絎︼級錛岄偅涔堟湁錛?/span>
int rotate_n [7][4] = {
{0, 0, 0, 0}, {4, 5, 2, 6}, {1, 5, 3, 6}, {2, 5, 4, 6}, {3, 5, 1, 6}, {1, 4, 3, 2}, {1, 2, 3, 4}
};
鍏夎褰曞甫鍔ㄧ殑闈㈡槸鍝簺榪樹笉澶燂紝榪橀渶瑕佺煡閬撳甫鍔ㄩ潰鐨勫搴旇竟錛屽浜庝竴涓瓟鏂圭殑涓涓潰錛屾垜浠紪鍙峰涓嬶細
錛?/span>0,0錛夛紙0,1錛夛紙0,2錛?/span>
錛?/span>1,0錛夛紙1,1錛夛紙1,2錛?/span>
錛?/span>2,0錛夛紙2,1錛夛紙2,2錛?/span>
鍒嗗埆鐢?/span>1鍒?/span>4鏉ヤ唬琛ㄤ竴涓潰鐨勫洓鏉¤竟錛堟敞鎰忥紝鏈夋柟鍚戯級錛?/span>
1 (0,2) - (0,0)
2 (2,2) - (0,2)
3 (2,0) - (2,2)
4 (0,0) - (2,0)
閭d箞鍚屾牱鐢?/span>rotate_p鏉ヨ褰曟煇涓潰鏃嬭漿鐨勬椂鍊欏甫鍔ㄧ殑闈㈠搴旂殑杈癸紝鍒欐湁錛?/span>
int rotate_p[7][4] = {
{0, 0, 0, 0}, {2, 4, 4, 4}, {2, 3, 4, 1}, {2, 2, 4, 2}, {2, 1, 4, 3}, {1, 1, 1, 1}, {3, 3, 3, 3},
};
榪欐牱涓鏉ワ紝鎴戜滑鍙渶瑕佽冭檻涓涓潰鐨勬棆杞紝鐒跺悗濂楃敤瀵瑰簲鐨勬暟鎹嵆鍙紝榪樻湁涓涓瘮杈冨閥濡欑殑鏄紝閫嗘椂閽堟棆杞笉闇瑕佺壒孌婂鐞嗭紝鐩存帴灝嗛『鏃墮拡鏃嬭漿鎵ц涓夋鍗沖彲銆?/span>
B錛?/span>This Sentence is False
PKU 1291 http://poj.org/problem?id=1291
棰樻剰錛氱粰瀹氫竴浜涘彞瀛愬艦濡?#8220;Sentence X is true/false”鐨勫彞瀛愶紝X琛ㄧず絎嚑涓彞瀛愶紝闂墍鏈夌殑鎯呭喌鏄惁鍚堟硶錛屽鏋滃悎娉曪紝杈撳嚭鏈澶х殑鍙兘涓虹湡鐨勫彞瀛愩?/span>
棰樿В錛?/span>2-sat銆?/span>
姣忎釜鍙ュ瓙鎶借薄鎴愪袱涓粨鐐癸紝涓虹湡鐨勬椂鍊欎負X錛屼負鍋囩殑鏃跺欎負X '銆?/span>
a) 瀵逛簬絎?/span>X涓彞瀛愶紝濡傛灉鏄?/span> Sentence Y is true錛?/span>
鍒欒繖涓彞瀛愪負鐪熺殑鏃跺欙紝 X ->Y榪炶竟錛?/span>
褰撹繖涓彞瀛愪負鍋囩殑鏃跺欙紝X ' -> Y '榪炶竟錛?/span>
b) 瀵逛簬絎?/span>X涓彞瀛愶紝濡傛灉鏄?/span> Sentence Y is false錛?/span>
鍒欒繖涓彞瀛愪負鐪熺殑鏃跺欙紝 X ->Y '榪炶竟錛?/span>
褰撹繖涓彞瀛愪負鍋囩殑鏃跺欙紝X ' -> Y榪炶竟錛?/span>
鐒跺悗姹備竴嬈″己榪為氾紝濡傛灉鏈鍚庢湁鏌愪釜鐐?/span>X鍜?/span>X ' 鍦ㄥ悓涓涓繛閫氬浘涓紝璇存槑閫昏緫閿欒錛岃鏄庡繀鐒跺瓨鍦ㄤ笉鍚堟硶鐨勬儏鍐碉紝鍚﹀垯瀵逛簬姣忎釜榪為氬垎閲忥紝姹傚嚭涓虹湡鐨勭偣鐨勪釜鏁板拰涓哄亣鐨勭偣鐨勪釜鏁幫紝鐒跺悗灝嗕粬浠箣涓殑澶ц呯瘡鍔狅紝鏈鍚庣瓟妗堥櫎2灝辨槸鏈澶х殑鍙兘涓虹湡鐨勫彞瀛愶紙闄?/span>2鐨勫師鍥犳槸鍥犱負鐪熷亣鏄縐扮殑錛夈?/span>
C錛?/span>Will Indiana Jones Get There?
PKU 1292 http://poj.org/problem?id=1292
棰樻剰錛氳惀鏁戝叕涓伙紝钀ユ晳璺嚎瑕佷箞緇曠潃澧欒蛋錛岃涔堣蛋涓ら潰澧欑殑鏈鐭窛紱伙紙榪欑鎯呭喌涓嬮渶瑕佸湪涓ら潰澧欎箣闂存惌涓鍧楁湪鏉匡紝騫朵笖鍙互鍙嶅浣跨敤錛夈傞棶钀ユ晳榪囩▼涓湪鏉跨殑鏈鐭暱搴︺?/span>
鍥?/span>C-1
棰樿В錛氱嚎孌佃窛紱?/span> + 浜屽垎絳旀
鍥犱負鏈ㄦ澘鍙互鍙嶅浣跨敤錛屾墍浠ユ垜浠彲浠ュ亣璁懼鏋滄湪鏉胯秺闀匡紝鑳藉钀ユ晳鍏富鐨勬鐜囧氨瓚婂ぇ錛屽弽涔嬪垯瓚婂皬錛屾墍浠ラ棶棰樺氨鏄眰婊¤凍涓ょ偣鍙揪鐨勬渶灝忔湪鏉塊暱搴︼紝鍙互浜屽垎鏋氫婦榪欎釜闀垮害T錛屽鏋滀袱闈㈠鐨勬渶鐭窛紱誨ぇ浜庤繖涓?/span>T錛岃〃鏄庝袱闈㈠涓嶅彲杈撅紝灝嗗鎶借薄鎴愮偣錛屼袱闈㈠涔嬮棿鐨勬渶鐭窛紱誨彲浠ラ氳繃綰挎鍜岀嚎孌電殑鏈鐭窛紱婚澶勭悊鍑烘潵錛岀劧鍚庢瘡嬈′簩鍒嗙瓟妗堝悗閫氳繃涓嬈℃悳绱㈠氨鍙互鎵懼嚭璧風偣鍜岀粓鐐規槸鍚﹀彲杈撅紝澶嶆潅搴︿負O錛?/span>n^2錛夊嵆璁$畻涓ょ嚎孌佃窛紱繪椂鍊欑殑澶嶆潅搴︺?/span>
D. Duty Free Shop
PKU 1293 http://poj.org/problem?id=1293
棰樻剰錛氱粰瀹?/span>M(M <= 1000)涓櫧宸у厠鍔涘拰L(L<= 1000)涓粦宸у厠鍔涳紝鐒跺悗緇欏畾N(N <= M + L)涓閲忎負Ci鐨勭洅瀛愶紝闂兘鍚︽壘鍒頒竴縐嶆柟妗堬紝浣垮緱鏌愪簺鐩掑瓙鏀炬弧鐧藉閥鍏嬪姏錛屽墿涓嬬殑鐩掑瓙鏀炬弧榛戝閥鍏嬪姏銆?/span>
棰樿В錛氳儗鍖呴棶棰樸?/span>
鐢變簬闇瑕佸皢姣忎釜鐩掑瓙閮芥斁婊★紝浜庢槸鍙互鍒╃敤涓緇磋儗鍖呯殑姹傛硶灝?/span>Ci鐨勬墍鏈夊皬浜庣瓑浜?/span>M鐨勫彲琛岀粍鍚堟眰鍑烘潵錛屾壘鍒版渶澶х殑M ' <= M錛屽茍涓?/span>M ' 鑳藉閫氳繃鏌愮鏂瑰紡琚粍鍚堝嚭鏉ワ紝閭d箞鎵鏈夌洅瀛愮殑瀹歸噺Sum 鍑忓幓 M ' 鐨勫樊灝忎簬絳変簬L鐨勮瘽錛屽繀瀹氳兘灝嗗墿涓嬬殑鐩掑瓙濉弧榛戝閥鍏嬪姏錛屽惁鍒欐棤瑙c?/span>
榪欓闇瑕佽褰曞墠椹憋紝騫朵笖娉ㄦ剰M = 0 浠ュ強 L = 0 鐨勬儏鍐碉紙涓昏鏄湪杈撳叆鐨勬椂鍊欏垽鏂鍑烘潯浠訛紝M+L==0閫鍑鴻屽茍闈?/span> (M&&L) == 0錛夈?/span>
E錛?/span>Not Too Convex Hull
PKU 1294 http://poj.org/problem?id=1294
棰樻剰錛氱粰瀹?/span>N(N<=101)涓偣錛堟病鏈変笁鐐瑰叡綰跨殑鎯呭喌錛夛紝瑕佹眰鐢?/span>B(B<=50)鏍圭毊鏉″皢榪?/span>N涓偣鍦堟垚B涓儴鍒嗭紝姣忎釜閮ㄥ垎涓轟竴涓嚫澶氳竟褰紝騫朵笖鎵鏈夊嚫澶氳竟褰㈠叕鐢ㄤ竴涓偣錛堣繖涓偣浼氱粰鍑猴級錛屾眰浼楀鏂規涓弧瓚蟲墍鏈夊杈瑰艦闈㈢Н鍜屾渶灝忕殑鏂規銆傚浘E-1琛ㄧず鐢ㄤ袱鏍圭毊鏉″湀浣?/span>19涓偣鐨勬儏鍐碉紙鍘熺偣鍏辯敤浜嗕袱嬈★級銆?/span>
鍥?/span>E-1
棰樿В錛氱幆褰㈠姩鎬佽鍒掋?/span>
棣栧厛灝嗘墍鏈夌偣鎸夌収緇欏畾鐨勫師鐐硅繘琛屾瀬鍧愭爣鎺掑簭錛岄偅涔堢1涓偣鍒扮N涓偣蹇呭畾鏄寜鐓ф瀬鍧愭爣涓ユ牸閫嗘椂閽堟帓甯冪殑錛堝洜涓烘病鏈変笁鐐瑰叡綰匡級錛岀敤DP[i][b]琛ㄧず絎?/span>i涓偣鍒扮N涓偣緇忚繃b嬈″垎鍓插悗鍒嗗壊瀹岀殑鍑稿杈瑰艦鐨勯潰縐誨拰鏈灝忓鹼紝閭d箞錛?/span>
DP[i][b] =min{ area[i][k] +DP[k+1][b-1] (i < k < N) }; 鐗規畩鐨勶紝DP[0][0] = 0;
area[i][j] 琛ㄧず鏋佸潗鏍囧湪絎?/span>i涓偣鍜岀j涓偣涔嬮棿鐨勬墍鏈夌偣(鍖呭惈榪欎袱涓偣)鍔犱笂鍘熺偣緇勬垚鐨勫嚫鍖呯殑闈㈢Н錛屽彲浠ラ氳繃鍒濆鍖栭澶勭悊鍑烘潵錛?/span>
鐢變簬鐐規槸鏋佸潗鏍囨帓鍒楃殑錛屼篃灝辨槸絎竴涓偣涓嶄竴瀹氭槸鍑稿寘杈逛笂鐨勭偣錛堟湁鍙兘鏄N-1涓偣鍒扮2涓偣緇勬垚鐨勫嚫鍖呰揪鍒版暣浣撴渶浼橈級錛屾墍浠ラ渶瑕佸仛N嬈?/span>DP錛屽彲浠ュ皢鎵鏈夌偣澶嶅埗涓浠斤紝鏋氫婦璧風偣i ( 1 <= i <= N)錛岀粓鐐瑰嵆i+N, 鐒跺悗鍒嗗埆鍋氫竴嬈?/span>DP鍙栨渶灝忓箋?/span>
鏃墮棿澶嶆潅搴?/span>O(N^2 * B)銆?/span>
F錛?/span>I hate SPAM, but some people love it
PKU 1295 http://poj.org/problem?id=1295
棰樻剰錛?/span>N(N<=20)涓漢浜掑彂閭歡錛屾煇涓漢鏀跺埌閭歡鍚庝竴瀹氫細鍥炲緇欎粬鎵鏈夌殑濂藉弸錛屽洖澶嶇殑鏁伴噺鍐沖畾浠栫殑縐板彿錛屾寜欏哄簭緇欏畾棣栧厛鍙戣搗閭歡鐨勪漢錛岃姹傛寜欏哄簭杈撳嚭鎵鏈変漢寰楀埌鐨勭О鍙楓?/span>
棰樿В錛氭繁鎼滄灇涓俱?/span>
鏁版嵁閲忓緢灝忥紝瀵逛簬緇欏畾鐨勫垵濮嬭呬綔涓鴻搗鐐硅繘琛岄亶鍘嗭紝姣忎釜浜哄彧璁塊棶涓嬈★紝璁塊棶鍒扮殑鏃跺欐牴鎹粬鐨勬湅鍙嬫暟閲忚綆椾粬鐨勭О鍙峰嵆鍙?/span>
G錛?/span>Noise Effect
PKU 1296 http://poj.org/problem?id=1296
棰樻剰錛氱粰瀹氫袱涓鏂瑰艦鐭╅樀錛屾眰浠栦滑鐨勬渶澶х浉浼煎害錛岀浉浼煎害鐨勫畾涔変負鐭╅樀鍏冪礌瀵瑰簲浣嶅樊鍊煎皬浜庣瓑浜?/span>100鐨勪釜鏁板崰鎵鏈夌煩闃靛厓绱犵殑鐧懼垎姣旓紙鍙互榪涜鏃嬭漿鍜岀炕杞級銆?/span>
棰樿В錛氭ā鎷熼銆?/span>
姣忎釜鐭╅樀鍙互榪涜鍥涙鏃嬭漿錛屾瘡嬈℃棆杞彲浠ユ湁姘村鉤緲昏漿銆佺珫鐩寸炕杞佹按騫崇珫鐩寸炕杞佷繚鎸佸師鏍峰洓縐嶇姸鎬侊紝涓鍏卞崄鍏鎯呭喌錛堝疄闄呭皬浜?/span>16縐嶏紝鍥犱負鏈変簺鐘舵佺粡榪囩炕杞拰鏃嬭漿涔嬪悗鏄竴鏍風殑錛夛紝瀵規瘡縐嶆儏鍐墊ā鎷熻綆楃浉浼煎害鍙栨渶澶у煎嵆鍙?/span>
H錛?/span>Supermarket
PKU 1297 http://poj.org/problem?id=1297
棰樻剰錛氱害緲伴渶瑕佷拱M(M<=100)浠剁墿鍝侊紝瓚呯駭甯傚満涓婄殑鐗╁搧閮芥帓鎴愪竴鎺掞紝涓鍏?/span>N(N<=100000)浠剁墿鍝侊紝浠栦粠宸﹀悜鍙沖紑濮嬮夌墿鍝侊紝浣嗘槸涓轟簡涓嶉夯鐑︼紝涓嶆兂璧板洖澶磋礬錛岃屼笖絎?/span>i涓墿鍝佷拱鐨勬潯浠舵槸錛屽墠i錛?/span>1涓墿鍝佸繀欏誨凡緇忎拱浜嗭紝浣嗘槸姣忎釜鐗╁搧鍦ㄨ秴綰у競鍦轟腑鐨勪環鏍間笉涓鏍鳳紝鍗充嬌鍚屼竴涓墿鍝佷篃鏈変笉鍚岀殑浠鋒牸錛屼負浜嗚姳璐規渶灝戯紝浠栨兂瑕佷竴涓柟妗堜嬌寰楋細
1) 鎸夐『搴忚喘涔?/span>M涓墿鍝侊紱
2) 鎬諱環鍊兼渶灝戯紝騫惰緭鍑鴻繖涓渶灝忓鹼紝濡傛灉鏂規涓嶅瓨鍦紝杈撳嚭Impossible銆?/span>
棰樿В錛氬姩鎬佽鍒掋?/span>
DP[i][j]琛ㄧず絎?/span>i涓喘涔板垪琛ㄤ腑鐨勭墿鍝佸拰絎?/span>j涓競鍦轟腑鐨勭墿鍝佸尮閰嶆椂鐨勬渶灝忔秷璐癸紙1<=i<=M,1<=j<=N錛?/span>;
Min[i][j]琛ㄧずmin{ DP [i][x] x<=j };
a)褰撶i涓墿鍝佸拰絎?/span>j涓競鍦虹墿鍝佺紪鍙風浉鍚屾椂錛?/span>DP[i][j] = Min[i-1][j-1] +cost[j];
b)鍚﹀垯DP[i][j] = inf; 璁$畻DP鏁扮粍鍚屾椂鏇存柊Min鏁扮粍錛岀敱浜庢瘡嬈$殑鐘舵佹渶澶氬拰涓婁竴琛屾湁鍏籌紝鎵浠ュ湪榪涜鐘舵佽漿縐葷殑鏃跺欏彲浠ラ噰鐢ㄦ粴鍔ㄦ暟緇勩傛椂闂村鏉傚害O(NM)銆?/span>