锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
鏌愮鍦?0,0)澶? 闇瑕佽蛋鍒?x,y)澶?0<x,y<=10^9), 浠栧彧鑳芥寜綾諱技椹煩鐨勬柟寮忚蛋, 鍗? 緇欏嚭涓涓猲, 浠栧彲浠ヤ粠(a,b)璧板埌(a-1,b-n) (a+1,b-n) (a-1,b+n) (a+1,b+n) (a-n,b-1) (a+n,b-1) (a-n,b+1) (a+n, b+1) 涓殑涓涓?鐜板湪緇欏嚭50涓笉鍚岀殑n[1..50], 浠栧彲浠ヤ互浠繪剰鐨刵[i]鏂瑰紡璧? 姣忕鏂瑰紡鐨勪嬌鐢ㄦ鏁頒笉闄? 闂兘鍚﹁蛋鍒扮洰鐨勫湴(x,y).
寰堟槑鏄? 姝ょ鍙互娌夸換鎰忔柟鍚?姝?姝ョ殑璧? 鍗沖厛璧頒釜(+1,-n), 鍐嶈蛋涓?+1,+n). 鎵浠ヨ兘鍚﹀埌緇堢偣, 鍙笌濂囧伓鎬ф湁鍏?
緇忚繃涓闃靛垎綾昏璁哄彲鐭?
1) 濡傛灉x+y=0(mod 2), 鍒橸ES.
2) 濡傛灉x+y=1(mod 2), 涓攏[i]涓湁鍋舵暟, 鍒橸ES.
3) 鍚﹀垯NO.
[鏉俔
600pt MagicalGirlLevelTwoDivOne
緇欎竴涓狧*W(1<=H,W<=50)鐨勭煩闃礎, 姣忎竴浣嶄笂宸茬粡鏈変竴涓?~9鐨勬暟瀛? 鎴栬呮槸涓?.', 鍦?.'澶勫彲浠ュ~涓婁換鎰?~9鐨勬暟瀛? 鍐嶇粰鍑簄鍜宮(1<=n<=min{10,H}, 1<=m<=min{10,W}). 闂竴鍏辨湁澶氬皯縐嶅~'?'鐨勬柟娉? 浣垮緱鏁翠釜鐭╅樀婊¤凍:
瀵逛換鎰忕殑r鍜宑, 浠?r,c)寮濮嬬殑姘村鉤鏂瑰悜涓婅繛緇璵涓暟涔嬪拰鏄鏁?
瀵逛換鎰忕殑r鍜宑, 浠?r,c)寮濮嬬殑鍨傜洿鏂瑰悜涓婅繛緇璶涓暟涔嬪拰鏄鏁?
棣栧厛瑕佹敞鎰忓埌涓涓ц川: 瀵逛換鎰弐鍜宑鏈?A[r,c]涓嶢[r+n,c]鐨勫鍋舵х浉鍚? 寰堟樉鐒? 鍥犱負瑕佹弧瓚矨[r,c]+A[r+1,c]+...+A[r+n-1,c]涓嶢[r+1,c]+...+A[r+n-1,c]+A[r+n,c]鐨勫鍋舵х浉鍚? 閮芥槸濂囨暟. 鍒椾笂鍚屾牱鏈堿[r,c]涓嶢[r,c+m]濂囧伓鎬х浉鍚?
鍥犳鍦ㄤ竴琛屼笂, 鍙敤璁板綍n浣嶇殑濂囧伓鐘舵? 鍒椾笂鍚岀悊. 榪欐牱,鎵鏈夌殑(r+pn,c+qm)閮借兘鍚堝茍鎴愬悓涓涓偣, 涓斿彧鏈変袱縐嶇姸鎬? 濂囧拰鍋?/strong>. 鍚堝茍鍚庤鐐逛負濂?鎴栧伓)鐨勬柟娉曟暟, 絳変簬緇勬垚瀹冪殑鎵鏈夌偣鏂規硶鏁頒箣縐? 鏈鍚庢暣涓煩闃靛悎騫跺帇緙╂垚涓涓猲*m鐨勭煩闃? 灝卞彲浠ョ敤鐘舵丏P鏉ユ悶, 姹傛瘡琛屾瘡鍒椾箣鍜岄兘涓哄鐨勬柟娉曟暟. dp[n][1<<m], 鍓峮琛? 姣忎竴鍒楀拰鐨勫鍋舵у搴攂it涓?鎴?. O(1<<m)鐨勮漿縐誨鏉傚害, 杞Щ鏃惰娉ㄦ剰璇ヨ鐘舵?鏈夊鏁頒釜.
瑙夊緱鏄亾寰堝ソ鐨勯, 鐘舵佽璁″緢宸у...
[鐘舵丏P 鐘舵佸帇緙╄璁
900pt MagicalGirlLevelThreeDivOne
鏌愮緇欏嚭K(K<=50)涓?1涓? 姣忎釜涓茬殑闀垮害涓嶈秴榪?0. 鐢ㄨ繖浜涗覆緇勬垚鏂扮殑涓叉斁鍒版暟緇凙[]閲? 濡傛灉i<K, 鍒橝[i]涓虹粰鍑虹殑絎琲涓覆. 鍚﹀垯A[i] = A[i-1] + A[i-K-1] + A[i-2*K-1] + ... + A[i-p*K-1], 鍏朵腑p鏄嬌i-p*K-1>=0鐨勬渶澶ф暣鏁? 鐜板湪姝ょ緇欏嚭n, lo, hi, 瑕佷綘姹侫[n]鐨勫瓙涓睞[n][lo...hi]涓湁澶氬皯涓繛緇殑1. 0<=n<=10^15, 0<=hi<= min{A[n]鐨勯暱搴? 10^15}, 0<=lo<=hi. 鎵鏈夎鏁頒互0寮濮?
棣栧厛闅忎究鎵撲釜琛ㄦ垨鑰呮墜鎺ㄤ竴涓嬪寲綆A[i]鐨勯掓帹寮? 鍙互鍙戠幇褰搃>=2*K鏃? A[i] = A[i-1] + (A[i-K-1] + ... A[i-p*K-1]) = A[i-1] + A[i-K], 鑰孠<=50. 鎵浠[i]鐨勯暱搴﹀叧浜巌鏄寚鏁板闀跨殑, 50log(10^15)鍙兘澶熺敤(涓ユ牸璇佹槑涓嶅お浼? 姹傛寚瀵?.#). 鍥犳鍏跺疄n<=10^15鑼冨洿鏄潙鐖圭殑, hi涓嶄細瓚呰繃A[10^4]鐨勯暱搴? 鑰岃繖浜涗覆鐨勫墠緙閮芥槸涓鏍風殑, 鎵浠[n][lo..hi]鍏跺疄涓嶢[10^4][lo..hi]鐩稿悓.
榪欐牱渚垮彲鐩存帴鍒╃敤A[i] = A[i-1] + A[i-K]鐨勫叧緋誨垎娌? 鍜岀敤綰挎鏍戞眰鏈闀胯繛緇?涓茬殑鎬濇兂宸笉澶? 姣忎釜緇撶偣鐨勭姸鎬佸彉閲忔槸(id,lo,hi), 瀛樻斁A[id][lo..hi]鐨勬渶浼樿В. 闄や簡瀛樻斁褰撳墠孌電殑鏈澶ч暱搴ax澶? 涓轟簡鑳藉悎騫跺瓙鍖洪棿, 榪樿璁板綍褰撳墠鍖洪棿浠庡乏绔紑濮嬭繛緇?鐨勪釜鏁皊l, 鍜屼粠鍙崇寮濮嬭繛緇?鐨勪釜鏁皊r. 鍓╀笅鐨勫伐浣滀笌綰挎鏍戞棤寮? 鍋囪瑕佹眰(id, lo, hi)鐨?max, sl, sr):
瀵逛簬A[id], 瀹冪殑宸﹀効瀛愬氨鏄疉[id-1], 鍙沖効瀛愭槸A[id-K].
1)濡傛灉id<2*K, 鐩存帴鏆村姏.
2)濡傛灉lo>=len[id-1](綾諱技浜庣嚎孌墊爲涓殑鏌ヨ鍖洪棿瀹屽叏钀藉湪鍙沖効瀛?, 鍒欓掑綊鏌ヨ(id-K, lo-len[id-1], hi-len[id-1]).
3)濡傛灉hi<len[id-1], 鍒欓掑綊鏌ヨ(id-1, lo, hi).
4)鍚﹀垯涓や釜鍎垮瓙閮借鏌ヨ, 騫舵牴鎹繑鍥炵殑緇撴灉姹傚綋鍓嶅尯闂寸殑緇撴灉.
鍒嗘不鎬濇兂寰堝己澶? 鐢╩ap鍐欑殑"綰挎鏍?寰圷D, 鍋朵緷鐒惰捇鐖嗕簡.
[鍒嗘不 澶嶆潅搴﹀垎鏋怾
]]>
棰樻剰: 鏌愮鍦∕*N(1<=M, N<=50, M*N涓哄伓鏁?鐨勬牸瀛愪笂鐜╁瀵圭: 姣忎釜鏍煎瓙閮芥湁涓殣钘忕殑鍥懼艦. 姝ょ涓嬈¤鍔ㄧ炕寮2涓? 濡傛灉鐩稿悓, 灝辨垚鍔熸秷鍘昏繖2涓牸瀛? 濡傛灉涓嶇浉鍚? 閭h繖2涓牸瀛愬張鎭㈠闅愯棌鐘舵? 浣嗘槸姝ょ璁板繂鍔涘緢NB, 鑳借浣忔墍鏈夌炕寮榪囩殑鏍煎瓙鏄粈涔堝浘褰? 榪樻湁閲嶈鐨勪竴鐐? 浠栦竴嬈¤鍔ㄦ椂, 鏄厛緲誨紑1涓牸瀛? 鐭ラ亾瀹冪殑鍥懼艦涔嬪悗, 鍐嶅喅瀹氭庝箞緲葷2涓牸瀛? 鑰屼笉鏄袱涓牸瀛愬悓鏃剁炕寮. 闂紲炴妸鎵鏈夋牸瀛愰兘娑堝幓, 闇瑕佹秷鑰楃殑琛屽姩嬈℃暟鐨勬湡鏈?
瀹規槗鎯沖埌鏈熸湜涓庣炕鏍煎瓙鐨勪綅緗棤鍏? 鏈夊叧鐨勯噺鏄? 褰撳墠榪樻湁澶氬皯瀵瑰浘褰㈡病琚秷鍘? 鍏朵腑鏈夊灝戝鍥懼艦宸茬粡鐭ラ亾鍏朵腑涓涓殑浣嶇疆浜? so, dp[i][j], i涓哄墠鑰? j涓哄悗鑰? 涓嬈¤鍔ㄤ腑, 絎?涓牸瀛愯偗瀹氱炕涔嬪墠娌$炕榪囩殑(涓鍏辨湁2i-j涓? 璁頒負s), 闄ら潪宸茬粡鐭ラ亾鏌?瀵圭殑浣嶇疆, 鐩存帴鎶?涓兘緲誨嚭鏉ユ秷鎺? 鎵浠ヨ漿縐繪湁鍑犵鎯呭喌:
1) 浠巗涓炕鍑?涓柊鍥懼艦. 浠庡墿涓媠-1涓炕鍑轟簡鐩稿悓鍥懼艦, 娑堥櫎. 榪欐牱鐨勬鐜囨槸2(i-j)/s * 1/(s-1), 杞Щ鍒癲p[i-1][j].
2) 浠巗涓炕鍑?涓柊鍥懼艦. 浠庡墿涓媠-1涓張緲誨嚭鏂板浘褰? 榪欐牱灝卞浜?縐嶅凡鐭ュ浘褰? 姒傜巼鏄?(i-j)/s * 2(i-j-1)/(s-1), 杞Щ鍒癲p[i][j+2].
3) 浠巗涓炕鍑?涓柊鍥懼艦. 浠庡墿涓媠-1涓炕鍑轟簡涔嬪墠j涓凡鐭ュ浘褰腑鐨勪竴涓? 榪欐牱, 涓嬩竴嬈″氨鍙互娑堣椾竴嬈¤鍔ㄦ妸閭e宸茬煡鍥懼艦娑堝幓, 杞Щ鍒癲p[i-1][j], 姒傜巼鏄?(i-j)/s * j/(s-1).
4) 浠巗涓炕鍑?涓凡鐭ュ浘褰? 鐩存帴緲誨嚭涓庡畠閰嶅鐨勬秷鍘? 杞Щ鍒癲p[i-1][j-1], 姒傜巼鏄痡/s * 1.
鎵浠?dp[i][j] = p1*(dp[i-1][j]+1) + p2*(dp[i][j+2]+1) + p3*(dp[i-1][j]+2) + p4*(dp[i-1][j-1]+1).
鍏朵腑2)鐨勬潯浠舵槸i>=j+2, 4)鐨勬潯浠秊>=1. 杈圭晫dp[i][i] = i. 鏈鍚巇p[M*N][0]鍗充負鎵姹?
[姒傜巼 鏈熸湜 DP]
1000pt Reflections
棰樻剰: 鏌愮鍦ㄤ笁緇寸┖闂翠腑鐜╀竴涓父鎴? 絀洪棿涓湁N涓?N<=20)騫抽潰, 姣忎釜騫抽潰閮藉瀭鐩翠簬鏌愪釜鍧愭爣杞? 騫朵笖涓庤鍧愭爣杞翠氦浜庢暣鐐? 姝ょ浠?0,0,0)澶勫嚭鍙? 鎯沖幓(X,Y,Z)澶? 鐜板湪浠栨瘡琛屽姩涓嬈″彲浠ュ仛濡備笅縐誨姩:
1) 璧板埌涓庝粬鐩擱偦鐨?涓暣鐐逛笂, 鍗?x+1, y, z) (x-1, y, z) (x, y+1, z) (x, y-1, z) (x, y, z+1) (x, y, z-1)涓殑涓涓?
2) 紲炰竴嬈¤鍔ㄥ彲浠ュ埄鐢ㄤ竴涓鉤闈? 縐誨姩鍒板叧浜庤繖涓鉤闈㈠縐扮殑鐐瑰. 姣忎釜騫抽潰鍦ㄦ暣涓父鎴忚繃紼嬩腑鑷沖鍙兘鍒╃敤涓嬈?
闂紲炲埌杈劇粓鐐硅姳璐圭殑鏈灝戣鍔ㄦ鏁?
鏄撶煡涓変釜鏂瑰悜鏄笉鐩稿叧鐨? 鎵浠ュ彧鐢ㄥ厛鑰冭檻涓緇寸殑鎯呭艦.
棣栧厛瑕佹兂鍒? 璧拌礬鍜屽弽灝勪氦鏇? 鏄瓑鏁堜簬鍏堝弽灝勫畬浜嗗啀涓鍙f皵璧板埌緇堢偣鐨? 鍥犱負鍦ㄥ弽灝勪箣鍓嶇殑璧板姩, 涓嶄細琚弽灝勫姩浣滄斁澶? 鍙嶅皠鍓嶇Щ鍔ㄥ灝戞, 緇忚繃鑻ュ共嬈″弽灝勫悗鎵鍒拌揪鐨勪綅緗? 涓庝笉縐誨姩鐩存帴鍙嶅皠鍒拌揪鐨勪綅緗? 鐩稿樊姝eソ鏄Щ鍔ㄧ殑姝ユ暟.
鎵浠ュ彲浠ヨ漿鍖栦負鍏堝弽灝勮嫢騫叉, 鍐嶈璧板埌緇堢偣. 鐜板湪灝辮鎺ㄥ嚭鍙嶅皠鍒拌揪鐨勪綅緗叕寮?
鍋囪姣忎釜鍙嶅皠杞寸殑鍧愭爣渚濇鏄痻[1], x[2], ..., x[n], 紲炵粡榪囩k嬈″弽灝勫悗鐨勪綅緗槸p[k].
瀹規槗鎺ㄥ嚭, p[1] = 2x[1], p[2] = p[1] + 2(x[2]-x[1]) = 2x[2] - 2x[1], ... p[k] = 2x[k]-2x[k-1]+2x[k-2]-...+2*(-1)^(k-1)x[1].
榪欐槸寰堣鍒欑殑姝h礋浜ゆ浛姹傚拰, 姝i」鏁扮瓑浜庤礋欏規暟, 鎴栬呮瘮璐熼」鏁板1.
鍒版闂杞寲寰楀緢娓呮櫚浜? 鍦?0涓暟涓夊嚭k涓暟浣滀負姝i」, k(鎴杒-1)涓暟浣滀負璐熼」, 姣忎釜鏁拌嚦澶氳閫?嬈? 璇ユ柟妗堢殑鎬昏鍔ㄦ鏁版槸閫夊嚭鐨勪釜鏁?鍗沖仛鍙嶅皠鐨勬繪鏁?, 鍔犱笂榪欎簺欏逛箣鍜屽埌緇堢偣鐨勮窛紱?鍗蟲渶鍚庝竴璺蛋榪囧幓).
閫夋暟瑕侀檷浣庡鏉傚害, 鍙互鎶?0涓暟鍒嗘垚涓や釜闆嗗悎, 姣忚竟10涓暟, 鍏堝悇鑷敓鎴?^10涓拰. 涓よ竟鍒嗗埆鎺掑簭鍚? 浠庡皬鍒板ぇ鏋氫婦宸﹁竟鐨? 璁頒竴涓寚閽堜粠澶у埌灝忔壂鍙寵竟鐨?
[鏁板 鍒嗘不]
]]>
緇欏嚭N(N<=50)涓笉灝忎簬0涓斾笉澶т簬511鐨勬暣鏁? 寮濮嬫椂瀵勫瓨鍣ㄤ負0, 涓や漢杞祦閫夊彇涓涓暟, 涓庡瘎瀛樺櫒鐨勫糘R, 鎶婄粨鏋滆鐩栧啓鍏ュ瘎瀛樺櫒. 鏁頒笉鑳介噸澶嶄嬌鐢? 濡傛灉鏌愪漢鎿嶄綔涔嬪悗瀵勫瓨鍣ㄧ殑鍊間負511, 鎴栬呰疆鍒版煇浜烘椂鏁伴兘鍙栧畬浜? 閭d箞榪欎釜浜哄氨綆楄礋. 闂厛鎵嬫槸鍚︽湁蹇呰儨絳栫暐.
瀹規槗鎯沖埌2^9榪欎竴緇? 璁板綍褰撳墠姣忎竴浣嶇殑0/1鐘舵? 瀹為檯涓? 涓嶉渶瑕佽褰曞綋鍓嶅凡緇忛夎繃鍝簺鏁? 鑰屽彧鐢ㄨ褰曞凡緇忛変簡鍑犱釜鏁? 鍐嶇敱褰撳墠鐨?/1鎬? 灝辮兘鎺ㄧ畻鍑哄摢浜涙暟娌¢夎繃. 鏈変簺鏁皒婊¤凍x|now != x, 榪欎簺鏁拌偗瀹氭病閫夎繃. 鑰屽閭d簺x|now == x鐨勬暟, 涓嶅繀鐭ラ亾瀹冨叿浣撶殑鍊? 鍥犱負瀹冨鍚庣畫鎿嶄綔鐨勫獎鍝嶉兘涓鏍? 灝辨槸寤剁紦涓姝? 鎶婂眬闈㈠師灝佷笉鍔ㄥ湴涓㈢粰瀵規柟. 鎵浠ュ彧闇鐭ラ亾褰撳墠榪樻湁澶氬皯涓繖鏍風殑x娌¤浣跨敤榪? 榪欎釜鍊間篃鑳界敱涓婇潰鐨勪俊鎭緱鍒?
榪欐牱灝辨槸涓涓被浼兼瀬澶ф瀬灝忕殑蹇呰儨蹇呰觸鎬佽蹇嗗寲鎼滅儲.
鐘舵佷負dp[1<<9][N], 杞Щ涓篘.
[鐘舵丏P]
1000pt GameOfLifeDivOne
涓涓暱涓篘(N<=50)鐨勪覆(鐜姸, 棣栧熬鐩歌繛, 鍗硏[N-1]涓巟[0]鐩歌繛), 鐢?0', '1' 鍜??'緇勬垚, 鍏朵腑'?' 澶勫彲浠ュ~涓?0'鎴?1'. 浠嶵=0寮濮? 姣忚繃1鍗曚綅鏃墮棿, 鏁翠釜涓蹭細鏇存柊涓嬈? 鏌愪竴浣? 濡傛灉涓婁竴鏃跺埢, 瀹? 浠ュ強涓庡畠鐩擱偦鐨勪袱浣? 涓鍏辨湁鑷沖皯2涓?1', 閭d箞榪欎竴鏃跺埢瀹冨彉鎴?1', 鍚﹀垯瀹冨彉鎴?0'. 闂叡鏈夊灝戠濉??'鐨勬柟娉? 浣垮緱鍦ㄧ粡榪嘥(T<=1000)鏃墮棿鍚? 榪樻湁涓嶅皯浜嶬(K<=N)涓?1'. 姣斿'101010'->'010101'->'101010'->...; '11010'->'11101'->'11111'->...
棣栧厛瀹規槗瑙傚療鍒? 涓や釜鎴栦袱涓互涓婅繛緇浉鍚岀殑浣嶆槸姘歌繙涓嶄細鍙樼殑. 鍙湁01浜ゆ浛鐨勫瓙涓叉墠浼氬彂鐢熷彉鍖? 鎵浠ヤ換鎰忎竴涓覆閮藉彲浠ョ湅鎴愭槸鑻ュ共涓艦濡?xpy鐨勫瓙涓查灝捐繛鎺ヨ屾垚, 鑰屼笖涓や覆鐨勯灝捐鐩稿悓鎵嶈兘榪炶搗鏉? 灝卞儚[xp1y][yp2x][xp3x][xp4y].... 鍏朵腑pk鏄?1浜ゆ浛搴忓垪, x鍜寉閮芥槸涓浣? 鍙兘鏄?0'鎴?1'. 鐗瑰埆鐨?榪炵畫3涓浉鍚屽瓧絎﹀彲浠ョ湅鎴愭槸xx鍜寈x綺樿搗鏉?鏈?浣嶉噸鍙?. 瀵逛簬涓涓灝懼瓧絎﹀浐瀹氫笉鍙樼殑01浜ゆ浛涓? 瀹冨湪T鏃墮棿鍚庢湁澶氬皯涓?1'鏄緢瀹規槗綆楃殑. 涓ゅご閮芥槸0鐨勮瘽, 濡?101010->0010100->0001000, 姣忔椂闂村噺灝戜竴涓?; 涓ゅご閮芥槸1鐨勮瘽綾諱技, 姣忔椂闂村鍔犱竴涓?. 涓澶存槸0涓澶?, 鍒?鍜?鐨勪釜鏁伴兘涓嶅彉, 濡?10101->001011->000111.
榪欐牱灝辨湁涓畻娉曠殑闆忓艦, 綾諱技鑳屽寘: dp[pos][bit][one]琛ㄧず: 浠?鍒皃os-1鐨勫瓙孌? 浠it緇撳熬, 涓擳鏃墮棿鍚庡寘鍚玱ne涓?鐨勬柟娉曟暟. 濡傛灉浠巔os鍒版煇涓浣峱os2-1, 鑳芥瀯閫犲嚭浠it璧峰, 浠it2緇撴潫鐨勪氦鏇夸覆, 閭d箞浠庣姸鎬乨p[pos][bit][one]灝辮兘鎵╁睍鍒癲p[pos2][bit2][one+one2], 鍒欐妸鍓嶈呭姞鍒板悗鑰呬笂鍘? 鍏朵腑one2鏄痯os鍒皃os2-1榪欎釜瀛愪覆T鏃墮棿鍚?鐨勪釜鏁? 鎶婂師濮嬩覆澶嶅埗涓ら亶, 灝辮兘姣旇緝鏂逛究鍦板鐞嗙幆.
鏋氫婦鍦ㄥ師涓蹭腑棣栨鍑虹幇榪炵畫2涓浉鍚屽瓧絎︾殑浣嶇疆startpos, 瀵規瘡涓猻tartpos鍋氫竴嬈′笂榪癉P. 鎶婃墍鏈塷ne>=K鐨勬柟娉曟暟鍔犺搗鏉ュ嵆鍙? 姝ゅ瑕佸厛棰勫鐞嗗嚭浠繪剰edg[i][b1][j][b2], 鍗充粠i鍒癹-1鑳藉惁鏋勯犲嚭浠1寮濮? b2緇撳熬鐨勪氦鏇夸覆, 濡傛灉鑳? T鏃墮棿鍚庢湁澶氬皯涓?1'.
鍏跺疄鏁翠釜棰樺氨鏄竴閬撹儗鍖匘P, 姹傜敤鑻ュ共涓煭媯嶅瓙, 鎷煎嚭涓涓潈鍊?gt;=K鐨勯暱媯嶅瓙鐨勬柟娉曟暟. 鍙槸妯″瀷闅愯棌寰楀緢宸у. orz...
[鑳屽寘DP]
]]>
緇欏嚭鑻ュ共涓柟褰㈡湪鏉匡紝姣忎釜鏈ㄦ澘鏈変竴縐嶉鑹層傜幇鍦ㄨ閫夊嚭鍏朵腑6涓紝鍥村嚭涓涓珛鏂逛綋銆傞棶鏄惁鍙兘浣胯漿鍑虹殑绔嬫柟浣擄紝浠繪剰涓や釜鐩擱偦鐨勯潰棰滆壊涓嶅悓銆?br />鐩存帴鎸夋湪鏉跨殑鎬繪暟鍒嗘儏鍐佃璁哄氨鍙互錛屼絾鏄垜婕忔兂浜嗕竴縐嶆儏鍐礍.@
鍏跺疄鏄劇劧錛屽悓涓縐嶉鑹叉渶澶氳兘鐢ㄤ袱嬈★紝鎵浠ョ粺璁℃瘡縐嶆湪鏉胯兘鐢ㄧ殑涓暟涔嬪拰,sigma(min(count[i],2))錛屽拰涓嶅皬浜?鍒欏彲琛屻?br />
500p CubePacking
緇欏嚭Ns涓竟闀夸負1鐨勭珛鏂逛綋鍜孨b涓竟闀夸負L(2<=L<=10錛夌殑绔嬫柟浣撱傝鎵句竴涓綋縐渶灝忕殑闀挎柟浣擄紝浣垮緱鍙互鎶婃墍鏈夌珛鏂逛綋鍫嗚繘鍘匯備繚璇佺粨鏋滀笉瓚卛nt32銆?br />姝f槸鍥犱負涓嶈秴int32錛屾墍浠ュ彲浠ョ洿鎺ユ灇涓句袱鏉℃1x,y錛岀畻絎?鏉鐨勬渶灝忓箋傛灇涓炬椂寰幆鏉′歡 x*x*x <= INF, x*y*y <= INF銆傝綆梲鐨勬渶灝忓兼椂瑕佹敞鎰忛櫎娉曡鍚戜笂鍙栨暣錛岃屼笖鍒ゆ柇鑳藉惁鎶婅竟闀夸負L鐨勭珛鏂逛綋閮芥斁榪涘幓鐨勬潯浠舵槸(x/L)*(y/L)*(z/L) >= Nb錛屽鏋渮灝忎簡錛岃鍔犲埌瓚沖澶т負姝€?br />[鏋氫婦]
900p CubeBuilding
澶у皬鐩稿悓鐨勭孩銆佺豢銆佽摑鑹茬殑绔嬫柟浣擄紝鍒嗗埆緇橰銆丟銆丅涓?R,G,B<=25)銆傛妸榪欎簺绔嬫柟浣撳叏閮ㄦ惌縐湪涓鏍風殑鍫嗗埌N*N(N<=25)鐨勬牸瀛愭鐩樹腑銆傚彲浠ュ湪浠繪剰鏍煎瓙涓爢浠繪剰楂樼殑绔嬫柟浣撱傝瀹氫竴縐嶆柟妗堟槸鍚堟硶鐨勶紝濡傛灉浠庡寳鍚戝崡鐪嬬殑渚ц鍥句腑鍙湁涓縐嶉鑹層傞棶涓鍏辨湁澶氬皯縐嶅爢鐮岀殑鏂規銆?br />鍙互鍏堣冭檻N*1鐨勬鐩橈紝涔熷氨鏄晶瑙嗗浘涓鐩樺搴︽槸1銆傚厛鑰冭檻娌℃湁棰滆壊鐨勬柟鍧楁庝箞鏀撅紝鍐嶅幓鏌撹壊銆傝繖鏍蜂笉綆℃庝箞鍫嗭紝鐪嬪埌鐨勬柟鍧楁暟鎬繪槸絳変簬鎵鏈夋牸瀛愬爢鐨勬渶澶ч珮搴︼紝鍒欓渶瑕佸浐瀹氶鑹茬殑鏂瑰潡鏁板氨涓鴻繖涓珮搴︼紝鍓╀笅鐨勬柟鍧楀彲浠ヤ換鎰忔煋鑹層傚悓鐞哊*N鐨勬鐩橈紝闇瑕佸浐瀹氶鑹茬殑鏂瑰潡鏁扮瓑浜庢墍鏈夊垪涓渶瑕佸浐瀹氱殑鏁伴噺涔嬪拰銆傝姹傜殑絳旀灝辨槸錛屽厛鏋氫婦鍥哄畾鏂瑰潡鐨勬暟鐩紝鎶婂畠浠煋鏌愪竴縐嶉鑹詫紝鍓╀笅鐨勬柟鍧楀彲浠ョ敤緇勫悎鏁扮洿鎺ョ畻鍑烘湁澶氬皯縐嶆煋鑹叉柟妗堬紝涔樿搗鏉ワ紝鏈鍚庢眰鍜屻?br />鍏抽敭灝辨槸瑕佹眰鍑烘瘡涓縐嶅浐瀹氭柟鍧楁暟鐩殑鍓嶆彁涓嬶紝涓嶈冭檻棰滆壊錛屾湁澶氬皯縐嶅爢鏀炬柟娉曘?br />鐢卞墠闈㈢殑璁ㄨ鐭ラ亾錛屽彲浠ュ厛鍦∟*1鐨勬鐩樹笂鎸夎鎵╁睍錛岄渶瑕佽褰曠殑鐘舵佹槸褰撳墠宸蹭嬌鐢ㄧ殑鏂瑰潡鏁幫紝褰撳墠鐨勬渶澶ч珮搴︺?br />鐒跺悗鍒╃敤榪欎釜緇撴灉鎸夊垪鎵╁睍錛岃褰曠殑鐘舵佹槸褰撳墠宸蹭嬌鐢ㄧ殑鏂瑰潡鏁幫紝褰撳墠宸插浐瀹氱殑鏂瑰潡鏁般?br />ps.鏌撹壊涔嬪墠鐨勬柟妗堟暟鍙敤姹備竴嬈★紝涔嬪悗鍒嗗埆鎶婂浐瀹氱殑鏂瑰潡鏌撴垚3縐嶄笉鍚岄鑹詫紝鍙鐢ㄧ粍鍚堟暟鍒嗗埆綆?嬈★紝鍔犺搗鏉ュ氨琛屼簡銆?br />O(9*N^5)鐨勭畻娉曪紝鏃墮檺鏈夌偣绱с?br />[DP]
]]>
[floyd鏈鐭礬 浜屽垎鍥炬渶澶ф潈鍖歸厤]
]]>
鐢靛獎闄㈡湁n琛宮鍒楃殑搴т綅, 鏈変竴浜涘凡緇忚棰勮浜? 姹傚湪鍓╀笅鐨勫駭浣嶄腑, 閫夊嚭鍚岃涓旂浉閭葷殑涓や釜搴т綅鐨勬柟妗堟暟.
鍙互鎸夎鍒楀皢宸查璁㈢殑搴т綅鎺掑簭, 鐒跺悗欏轟究鎵竴閬? 綆楀嚭鐩擱偦涓や釜琚璁㈠駭浣嶄箣闂寸殑鏂規鏁? 鏈鍚庣瘡鍔?
涔熷彲浠ョ敤涓猻et璁板綍涓嶈兘浣跨敤鐨勬柟妗? 鍐嶇敤娌℃湁棰勮搴т綅鐨勬儏鍐典笅鐨勬繪柟妗堟暟鍑忓幓涔?
500p TheMoviesLevelTwoDivOne
鑻ュ共閮ㄧ數褰? 姣忛儴鐢靛獎鏈変竴涓姞琛鐨勬椂闂寸偣. 浜虹湅鐢靛獎, 姣忕湅涓鍒嗛挓鎺変竴鐐硅. 琛鎺夊埌0灝辯粨鏉? 闂庢牱鎸夋帓欏哄簭浣跨湅鐨勭數褰遍儴鏁版渶澶? 濡傛灉鎬婚儴鏁扮浉鍚? 鍙栧瓧鍏稿簭鏈灝忕殑瑙h緭鍑?
鍙湁20閮ㄧ數褰? 鐘舵丏P鍗沖彲.
涓轟繚璇佸瓧鍏稿簭, 鍙互浠庡悗寰鍓岲P, 榪欐牱姣忔杞Щ鏃舵柊鍔犲叆鐨勭數褰遍兘鏄綋鍓嶆渶鍏堢湅鐨? 淇濊瘉瀹冨厛鎷╃殑鏄渶灝忕殑, 鍗寵兘淇濊瘉瀛楀吀搴忔渶灝?
[DP]
1000p TheMoviesLevelThreeDivOne
鑻ュ共閮ㄧ數褰? A鍜孊涓や漢鐪嬫瘡閮ㄧ數褰辯殑鏃墮棿鍒嗗埆鏄疉[i], B[i]. 鍒濆瀹夋帓, 瑕佷緷嬈℃妸絎?,2,..,n閮ㄧ數褰辨斁鍏鎴朆鐨勫緟鐪嬮槦鍒楃殑闃熷熬. A鍜孊鍚勮嚜寮濮嬬湅鑷繁闃熷垪涓殑鐢靛獎, 鐪嬪畬涓閮ㄥ悗, 濡傛灉榪欐槸鍙︿竴涓漢娌$湅榪囩殑, 灝卞姞鍏ュ畠鐨勯槦鍒椾腑. 濡傛灉鏈熼棿鏌愪漢鍒楅槦絀轟簡, 閭d箞浠栧氨緇撴潫, 鍐嶄篃涓嶇湅鏂扮數褰變簡. 闂湁澶氬皯縐嶅垵濮嬪畨鎺掓柟娉? 鑳戒嬌A鍜孊閮借兘鐪嬪畬鎵鏈夌數褰?
棣栧厛鑲畾涓嶄細鍑虹幇涓縐嶅畨鎺掍嬌寰桝鍜孊閮藉崱. 鍥犱負A鍗¤偗瀹氬彂鐢熷湪A鐪嬪畬浠栨墍鏈夌殑鐢靛獎涔嬪悗, 涓旀鏃禕娌$湅瀹岃嚜宸辯殑, 鎵浠鑲畾涓嶄細鍗?
榪欐牱灝卞彲浠ョ敤鎬繪柟妗堟暟2^N鍒嗗埆鍑忓幓A鍗$殑鍜孊鍗$殑鏂規鏁? 鑰冭檻A鍗$殑鎯呭喌. 鍋囪A閭d竴鏁村潹涓滆タ鐨勬椂闀挎槸sumA, B鐨勭涓涓笢瑗挎槸tb1, 鍒橝鍗$殑鏉′歡鏄?sumA-tb1<0. 鍚﹀垯B鐪嬪畬tb1鍚庢妸ta1鍔犲湪sumA鍚庨潰, 榪欐椂鍗$殑鏉′歡鏄?sumA+ta1)-(tb1+tb2)<0. 渚濇, 濡傛灉鍦ㄨ繖榪囩▼涓換鎰忎竴嬈″崱鐨勬潯浠剁鍚? 閭d箞鍚庣畫鎬庝箞瀹夋帓閮芥槸鍗$殑. 浜庢槸鐢ㄤ竴緇寸姸鎬佽褰曠洰鍓嶄負姝㈠嚭鐜拌繃鐨勬渶灝忕殑X-Y, min, 榪樿涓緇磋褰曞綋鍓嶇殑X-Y, cur, 浠ヨ漿縐葷敤. 杞Щ鏃? 濡傛灉鎶婂綋鍓嶇數褰辨斁榪汚, 閭d箞min鍜宑ur閮藉鍔燗[i], 鍥犱負sumA澧炲姞浜? 濡傛灉鏀捐繘B, 閭d箞鐢╟ur鍜孊[i]鏉ヨ綆楁柊鐨刢ur鍜宮in.
hint. cur=褰撳墠鎵鏈夌數褰辯殑A[i]鐨勫拰-B涓數褰辯殑B[i]鐨勫拰, 鏂扮殑min=闄や簡鏂版斁鐨勭數褰卞鎵鏈夋斁榪囩殑鐢靛獎鐨凙[i]鐨勫拰-鍖呮嫭鏂扮數褰卞湪鍐呯殑B涓數褰辯殑B[i]鐨勫拰.
ps. 1000鐨凞P閮藉緢YD鍟?..
[DP]
]]>
(涓琛屽茍鍒楃殑鏍煎瓙,姣忎釜鏍煎瓙涓湁鏌愮棰滆壊鐨勯殰紕嶇墿,鏈澶?5縐嶉鑹?A鍦ㄦ渶宸︾,B鍦ㄦ渶鍙崇...)
15縐嶉鑹?鍙互鐩存帴鏋佸ぇ鏋佸皬鐘舵丏P.
鍙互鐩存帴璐績,璁℃暟鍙湁A闇瑕佹嬁璧扮殑棰滆壊鏁?鍙湁B闇瑕佹嬁璧扮殑,鍜屼袱閮借鎷胯蛋鐨?
500p DrawingLines
(涓ゆ帓鐐?姣忔帓n涓?涓婃帓鐨勫拰涓嬫帓鐨勮繛綰?浜嬪厛宸茬粡鏈変簺綰胯繛濂戒簡.姹傝冭檻鎵鏈夌殑榪炵嚎鏂規鏃?榪炵嚎浜ょ偣涓暟鐨勬湡鏈?
涓夌被璁℃暟:浜嬪厛宸茬粡榪炲ソ鐨勭嚎闂寸殑浜ょ偣鏁?鏂板榪炵嚎鍜屽師鏈夎繛綰跨殑浜ょ偣鏁版湡鏈?鏂板榪炵嚎涔嬮棿浜ょ偣鏈熸湜.
1000p BuildingRoads
鑻ュ共涓偣(<=2500)鍜岃嫢騫叉潯杈圭殑鏃犲悜鍥?姣忎釜鐐規湁鐐規潈.鐜板湪鏈?瀵圭壒孌婄殑鐐?瑕佹眰閫変竴浜涜礬寰勫嚭鏉?浣挎瘡瀵圭偣榪為?涓嶅悓瀵歸棿涓嶈姹傝繛閫?,鎬諱唬浠鋒槸緇忚繃鐨勬墍鏈夌偣鏉冧箣鍜?
铏界劧鍙湁4瀵圭偣,浣嗘槸涔熶笉瑕佷竴鍙e挰瀹氭槸鐘舵丏P(250p琛鐨勬暀璁?,铏界劧鐨勭‘鏄姸鎬丏P...
鏈鍚庝笉鍚岀偣瀵規槸鍙互涓嶅睘浜庡悓涓榪為氬垎閲忕殑,鎵浠ュ彧1嬈P涓嶅鏄撹璁$姸鎬?
絎?嬈p: dp[mask][i], mask琛ㄧず榪為氬瓙鏍戜腑鍖呭惈鐨勭壒孌婄偣, i琛ㄧず榪欐5瀛愭爲鐨勪唬琛ㄨ妭鐐?or鏍硅妭鐐?.
絎?嬈p: dp2[mask], mask琛ㄧず宸茬粡鍖呭惈鐨勭壒孌婄偣, 涓嶈姹傛槸榪為氱殑, 浣嗘槸瀵瑰簲鐨?涓偣瑕佸湪鍚屼竴鍒嗛噺.
榪欎釜榪囩▼灝卞儚,鍏堟妸姣忎釜瀛愭ā鍧楀仛濂? 鍐嶅皢浠栦滑鎷兼帴鏁村悎.
ps.1000p涓巗teiner tree鏈夊叧鑱?
]]>
#include聽
<
string
>
#include聽
<
vector
>
#include聽
<
list
>
#include聽
<
map
>
#include聽
<
queue
>
#include聽
<
stack
>
#include聽
<
set
>
#include聽
<
iostream
>
#include聽
<
sstream
>
#include聽
<
numeric
>
#include聽
<
algorithm
>
#include聽
<
cmath
>
#include聽
<
cctype
>
#include聽
<
cstdlib
>
#include聽
<
cstdio
>
#include聽
<
cstring
>
using
聽
namespace
聽std;
#define
聽CLR(x)聽memset((x),0,sizeof(x))
#define
聽SET(x,y)聽memset((x),(y),sizeof(x))
#define
聽REP(i,x)聽for(int聽i=0;i<(x);i++)
#define
聽FOR(i,x,y)聽for(int聽i=(x);i<(y);i++)
#define
聽VI聽vector<int>聽
#define
聽PB(i,x)聽(i).push_back(x)
#define
聽MP(x,y)聽make_pair((x),(y))
class
聽$CLASSNAME$聽{
public
:
聽聽聽聽$RC$聽$METHODNAME$($METHODPARMS$)聽
聽聽聽聽{
聽聽聽聽聽聽聽聽
//
have聽some聽fun聽here
聽聽聽聽}
聽聽聽聽$TESTCODE$
};
//
聽BEGIN聽CUT聽HERE聽
int
聽main()
{
聽聽聽聽$CLASSNAME$聽___test;聽
聽聽聽聽___test.run_test(
-
1
);聽
聽聽聽聽system(
"
pause
"
);
}聽
聽
//
聽END聽CUT聽HERE聽
]]>