锘??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美日韩一区高清,国产精品主播,国产精品多人 http://www.shnenglu.com/jaysoon/category/10355.htmlzh-cn Mon, 13 Jun 2011 07:41:54 GMT Mon, 13 Jun 2011 07:41:54 GMT 60 鏈闀塊掑瀛愬簭鍒?LIS)瑙f硶璇﹁堪 http://www.shnenglu.com/jaysoon/articles/148382.htmljaysoon jaysoon Thu, 09 Jun 2011 15:44:00 GMT http://www.shnenglu.com/jaysoon/articles/148382.html http://www.shnenglu.com/jaysoon/comments/148382.html http://www.shnenglu.com/jaysoon/articles/148382.html#Feedback 0 http://www.shnenglu.com/jaysoon/comments/commentRss/148382.html http://www.shnenglu.com/jaysoon/services/trackbacks/148382.html 姹傛暟緇勪腑鏈闀塊掑瀛愬簭鍒楋紙 Longest Increasing Subsequence, LIS 錛?/span>
LIS闂鏄畻娉曚腑鐨勭粡鍏擱鐩紝浼犵粺鐨勮В娉曟槸浣跨敤鍔ㄦ佽鍒掞紝鏃墮棿澶嶆潅搴︽槸O(n^2)錛涙敼榪涚殑鏂規硶鏃墮棿澶嶆潅搴︽槸O(nlogn)銆備絾鏄叧浜庢敼榪涚殑綆楁硶鐨勪粙緇嶅敖綆$綉涓婃湁寰堝璧勬簮錛屼絾鏄湁璁稿鐪嬭搗鏉ユ病闂錛屼絾鏄粡涓嶈搗鎺ㄦ暡錛屾垜鐪嬬殑鏃跺欐劅瑙夋湁鐐圭湅涓嶆槑鐧斤紝鏌ラ槄鍗婂ぉ寮勬噦鍚庡啀鍥炲幓鐪嬶紝鍙戠幇浠栦滑鐨勮〃榪版湁闂錛屽洜姝ゆ葷粨涓涓嬨?/em>
榪欑瘒鎬葷粨浣跨敤浠庝紶緇熻В娉曢愭鏀硅繘鐨勬紨緇庢柟娉曪紝騫剁粰鍑轟竴浜涙帹鐞嗐?/em>
濡傛灉璇昏呬笉鍠滄榪欑婕旂粠鎬濊冩柟娉曪紝鎺ㄨ崘Slyar 鐨勬柟娉曪紝浠栦粠鍙︿竴涓搴︾湅寰呰繖涓棶棰橈紝鍐欏緱鍗佸垎綆媧侊紝浣嗘槸娌℃湁鎺ヨЕ榪囩殑璇濓紝鍙兘涓嶆槗鐞嗚В銆?/em>
鏈枃浠嶆湁璁稿涓嶈凍錛屾榪庢寚姝c?/strong>
浼犵粺鐨勮В娉曟槸浣跨敤鍔ㄦ佽鍒掋傚師鐞嗗涓嬶細
data[i]琛ㄧず鏁扮粍涓殑絎?/span>i涓厓绱狅紱
lis[i]琛ㄧず浠ュ厓绱?/span>i緇撳熬鐨勬渶闀塊掑瀛愬簭鍒楅暱搴︼紱
閭d箞 lis[i] = max(lis[j]) + 1, j ∈ {k | data[k] < data[i], k < i}
鏃墮棿澶嶆潅搴︽槸 O(n^2)錛屽畠鐨勪富瑕佷紭鐐規槸綆楁硶綆鍗曪紝鍙互鏋勯犳渶闀塊掑瀛愬簭鍒椼?/span>
int lis[N]; int LIS_DP( int * data, int n) { memset(lis, 1 , n * sizeof (lis[ 0 ])); for ( int i = 1 ; i != n; ++ i) { for ( int j = 0 ; j != i; ++ j) { if (data[i] > data[j] && lis[i] < lis[j] + 1 ) lis[i] = lis[j] + 1 ; } } int max = 0 ; for ( int i = 0 ; i != n; ++ i) if (max < lis[i]) max = lis[i]; return max; }
鍙︿竴縐嶆柟娉曠◢寰湁浜涘鏉傦紝瀹冩槸閽堝涓婇潰鏂規硶鐨勪竴縐嶆敼榪涳紝鏃墮棿澶嶆潅搴︽槸 O(nlogn)銆備笅闈嬌鐢ㄦ笎榪戠殑鏂規硶鏉ュ垎鏋愯幏寰椼?/span>
棣栧厛鎴戜滑鏉ュ垎鏋愪竴涓嬩笂闈㈢畻娉曠殑涓嶈凍錛屽湪涓婇潰鐨勬眰瑙d腑錛屾瘡涓?/span>lis[i]姹傝В鐨勬椂闂村鏉傚害鏄?/span>O(n)錛屼絾榪欎笉鏄繀闇鐨?/span>
0 1 2 3 4 5 6 7
data[]: 2 5 6 2 3 4 7 4
lis[]: 1 2 3 1 2 3 4 3
渚嬪錛屽綋姹?/span>lis[6]鏃訛紝鏄笉鐢ㄥ拰 data[3]銆?/span>data[4]姣旇緝鐨勶紝鍥犱負宸茬粡鐭ラ亾瀹冧滑鎵鍦ㄧ殑鏈澶ч掑瀛愬簭鍒楃殑鏈鍚庝竴涓厓绱?/span>data[5] < data[6]錛涗篃灝辨槸璇達紝褰撴垜浠冨療絎?/span>i涓厓绱犳椂錛屽鍓嶉潰 i-1涓厓绱犵殑浠諱綍涓涓掑瀛愬簭鍒楋紝濡傛灉榪欎釜瀛愬簭鍒楃殑鏈鍚庝竴涓厓绱犳瘮 data[i]灝忥紝閭d箞灝卞彲浠ュ皢 data[i]鍔犲湪榪欎釜瀛愬簭鍒楀悗闈紝鏋勬垚涓涓柊鐨勬洿闀跨殑閫掑瀛愬簭鍒楋紝鑰屼笉鐢ㄦ瘮杈冭繖涓瓙搴忓垪鍓嶉潰鐨勫厓绱犲拰 data[i]鐨勫叧緋匯?/span>
鐢辨鎴戜滑寰楀嚭絎竴涓惎鍙戝紡鏂規硶錛屽綋璁$畻 lis[i]鏃訛紝鎴戜滑鍙叧蹇冩瘡涓墠 i-1鍏冪礌涓掑瀛愬簭鍒楃殑鏈鍚庝竴涓厓绱犵殑鍊箋?/span>
閽堝絎竴縐嶆柟娉曞紩鍏ョ殑瑙傜偣錛屾彁鍑虹浜屼釜鍚彂寮忔柟娉曪紝鍚屾牱姹?/span>lis[6]錛屽鍓?/span>i-1涓厓绱狅紝鑾峰緱涓や釜闀垮害涓?/span>3鐨勯掑瀛愬簭鍒?/span>2銆?/span>5銆?/span>6鍜?/span>2銆?/span>3銆?/span>4錛屾鏃跺凡鐭?/span>data[6] > 6涓?/span>data[6]澶т簬 4錛屾墍浠?/span>data[6]鍙互鎺ュ湪浠諱綍涓涓瓙搴忓垪鍚庨潰錛屾瀯鎴愰暱搴︿負 4鐨勬柊閫掑搴忓垪銆傝繖涓椂鍊欙紝浼氬彂鐜頒竴涓惎鍙戞柟娉曪紝 data[6]涓嶇敤鍜?/span>6姣旇緝錛屽洜涓哄彧闇 data[6]澶т簬 4灝卞彲浠ュ緱鍑轟竴涓暱搴︿負 4鐨勯掑搴忓垪銆?/span>
鎵浠ュ緱鍑虹浜屼釜鍚彂寮忔柟娉曪紝褰撹綆?/span>lis[i]鏃訛紝瀵瑰悓鏍烽暱搴︾殑瀛愬簭鍒楋紝鎴戜滑鍙叧蹇冨畠浠渶鍚庡厓绱犵殑鍊兼渶灝忕殑涓涓殑鍊箋?/span>
鐢辨錛岀敱涓涓暟緇?/span>last_min璁板綍涓婇潰鐨勫鹼紝鍗沖綋璁$畻 lis[i]鏃訛紝 last_min[k]琛ㄧず鍓?/span>i-1涓厓绱犱腑闀垮害涓?/span>k鐨勬墍鏈夐掑瀛愬簭鍒楃殑鏈鍚庝竴涓厓绱犵殑鏈灝忓箋?/span>
璁?/span>max_len琛ㄧず褰撳墠宸茶幏寰楃殑鏈闀跨殑閫掑瀛愬簭鍒椼?/span>
褰撹冨療 data[i]鏃訛紝濡傛灉 data[i] > last_min[max_len] 錛岄偅涔堝皢 data[i]鎺ュ湪榪欎釜搴忓垪鍚庨潰錛屼究鏋勬垚涓涓柊鐨勯暱搴︿負 max_len+1鐨勫簭鍒楋紝璇ュ簭鍒楃殑鏈鍚庝竴涓厓绱犳槸 data[i]錛涘惁鍒欙紝鎵懼埌涓涓渶澶х殑 j錛屼嬌 last_min[j]<data[i]錛堢敱浜庢煡鎵炬柟寮忥紝涔熻鏄?/span>data[i]<=last_min[j+1]錛夛紝閭d箞鎶?/span>data[i]鎺ュ湪榪欎釜搴忓垪鍚庨潰錛屼究鏋勬垚涓涓暱搴︿負 j+1鐨勬柊搴忓垪錛屾洿鏂?/span>last_min[j+1]銆?/span>
int lis[N]; // lis[i]琛ㄧず浠ュ厓绱爄緇撳熬鐨勬渶闀塊掑瀛愬簭鍒楅暱搴?/span>int last_min[N]; // last_min[i]琛ㄧず闀垮害涓篿鐨勬墍鏈夐掑瀛愬簭鍒楃殑 // 鏈鍚庝竴涓厓绱犵殑鏈灝忓?/span>int max_len; int LIS_DP( int * data, int n) { memset(lis, 1 , n * sizeof (lis[ 0 ])); last_min[ 1 ] = data[ 0 ]; max_len = 1 ; for ( int i = 1 ; i != n; ++ i) { // 濡傛灉data[i]姣旀渶闀塊掑搴忓垪鐨勬渶鍚庝竴涓厓绱犲ぇ錛?br /> // 閭d箞鐩存帴鍔犲湪瀹冨悗闈究鍙?/span> if (data[i] > last_min[max_len]) { ++ max_len; last_min[max_len] = data[i]; lis[i] = max_len; } else { // 鍚﹀垯鏌ユ壘鍘嗗彶鏈闀塊掑搴忓垪 for ( int j = max_len - 1 ; j != 0 ; -- j) { if (data[i] > last_min[j]) // 涔熷氨鏄錛宒ata[i] <= last_min[j+1] { lis[i] = j + 1 ; last_min[j + 1 ] = data[i]; // 鏇存柊 break ; } } } } return max_len; }
濡備笂鎵紺猴紝铏界劧宸茬粡榪涜浜嗗緢澶х殑浼樺寲錛屼絾鏄綋鍓嶇殑鏃墮棿澶嶆潅搴︿粛鏄?/span>O(n^2)錛屽綋鐒跺熀鏈彲浠ョ‘瀹氱殑鏄紝鐜板湪鐨勭畻娉曟瘮鍘熸潵鐨勬晥鐜囨彁楂樹簡寰堝銆?/span>
涓嬮潰鎴戜滑鍒嗘瀽涓涓?/span>last_min鏁扮粍鐨勬ц川錛?/span>
鐢卞畾涔?/span>last_min[i]琛ㄧず闀垮害涓?/span>i鐨勫簭鍒?/span>A鐨勬渶鍚庝竴涓厓绱犵殑鍊鹼紝 last_min[i-1]琛ㄧず闀垮害涓?/span>i-1鐨勫簭鍒?/span>B鐨勬渶鍚庝竴涓厓绱犵殑鍊鹼紝閭d箞 last_min[i-1]<last[i]錛涘惁鍒欏簭鍒?/span>A鐨勫墠 i-1涓厓绱犳瀯鎴愮殑搴忓垪渚垮彲鏇夸唬搴忓垪 B銆傛墍浠?/span>last_min鏄湁搴忕殑銆?/span>
鍥犳鍦ㄤ笂闈㈢殑鏌ユ壘涓彲浠ヤ嬌鐢ㄤ簩鍒嗘煡鎵撅紝鏁堢巼涓?/span>O(logn)錛屼嬌寰楁葷殑澶嶆潅搴︿負 O(nlogn)銆?/span>
// 榪斿洖arr涓瓑浜庢垨絎竴涓ぇ浜巚al鐨勪綅緗?/span>int BinarySearch( int * arr, int left, int right, int val) { int mid = 0 ; int l = left; int r = right; while (l <= r) { mid = (l + r) >> 1 ; if (arr[mid] > val) r = mid - 1 ; else if (arr[mid] < val) l = mid + 1 ; else return mid; } return l; } int last_min[N]; // last_min[i]琛ㄧず闀垮害涓篿鐨勬墍鏈夐掑瀛愬簭鍒楃殑 // 鏈鍚庝竴涓厓绱犵殑鏈灝忓?/span>int max_len; int LIS_DP( int * data, int n) { last_min[ 1 ] = data[ 0 ]; max_len = 1 ; for ( int i = 1 ; i != n; ++ i) { // 濡傛灉data[i]姣旀渶闀塊掑搴忓垪鐨勬渶鍚庝竴涓厓绱犲ぇ錛?br /> // 閭d箞鐩存帴鍔犲湪瀹冨悗闈究鍙?/span> if (data[i] > last_min[max_len]) { ++ max_len; last_min[max_len] = data[i]; } else { // 鍚﹀垯鏌ユ壘鍘嗗彶鏈闀塊掑搴忓垪 int j = BinarySearch(last_min, 1 , max_len, data[i]); last_min[j] = data[i]; } } return max_len; }
鍦ㄧ▼搴忎簩涓紝 lis鏁扮粍瀹屽叏娌℃湁浣滅敤錛屾墍浠ュ湪紼嬪簭涓変腑娌℃湁浣跨敤銆?/span>
涓庣▼搴忎竴鐩告瘮錛岀▼搴忎笁鍦ㄦ晥鐜囦笂鏈夋槑鏄劇殑鎻愬崌錛屼絾鏄笉鑳芥牴鎹?/span>last_min鏋勯犲嚭鏈闀塊掑瀛愬簭鍒椼?/span>
鍙傝冩枃鐚?/span>
緙栫▼涔嬬編—寰蔣鎶鏈潰璇曞績寰?2.16鑺?/span>
]]>POJ 2115 C Looooops瑙i鎶ュ憡 http://www.shnenglu.com/jaysoon/articles/112245.htmljaysoon jaysoon Sun, 11 Apr 2010 08:41:00 GMT http://www.shnenglu.com/jaysoon/articles/112245.html http://www.shnenglu.com/jaysoon/comments/112245.html http://www.shnenglu.com/jaysoon/articles/112245.html#Feedback 0 http://www.shnenglu.com/jaysoon/comments/commentRss/112245.html http://www.shnenglu.com/jaysoon/services/trackbacks/112245.html http://acm.pku.edu.cn/JudgeOnline/problem?id=2115 鏈鏄竴閬撴暟璁虹殑鍏ラ棬棰橈紝妯″瀷涓烘眰 ax = b (mod n)錛屾湰棰樹腑錛宎 = C, b = B-A, n = 2^k 鍥犳浣跨敤姹傝В妯$嚎鎬ф柟紼嬬畻娉昺odular_linear銆傚叧浜庣畻娉曠殑璇︾粏鍘熺悊鍙弬瑙?a title="嬈у嚑閲屽痙_鎵╁睍嬈у嚑閲屽痙_妯$嚎鎬ф柟紼? href="http://www.shnenglu.com/RyanWang/archive/2009/07/19/90525.html">嬈у嚑閲屽痙_鎵╁睍嬈у嚑閲屽痙_妯$嚎鎬ф柟紼?/a>錛岃繖綃嘼log瀵圭浉鍏崇殑綆楁硶緇欏嚭浜嗚緇嗙殑璇佹槑錛屾帹鑽愩?br> 涓嬮潰緇欏嚭鏈鐨勪唬鐮侊紝鏈鏈夊嚑鐐歸渶瑕佹敞鎰忥細 1.闇瑕佷嬌鐢?4浣嶆暣鏁拌綆楋紝鍥犱負2^32瀵規櫘閫氭暣鏁頒細婧㈠嚭錛?br> 2.絎?8琛岋紝鍦ㄦ眰n鏃訛紝鍥犱負鍦–++涓紝榛樿0x01涓篿nt鍨嬶紝濡傛灉涓嶅姞寮哄埗杞崲錛岄偅涔堢Щ浣嶅悗浼氭孩鍑猴紱鎵浠ュ己鍒剁被鍨嬭漿鎹㈡槸蹇呴』鐨勩?br>
1 #include < cstdio > 2 typedef long long Int64; 3 4 // ax + by = d 鍏朵腑d = gcd(a,b) 5 Int64 extend_euclid(Int64 a, Int64 b, Int64 & x, Int64 & y) 6 { 7 if (b == 0 ) 8 { 9 x = 1 ; 10 y = 0 ; 11 return a; 12 } 13 else 14 { 15 Int64 gcd, t; 16 gcd = extend_euclid(b, a % b, x, y); 17 18 t = x; 19 x = y; 20 y = t - a / b * y; 21 return gcd; 22 } 23 } 24 25 // ax = b mod n 26 Int64 modular_linear(Int64 a, Int64 b, Int64 n) 27 { 28 Int64 x = 0 ; 29 Int64 y = 0 ; 30 Int64 d = 0 ; 31 32 d = extend_euclid(a,n,x,y); 33 34 if (b % d == 0 ) 35 { 36 x = (x * (b / d)) % n + n; 37 return x % (n / d); 38 } 39 return - 1 ; 40 } 41 42 int main() 43 { 44 Int64 A,B,C,k; 45 46 while (scanf( " %lld%lld%lld%lld " , & A, & B, & C, & k),k) 47 { 48 Int64 n = (Int64) 0x01 << k; 49 50 Int64 res = modular_linear(C, B - A, n); 51 if (res == - 1 ) 52 { 53 printf( " FOREVER\n " ); 54 } 55 else 56 { 57 printf( " %lld\n " ,res); 58 } 59 } 60 61 return 0 ; 62 } 63
]]> POJ 3349 Snowflake Snow Snowflakes 瑙i鎶ュ憡 http://www.shnenglu.com/jaysoon/articles/108745.htmljaysoon jaysoon Tue, 02 Mar 2010 13:57:00 GMT http://www.shnenglu.com/jaysoon/articles/108745.html http://www.shnenglu.com/jaysoon/comments/108745.html http://www.shnenglu.com/jaysoon/articles/108745.html#Feedback 0 http://www.shnenglu.com/jaysoon/comments/commentRss/108745.html http://www.shnenglu.com/jaysoon/services/trackbacks/108745.html 涓栫晫涓婃病鏈変袱鐗囧畬鍏ㄧ浉鍚岀殑闆姳錛屾湰棰樿鍒ゆ柇鏄惁鏈変袱鐗囬洩鑺卞畬鍏ㄧ浉鍚屻?br> 棰樹腑瀵歸洩鑺辮繘琛屼簡綆鍖栵紝鍙槸綆鍗曠殑灝嗛洩鑺辯殑鍏釜鑷傞暱浣滀負鏁版嵁錛屽鏋滆繘涓姝ユ牴鎹垎褰㈠鎶借薄闆姳鐨勮瘽錛岄偅涔堥鐩殑闅懼害浼氭湁鎵澧炲姞銆?br> 鐢變簬鏁版嵁鐨勮妯″緢澶э紝鎵浠ュ浣曟瘮杈冧袱鐗囬洩鑺辨槸鍏抽敭銆傚緢鑷劧鐨勯夋嫨鎻愬彇闆姳鐨勭壒寰侊紝鎵浠ュ簲璇ユ牴鎹叚涓噦闀胯璁″畠鐨勭壒寰侊紝璇ョ壒寰侀噺璁捐鐨勫ソ鍧忔槸紼嬪簭鏁堢巼鐨勪富瑕佸洜绱犮?br> 鏈В娉曞厛綆鍗曠殑灝嗗悇涓噦闀夸箻浠ヤ竴涓郴鏁板茍鐩稿姞浣滀負闆姳鐨勭壒寰佸鹼紝鐒跺悗灝嗚鐗瑰緛鍊間綔涓烘暎鍒楀煎姞鍏ュ埌琛ㄤ腑錛屾渶鍚庢煡鎵炬槸鍚︽湁鐩稿悓鐨勯洩鑺卞瓨鍦ㄣ?br>
#include < cstdio > const int SNOWNUM = 100005 ; const int HASHSIZE = 1000000 ; struct staticList{ int data[ 6 ]; int next; }; staticList sList[SNOWNUM]; int newNode; int nHashIndex[HASHSIZE + 5 ]; int main() { int i,j; int num; bool suc; int tmp[ 6 ],data[ 6 ]; scanf( " %d " , & num); for (i = 0 ; i < num; ++ i) sList[i].next = - 1 ; for (i = 0 ; i < HASHSIZE; ++ i) nHashIndex[i] = - 1 ; newNode = 0 ; suc = false ; for (i = 0 ; i < num; ++ i) { int nClockSt = 0 , nClockVa = 0 , nClockVaTemp = 0 ; int nCountSt = 0 , nCountVa = 0 , nCountVaTemp = 0 ; for (j = 0 ; j < 6 ; ++ j) scanf( " %d " , & tmp[j]); for (j = 0 ; j < 6 ; ++ j) { nClockVaTemp = tmp[j] * 6 + tmp[(j + 1 ) % 6 ] * 5 + tmp[(j + 2 ) % 6 ] * 4 + tmp[(j + 3 ) % 6 ] * 3 + tmp[(j + 4 ) % 6 ] * 2 + tmp[(j + 5 ) % 6 ]; if (nClockVa < nClockVaTemp) {nClockVa = nClockVaTemp; nClockSt = j;} nCountVaTemp = tmp[j] * 6 + tmp[(j + 5 ) % 6 ] * 5 + tmp[(j + 4 ) % 6 ] * 4 + tmp[(j + 3 ) % 6 ] * 3 + tmp[(j + 2 ) % 6 ] * 2 + tmp[(j + 1 ) % 6 ]; if (nCountVa < nCountVaTemp) {nCountVa = nCountVaTemp; nCountSt = j;} } if (nClockVa > nCountVa) { for (j = 0 ; j < 6 ; ++ j) data[j] = tmp[(nClockSt + j) % 6 ]; } else { for (j = 0 ; j < 6 ; ++ j) data[j] = tmp[(nCountSt + 6 - j) % 6 ]; } int nValue = nClockVa > nCountVa ? nClockVa : nCountVa; nValue %= HASHSIZE; if (nHashIndex[nValue] != - 1 ) { int next = nHashIndex[nValue]; while (next != - 1 ) { for (j = 0 ; j < 6 ; ++ j) if (data[j] != sList[next].data[j]) break ; if (j == 6 ) { suc = true ; goto en; } next = sList[next].next; } for (j = 0 ; j < 6 ; ++ j) sList[newNode].data[j] = data[j]; sList[newNode].next = nHashIndex[nValue]; nHashIndex[nValue] = newNode; ++ newNode; } else { for (j = 0 ; j < 6 ; ++ j) sList[newNode].data[j] = data[j]; nHashIndex[nValue] = newNode; ++ newNode; } } en: if (suc) { for ( ++ i; i < num; ++ i) { for (j = 0 ; j < 6 ; ++ j) scanf( " %d " , & tmp[j]); } } if (suc) printf( " Twin snowflakes found.\n " ); else printf(" No two snowflakes are alike.\n " ); return 0 ; }
]]> POJ Scout YYF I 瑙i鎶ュ憡 http://www.shnenglu.com/jaysoon/articles/96016.htmljaysoon jaysoon Sat, 12 Sep 2009 13:36:00 GMT http://www.shnenglu.com/jaysoon/articles/96016.html http://www.shnenglu.com/jaysoon/comments/96016.html http://www.shnenglu.com/jaysoon/articles/96016.html#Feedback 0 http://www.shnenglu.com/jaysoon/comments/commentRss/96016.html http://www.shnenglu.com/jaysoon/services/trackbacks/96016.html /* * Pro(i)琛ㄧず涓嶉亣鍒伴浄鐨勬儏鍐典笅錛屽埌杈緄姝ョ殑鍑犵巼錛岄偅涔? * Pro(n) = Pro(n-1) * p + Pro(n-2) * (1-p) * 棣栧厛姹傞掓帹鍏紡錛岀敱鐗瑰緛鏂圭▼ x^2 - p*x -(1-p) = 0 姹傚緱鐗瑰緛鏍? p-1 鍜?1 * 鎵浠ro(n) = C1 + C2*(p-1)^n * 灝哖ro(1)=1 Pro(2)=p浠e叆錛屾眰寰楀緟瀹氱郴鏁癈1 = -1/(p-2), C2 = 1/(p-2) * 鏁匬ro(n) = -1/(p-2) + 1/(p-2)^n * * 鍋囪鍦ㄤ綅緗甼棣栨閬囧埌闆鳳紝閭d箞鍒拌揪浣嶇疆k-1鐨勫嚑鐜囨槸 Pro(k-1) * 緇忚繃闆峰悗瀛樻椿鐨勫嚑鐜囨槸 Pro(k-1) * (1-p) * 灝嗚繖涓煎嵆涓篴 * * 鍋囪鍙堢粡榪噒姝ョ浜屾閬囧埌闆鳳紝閭d箞鍒拌揪t-1姝ョ殑鍑犵巼鏄?a*Pro(t-1) * 緇忚繃闆峰悗瀛樻椿鐨勫嚑鐜囨槸 a * Pro(t-1) * (1-p) * * 浠ユ綾繪帹 */
#include < iostream > #include < algorithm > #include < cmath > using namespace std; int main() { const int SIZE = 15 ; int iMineNum; double p; int pMinePos[SIZE]; // 璁板綍闆風殑浣嶇疆 double pRes[SIZE]; // pRes[i]琛ㄧず緇忚繃闆穒鍚庡瓨媧諱笅鏉ョ殑鍑犵巼 while (scanf( " %d%lf " , & iMineNum, & p) != EOF) { * (pMinePos + 0 ) = 0 ; // 涓轟簡緇熶竴鍚庨潰鐨勮綆?nbsp; for ( int i = 1 ; i <= iMineNum; ++ i) scanf( " %d " , (pMinePos + i)); sort(pMinePos,pMinePos + iMineNum + 1 ); // 瀵歸浄鐨勪綅緗繘琛屾帓搴?nbsp; pRes[ 0 ] = 1 ; // 涓轟簡緇熶竴鍚庨潰鐨勮綆?nbsp; for ( int i = 1 ; i <= iMineNum; ++ i) { /**/ /* 璁$畻閬囧埌闆蜂箣鍓嶏紝瀛樻椿鐨勫嚑鐜?/span>*/ pRes[i] = - 1 / (p - 2 ) + 1 / (p - 2 ) * pow((p - 1 ),pMinePos[i] - pMinePos[i - 1 ] - 1 ); /**/ /**/ pRes[i] *= ( 1 - p) * pRes[i - 1 ]; } printf( " %.7lf\n " ,pRes[iMineNum]); } return 0 ; }
]]> 鍥捐鏈澶х綉緇滄祦錛堜竴錛?POJ 1273 瑙i鎶ュ憡 http://www.shnenglu.com/jaysoon/articles/81143.htmljaysoon jaysoon Sun, 26 Apr 2009 11:18:00 GMT http://www.shnenglu.com/jaysoon/articles/81143.html http://www.shnenglu.com/jaysoon/comments/81143.html http://www.shnenglu.com/jaysoon/articles/81143.html#Feedback 0 http://www.shnenglu.com/jaysoon/comments/commentRss/81143.html http://www.shnenglu.com/jaysoon/services/trackbacks/81143.html 棰樼洰閾炬帴http://acm.pku.edu.cn/JudgeOnline/problem?id=1273 鏈鏄渶澶ф祦綆楁硶鐨勭畝鍗曞簲鐢ㄣ?br> 鏈澶х綉緇滄祦鐨勫熀鏈濇兂寰堢畝鍗曗斺斾粠鏌愪釜鍒濆嫻佸紑濮嬶紝鍙嶅鐨勫鍔犳祦鐨勬祦閲忕煡閬撲笉鑳藉啀鏀硅繘涓烘銆傛渶鍚庡緱鍒扮殑嫻佸皢鏄竴涓渶澶ф祦銆?br> 瀹氱悊 璁?P 鏄綉緇?G 涓粠璧風偣鍒扮粓鐐規弧瓚充竴涓嬫潯浠剁殑涓鏉¤礬寰勶細 (a) 瀵?span style="FONT-FAMILY: Comic Sans MS">P涓殑姣忔潯姝e悜杈?span style="FONT-FAMILY: Comic Sans MS">(i,j)錛?F ij < C ij (b)瀵?span style="FONT-FAMILY: Comic Sans MS">P涓殑姣忔潯鍙嶅悜杈?span style="FONT-FAMILY: Comic Sans MS">(i,j)錛?F ij > 0 璁?D 鏄敱P 涓墍鏈夋鍚戣竟(i,j) 瀵瑰簲鐨勬暟鍜?span style="FONT-FAMILY: Comic Sans MS">P涓墍鏈夊弽鍚戣竟(i,j) 瀵瑰簲鐨勬暟緇勬垚銆?br> Δ =min D Fij 濡傛灉(i,j)涓嶅湪P涓?br> F * ij ={ Fij + Δ 濡傛灉(i,j)鍦≒涓笖鏄鍚戠殑 Fij -Δ 濡傛灉(i,j)鍦≒涓笖涓嶆槸姝e悜鐨?/span>
鏍規嵁涓婅堪瀹氱悊錛屽鏋滄壘涓嶅埌璺緞婊¤凍涓婅堪瀹氱悊錛岄偅涔堝緱鍒扮殑嫻佷究鏄渶澶х殑銆傛垜浠彲浠ユ瀯閫犱竴涓畻娉曪細 1.浠庝竴涓祦寮濮嬶紱 2.瀵繪壘涓涓弧瓚充笂榪板畾鐞嗙殑璺緞錛屽鏋滆繖鏍風殑璺緞涓嶅瓨鍦紝鍒欏仠姝紝嫻佹槸鏈澶х殑錛?br> 3.灝嗘祦榪囪繖鏉¤礬寰勭殑嫻侀噺澧炲姞鈻籌紝杞埌絎?琛屻?br> Ford-Fulkerson鏂規硶鏄寜鐓т笂榪板畾鐞嗘瀯閫狅紝瑙e喅鏈澶ф祦闂鐨勬湁鏁堟柟娉曪紝涓鑸噰鐢ㄦ繁鎼滅瓥鐣ワ紱鑰孍dmonds-Karp綆楁硶鏄疐ord-Fulkerson鏂規硶鐨勫箍鎼滅殑瀹炵幇錛涚浉瀵硅岃█錛屽悗鑰呯殑鏁堢巼紼嶅井楂樹竴浜涖?br> 涓嬮潰鏄疨OJ 1273鐨勪唬鐮侊紝閲囩敤鐨勬槸Edmonds-Karp綆楁硶銆?br>
1 #include < cstdio > 2 #include < queue > 3 const int INF = 0x0fffffff ; 4 const int SIZE = 202 ; 5 6 int bfs( int ( * mat)[SIZE], int start, int end, int * path) 7 { 8 int flow[SIZE]; // 瀛樺偍涓嬈FS閬嶅巻涔嬪悗嫻佺殑鍙敼榪涢噺錛?/span> 9 std::queue < int > q; 10 int i; 11 12 for (i = 0 ;i < SIZE; ++ i) 13 path[i]=- 1 ; 14 path[start]= 0 ,flow[start] = INF; 15 16 q.push(start);17 while ( ! q.empty()) 18 { 19 int top = q.front(); 20 q.pop();21 if (top == end) break ; 22 for (i = 1 ;i <= end; ++ i) 23 { 24 if (i != start && path[i] ==- 1 && mat[top][i]) 25 { 26 flow[i]= flow[top] < mat[top][i] ? flow[top] : mat[top][i]; 27 q.push(i);28 path[i]= top; 29 }30 }31 }32 if (path[end] ==- 1 ) return - 1 ; 33 return flow[end]; 34 35 36 } 37 int Edmonds_Karp( int ( * mat)[SIZE], int start, int end) 38 { 39 int maxflow = 0 ,step,cur,pre; 40 int path[SIZE]; /**/ /// /瀛樺偍褰撳墠宸茶闂繃鐨勮妭鐐圭殑澧炲箍璺緞錛?/span> 41 while ((step = bfs(mat,start,end,path)) != - 1 ) // 鎵句笉鍒板騫胯礬寰勬椂閫鍑?/span>42 { 43 maxflow += step; 44 cur= end; 45 while (cur != start) 46 { 47 pre= path[cur]; 48 mat[pre][cur] -= step; // 鏇存柊姝e悜杈圭殑瀹為檯瀹歸噺 49 mat[cur][pre] += step; // 娣誨姞鍙嶅悜杈?/span>50 cur = pre; 51 } 52 }53 return maxflow; 54 }55 56 int main() 57 { 58 int mat[SIZE][SIZE]; 59 int vecNum,edgeNum; 60 int i; 61 int a,b,c; 62 63 while (scanf( " %d%d " , & edgeNum, & vecNum) != EOF) 64 { 65 memset(mat,0 , sizeof (mat)); 66 for (i = 0 ;i < edgeNum; ++ i) 67 { 68 scanf(" %d%d%d " , & a, & b, & c); 69 mat[a][b]+= c; 70 }71 72 int re = Edmonds_Karp(mat, 1 ,vecNum); 73 printf(" %d\n " ,re); 74 75 }76 return 0 ; 77 }78
]]> 青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
亚洲天堂av综合网 |
亚洲精品日韩精品 |
久久精品欧洲 |
一区二区三区在线高清 |
久久综合色影院 |
免费成人av资源网 |
正在播放欧美视频 |
亚洲欧美久久久 |
在线观看欧美日韩 |
99国产精品99久久久久久 |
国产精品欧美久久 |
毛片一区二区 |
欧美日韩一区二区三区四区五区 |
先锋影音国产一区 |
美日韩免费视频 |
亚洲一区视频在线观看视频 |
欧美在线精品免播放器视频 |
亚洲国产天堂久久综合网 |
一二三区精品福利视频 |
国内精品福利 |
亚洲理论在线观看 |
激情欧美一区二区三区 |
亚洲日本欧美 |
国产亚洲人成网站在线观看 |
亚洲国产你懂的 |
国产精品一区二区你懂得 |
久久免费观看视频 |
国产精品v欧美精品∨日韩 |
另类酷文…触手系列精品集v1小说 |
欧美激情麻豆 |
久久综合伊人77777 |
欧美日韩在线大尺度 |
免费亚洲电影在线 |
欧美在线关看 |
免费在线视频一区 |
●精品国产综合乱码久久久久 |
亚洲激情精品 |
国内在线观看一区二区三区 |
亚洲精品日韩综合观看成人91 |
国产欧亚日韩视频 |
艳妇臀荡乳欲伦亚洲一区 |
亚洲国内在线 |
久久久久一本一区二区青青蜜月 |
亚洲一区二区三区午夜 |
欧美成人一区二区三区在线观看 |
久久永久免费 |
好吊妞**欧美 |
欧美亚洲日本国产 |
西瓜成人精品人成网站 |
国产精品swag |
99riav国产精品 |
一区二区三区四区五区精品视频 |
久久综合狠狠综合久久激情 |
久久久久久亚洲精品中文字幕
|
久久九九99 |
久久www成人_看片免费不卡
|
欧美一区二区视频在线观看2020 |
亚洲欧美日韩精品久久 |
欧美日韩不卡在线 |
亚洲精品久久久久久一区二区
|
国产一区二区久久精品 |
亚洲在线观看视频网站 |
亚洲女人小视频在线观看 |
欧美精品在线极品 |
亚洲毛片播放 |
亚洲小视频在线观看 |
欧美日韩在线大尺度 |
一区二区精品在线观看 |
亚洲自拍三区 |
国产精品视频最多的网站 |
中文av一区二区 |
欧美亚洲视频在线观看 |
国产精品久久久久毛片软件 |
亚洲一区图片 |
久久影音先锋 |
亚洲精品日韩在线观看 |
欧美日韩一区二区在线观看视频
|
免费不卡亚洲欧美 |
亚洲国产精品第一区二区 |
免费久久久一本精品久久区 |
久久夜色精品一区 |
国产一区二区三区不卡在线观看 |
亚洲午夜久久久 |
久久精品国产欧美亚洲人人爽 |
韩日精品在线 |
欧美成人一区在线 |
国产精品99久久久久久人 |
久久久蜜桃精品 |
亚洲日本国产 |
国产精品久久久久一区二区三区 |
午夜精品久久久久 |
欧美成人一二三 |
中文日韩在线视频 |
国内精品免费在线观看 |
欧美精品午夜视频 |
在线看片欧美 |
亚洲伊人一本大道中文字幕 |
久久久久国产精品厨房 |
日韩视频免费观看高清在线视频 |
国产精品久久久一区麻豆最新章节
|
亚洲欧洲一级 |
久久免费国产 |
亚洲欧美激情诱惑 |
亚洲第一福利视频 |
国产精品xnxxcom |
免费观看一区 |
欧美制服第一页 |
一本色道久久综合亚洲精品高清 |
久久综合婷婷 |
午夜免费日韩视频 |
亚洲精品老司机 |
国模大胆一区二区三区 |
欧美日韩国内自拍 |
老司机aⅴ在线精品导航 |
亚洲一级特黄 |
亚洲精品小视频 |
欧美激情第三页 |
久久久精品日韩欧美 |
亚洲免费一在线 |
日韩午夜激情av |
亚洲欧洲日产国产网站 |
国产亚洲一区二区在线观看
|
在线亚洲+欧美+日本专区 |
亚洲电影免费在线 |
好看的亚洲午夜视频在线 |
国产精品久久久久久久7电影 |
欧美成人蜜桃 |
久久久久一区二区三区 |
欧美一区二区免费观在线 |
亚洲亚洲精品在线观看
|
麻豆av福利av久久av |
久久精品女人天堂 |
欧美诱惑福利视频 |
欧美在线免费看 |
午夜亚洲福利 |
校园激情久久 |
欧美一区1区三区3区公司 |
亚洲综合视频1区 |
午夜国产精品视频免费体验区 |
一区二区三区视频在线 |
日韩午夜在线视频 |
一区二区三区精品 |
亚洲午夜极品 |
亚洲欧美日韩在线播放 |
欧美一区二区三区免费观看
|
亚洲欧洲视频在线 |
99这里有精品 |
亚洲一区久久久 |
久久精品官网 |
久久综合亚洲社区 |
久久麻豆一区二区 |
亚洲美女av网站 |
亚洲精品国产欧美 |
欧美11—12娇小xxxx |
国产午夜亚洲精品羞羞网站 |
欧美午夜无遮挡 |
国产精品视频导航 |
国产精品免费网站在线观看 |
最新日韩欧美 |
国产日韩精品入口 |
国内成人精品一区 |
亚洲欧洲中文日韩久久av乱码 |
日韩视频中文字幕 |
午夜精品网站 |
免费观看成人鲁鲁鲁鲁鲁视频 |
欧美激情片在线观看 |
日韩一区二区精品视频 |
亚洲欧美国产高清va在线播 |
久久成人免费日本黄色 |
欧美激情综合 |
国产色产综合色产在线视频 |
亚洲第一二三四五区 |
亚洲一区观看 |
免费亚洲一区 |
在线视频精品一区 |
一区二区三区欧美亚洲 |
午夜精品久久久久久久男人的天堂 |
国产精品久久久久一区二区三区 |
久久国产直播 |
久久精品国产精品 |
久久精品中文字幕免费mv |
亚洲一区视频 |
久久国产成人 |
久久久久久999 |
久久精品盗摄 |
麻豆91精品 |
欧美.www |
欧美午夜电影在线观看 |
国产精品日本一区二区 |
国产一区二区三区免费不卡 |
国产亚洲在线 |
亚洲人成在线观看 |
亚洲特级毛片 |
美脚丝袜一区二区三区在线观看 |
亚洲成色www8888 |
日韩午夜在线视频 |
欧美日韩亚洲一区二区 |
欧美激情va永久在线播放 |
av成人免费在线观看 |
亚洲国产影院 |