锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久一区二区免费播放,久久精品亚洲AV久久久无码,久久婷婷五月综合色奶水99啪http://m.shnenglu.com/jaysoon/category/10355.htmlzh-cnMon, 13 Jun 2011 07:41:54 GMTMon, 13 Jun 2011 07:41:54 GMT60鏈闀塊掑瀛愬簭鍒?LIS)瑙f硶璇﹁堪http://m.shnenglu.com/jaysoon/articles/148382.htmljaysoonjaysoonThu, 09 Jun 2011 15:44:00 GMThttp://m.shnenglu.com/jaysoon/articles/148382.htmlhttp://m.shnenglu.com/jaysoon/comments/148382.htmlhttp://m.shnenglu.com/jaysoon/articles/148382.html#Feedback0http://m.shnenglu.com/jaysoon/comments/commentRss/148382.htmlhttp://m.shnenglu.com/jaysoon/services/trackbacks/148382.html姹傛暟緇勪腑鏈闀塊掑瀛愬簭鍒楋紙Longest Increasing Subsequence, LIS錛?/span>

LIS闂鏄畻娉曚腑鐨勭粡鍏擱鐩紝浼犵粺鐨勮В娉曟槸浣跨敤鍔ㄦ佽鍒掞紝鏃墮棿澶嶆潅搴︽槸O(n^2)錛涙敼榪涚殑鏂規(guī)硶鏃墮棿澶嶆潅搴︽槸O(nlogn)銆備絾鏄叧浜庢敼榪涚殑綆楁硶鐨勪粙緇嶅敖綆$綉涓婃湁寰堝璧勬簮錛屼絾鏄湁璁稿鐪嬭搗鏉ユ病闂錛屼絾鏄粡涓嶈搗鎺ㄦ暡錛屾垜鐪嬬殑鏃跺欐劅瑙夋湁鐐圭湅涓嶆槑鐧斤紝鏌ラ槄鍗婂ぉ寮勬噦鍚庡啀鍥炲幓鐪嬶紝鍙戠幇浠栦滑鐨勮〃榪版湁闂錛屽洜姝ゆ葷粨涓涓嬨?/em>

榪欑瘒鎬葷粨浣跨敤浠庝紶緇熻В娉曢愭鏀硅繘鐨勬紨緇庢柟娉曪紝騫剁粰鍑轟竴浜涙帹鐞嗐?/em>

濡傛灉璇昏呬笉鍠滄榪欑婕旂粠鎬濊冩柟娉曪紝鎺ㄨ崘Slyar鐨勬柟娉曪紝浠栦粠鍙︿竴涓搴︾湅寰呰繖涓棶棰橈紝鍐欏緱鍗佸垎綆媧侊紝浣嗘槸娌℃湁鎺ヨЕ榪囩殑璇濓紝鍙兘涓嶆槗鐞嗚В銆?/em>

鏈枃浠嶆湁璁稿涓嶈凍錛屾榪庢寚姝c?/strong>



浼犵粺鐨勮В娉曟槸浣跨敤鍔ㄦ佽鍒掋傚師鐞嗗涓嬶細(xì)

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)錛屽畠鐨勪富瑕佷紭鐐規(guī)槸綆楁硶綆鍗曪紝鍙互鏋勯犳渶闀塊掑瀛愬簭鍒椼?/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;
}


鍙︿竴縐嶆柟娉曠◢寰湁浜涘鏉傦紝瀹冩槸閽堝涓婇潰鏂規(guī)硶鐨勪竴縐嶆敼榪涳紝鏃墮棿澶嶆潅搴︽槸O(nlogn)銆備笅闈嬌鐢ㄦ笎榪戠殑鏂規(guī)硶鏉ュ垎鏋愯幏寰椼?/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]姣旇緝鐨勶紝鍥犱負(fù)宸茬粡鐭ラ亾瀹冧滑鎵鍦ㄧ殑鏈澶ч掑瀛愬簭鍒楃殑鏈鍚庝竴涓厓绱?/span>data[5] < data[6]錛涗篃灝辨槸璇達(dá)紝褰撴垜浠冨療絎?/span>i涓厓绱犳椂錛屽鍓嶉潰i-1涓厓绱犵殑浠諱綍涓涓掑瀛愬簭鍒楋紝濡傛灉榪欎釜瀛愬簭鍒楃殑鏈鍚庝竴涓厓绱犳瘮data[i]灝忥紝閭d箞灝卞彲浠ュ皢data[i]鍔犲湪榪欎釜瀛愬簭鍒楀悗闈紝鏋勬垚涓涓柊鐨勬洿闀跨殑閫掑瀛愬簭鍒楋紝鑰屼笉鐢ㄦ瘮杈冭繖涓瓙搴忓垪鍓嶉潰鐨勫厓绱犲拰data[i]鐨勫叧緋匯?/span>

鐢辨鎴戜滑寰楀嚭絎竴涓惎鍙戝紡鏂規(guī)硶錛屽綋璁$畻lis[i]鏃訛紝鎴戜滑鍙叧蹇?jī)姣忎釜鍓?/span>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]鍙互鎺ュ湪浠諱綍涓涓瓙搴忓垪鍚庨潰錛屾瀯鎴愰暱搴︿負(fù)4鐨勬柊閫掑搴忓垪銆傝繖涓椂鍊欙紝浼?xì)鍙戠庮C竴涓惎鍙戞柟娉曪紝data[6]涓嶇敤鍜?/span>6姣旇緝錛屽洜涓哄彧闇data[6]澶т簬4灝卞彲浠ュ緱鍑轟竴涓暱搴︿負(fù)4鐨勯掑搴忓垪銆?/span>

鎵浠ュ緱鍑虹浜屼釜鍚彂寮忔柟娉曪紝褰撹綆?/span>lis[i]鏃訛紝瀵瑰悓鏍烽暱搴︾殑瀛愬簭鍒楋紝鎴戜滑鍙叧蹇?jī)瀹冧滑鏈鍚庡厓绱犵殑鍊兼渶灝忕殑涓涓殑鍊箋?/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]鎺ュ湪榪欎釜搴忓垪鍚庨潰錛屼究鏋勬垚涓涓柊鐨勯暱搴︿負(fù)max_len+1鐨勫簭鍒楋紝璇ュ簭鍒楃殑鏈鍚庝竴涓厓绱犳槸data[i]錛涘惁鍒欙紝鎵懼埌涓涓渶澶х殑j錛屼嬌last_min[j]<data[i]錛堢敱浜庢煡鎵炬柟寮忥紝涔熻鏄?/span>data[i]<=last_min[j+1]錛夛紝閭d箞鎶?/span>data[i]鎺ュ湪榪欎釜搴忓垪鍚庨潰錛屼究鏋勬垚涓涓暱搴︿負(fù)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;
}


濡備笂鎵紺猴紝铏界劧宸茬粡榪涜浜?jiǎn)寰堝ぇ鐨勪紭鍖栧Q屼絾鏄綋鍓嶇殑鏃墮棿澶嶆潅搴︿粛鏄?/span>O(n^2)錛屽綋鐒跺熀鏈彲浠ョ‘瀹氱殑鏄紝鐜板湪鐨勭畻娉曟瘮鍘熸潵鐨勬晥鐜囨彁楂樹(shù)簡(jiǎn)寰堝銆?/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)錛屼嬌寰楁葷殑澶嶆潅搴︿負(fù)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>

   緙栫▼涔嬬編—寰蔣鎶鏈潰璇曞績(jī)寰?2.16鑺?/span>


 




jaysoon 2011-06-09 23:44 鍙戣〃璇勮
]]>
POJ 2115 C Looooops瑙i鎶ュ憡http://m.shnenglu.com/jaysoon/articles/112245.htmljaysoonjaysoonSun, 11 Apr 2010 08:41:00 GMThttp://m.shnenglu.com/jaysoon/articles/112245.htmlhttp://m.shnenglu.com/jaysoon/comments/112245.htmlhttp://m.shnenglu.com/jaysoon/articles/112245.html#Feedback0http://m.shnenglu.com/jaysoon/comments/commentRss/112245.htmlhttp://m.shnenglu.com/jaysoon/services/trackbacks/112245.htmlhttp://acm.pku.edu.cn/JudgeOnline/problem?id=2115
     鏈鏄竴閬撴暟璁虹殑鍏ラ棬棰橈紝妯″瀷涓烘眰 ax = b (mod n)錛屾湰棰樹(shù)腑錛宎 = C, b = B-A, n = 2^k

     鍥犳浣跨敤姹傝В妯$嚎鎬ф柟紼嬬畻娉昺odular_linear銆傚叧浜庣畻娉曠殑璇︾粏鍘熺悊鍙弬瑙?a title="嬈у嚑閲屽痙_鎵╁睍嬈у嚑閲屽痙_妯$嚎鎬ф柟紼? href="http://m.shnenglu.com/RyanWang/archive/2009/07/19/90525.html">嬈у嚑閲屽痙_鎵╁睍嬈у嚑閲屽痙_妯$嚎鎬ф柟紼?/a>錛岃繖綃嘼log瀵圭浉鍏崇殑綆楁硶緇欏嚭浜?jiǎn)璇l嗙殑璇佹槑錛屾帹鑽愩?br>

     涓嬮潰緇欏嚭鏈鐨勪唬鐮侊紝鏈鏈夊嚑鐐歸渶瑕佹敞鎰忥細(xì)
     1.闇瑕佷嬌鐢?4浣嶆暣鏁拌綆楋紝鍥犱負(fù)2^32瀵規(guī)櫘閫氭暣鏁頒細(xì)婧㈠嚭錛?br>     2.絎?8琛岋紝鍦ㄦ眰n鏃訛紝鍥犱負(fù)鍦–++涓紝榛樿0x01涓篿nt鍨嬶紝濡傛灉涓嶅姞寮哄埗杞崲錛岄偅涔堢Щ浣嶅悗浼?xì)婧㈠嚭锛涙墍浠ュ己鍒剁被鍨嬭漿鎹㈡槸蹇呴』鐨勩?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 

                





jaysoon 2010-04-11 16:41 鍙戣〃璇勮
]]>
POJ 3349 Snowflake Snow Snowflakes 瑙i鎶ュ憡http://m.shnenglu.com/jaysoon/articles/108745.htmljaysoonjaysoonTue, 02 Mar 2010 13:57:00 GMThttp://m.shnenglu.com/jaysoon/articles/108745.htmlhttp://m.shnenglu.com/jaysoon/comments/108745.htmlhttp://m.shnenglu.com/jaysoon/articles/108745.html#Feedback0http://m.shnenglu.com/jaysoon/comments/commentRss/108745.htmlhttp://m.shnenglu.com/jaysoon/services/trackbacks/108745.html    涓栫晫涓婃病鏈変袱鐗囧畬鍏ㄧ浉鍚岀殑闆姳錛屾湰棰樿鍒ゆ柇鏄惁鏈変袱鐗囬洩鑺卞畬鍏ㄧ浉鍚屻?br>    棰樹(shù)腑瀵歸洩鑺辮繘琛屼簡(jiǎn)綆鍖栵紝鍙槸綆鍗曠殑灝嗛洩鑺辯殑鍏釜鑷傞暱浣滀負(fù)鏁版嵁錛屽鏋滆繘涓姝ユ牴鎹垎褰㈠鎶借薄闆姳鐨勮瘽錛岄偅涔堥鐩殑闅懼害浼?xì)鏈夋墍澧炲姞銆?br>    鐢變簬鏁版嵁鐨勮妯″緢澶э紝鎵浠ュ浣曟瘮杈冧袱鐗囬洩鑺辨槸鍏抽敭銆傚緢鑷劧鐨勯夋嫨鎻愬彇闆姳鐨勭壒寰侊紝鎵浠ュ簲璇ユ牴鎹叚涓噦闀胯璁″畠鐨勭壒寰侊紝璇ョ壒寰侀噺璁捐鐨勫ソ鍧忔槸紼嬪簭鏁堢巼鐨勪富瑕佸洜绱犮?br>    鏈В娉曞厛綆鍗曠殑灝嗗悇涓噦闀夸箻?shù)互涓涓郴鏁板茍鐩稿姞浣滀負(fù)闆姳鐨勭壒寰佸鹼紝鐒跺悗灝嗚鐗瑰緛鍊間綔涓烘暎鍒楀煎姞鍏ュ埌琛ㄤ腑錛屾渶鍚庢煡鎵炬槸鍚︽湁鐩稿悓鐨勯洩鑺卞瓨鍦ㄣ?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;
}




jaysoon 2010-03-02 21:57 鍙戣〃璇勮
]]>
POJ Scout YYF I 瑙i鎶ュ憡http://m.shnenglu.com/jaysoon/articles/96016.htmljaysoonjaysoonSat, 12 Sep 2009 13:36:00 GMThttp://m.shnenglu.com/jaysoon/articles/96016.htmlhttp://m.shnenglu.com/jaysoon/comments/96016.htmlhttp://m.shnenglu.com/jaysoon/articles/96016.html#Feedback0http://m.shnenglu.com/jaysoon/comments/commentRss/96016.htmlhttp://m.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];     //璁板綍闆風(fēng)殑浣嶇疆 
    double pRes[SIZE];      //pRes[i]琛ㄧず緇忚繃闆穒鍚庡瓨?gòu)z諱笅鏉ョ殑鍑犵巼 
    
    
while(scanf("%d%lf",&iMineNum,&p) != EOF)
    
{
        
*(pMinePos+0= 0;              //  涓轟簡(jiǎn)緇熶竴鍚庨潰鐨勮綆?nbsp;
        for(int i=1; i<=iMineNum; ++i)
            scanf(
"%d", (pMinePos+i));    
                    
        sort(pMinePos,pMinePos 
+ iMineNum + 1);     //瀵歸浄鐨勪綅緗繘琛屾帓搴?nbsp;
           
        pRes[
0= 1;                    //  涓轟簡(jiǎn)緇熶竴鍚庨潰鐨勮綆?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;    
}


jaysoon 2009-09-12 21:36 鍙戣〃璇勮
]]>
鍥捐鏈澶х綉緇滄祦錛堜竴錛?POJ 1273 瑙i鎶ュ憡http://m.shnenglu.com/jaysoon/articles/81143.htmljaysoonjaysoonSun, 26 Apr 2009 11:18:00 GMThttp://m.shnenglu.com/jaysoon/articles/81143.htmlhttp://m.shnenglu.com/jaysoon/comments/81143.htmlhttp://m.shnenglu.com/jaysoon/articles/81143.html#Feedback0http://m.shnenglu.com/jaysoon/comments/commentRss/81143.htmlhttp://m.shnenglu.com/jaysoon/services/trackbacks/81143.html        棰樼洰閾炬帴http://acm.pku.edu.cn/JudgeOnline/problem?id=1273
        鏈鏄渶澶ф祦綆楁硶鐨勭畝鍗曞簲鐢ㄣ?br>        鏈澶х綉緇滄祦鐨勫熀鏈濇兂寰堢畝鍗曗斺斾粠鏌愪釜鍒濆嫻佸紑濮嬶紝鍙嶅鐨勫鍔犳祦鐨勬祦閲忕煡閬撲笉鑳藉啀鏀硅繘涓烘銆傛渶鍚庡緱鍒扮殑嫻佸皢鏄竴涓渶澶ф祦銆?br>        瀹氱悊 璁?P 鏄綉緇?G 涓粠璧風(fēng)偣鍒扮粓鐐規(guī)弧瓚充竴涓嬫潯浠剁殑涓鏉¤礬寰勶細(xì)
                  (a) 瀵?span style="FONT-FAMILY: Comic Sans MS">P涓殑姣忔潯姝e悜杈?span style="FONT-FAMILY: Comic Sans MS">(i,j)錛?Fij   <  Cij
                 
                (b)瀵?span style="FONT-FAMILY: Comic Sans MS">P涓殑姣忔潯鍙嶅悜杈?span style="FONT-FAMILY: Comic Sans MS">(i,j)錛?Fij    >  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={  濡傛灉(i,j)鍦≒涓笖鏄鍚戠殑
               Fij-Δ   
    1#include <cstdio>
 2#include <queue>
 3const int INF=0x0fffffff;
 4const int SIZE=202;
 5
 6int 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]==-1return -1;
33    return flow[end];
34
35
36}

37int 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
56int 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

 


 



jaysoon 2009-04-26 19:18 鍙戣〃璇勮
]]>
99国产欧美久久久精品蜜芽| 国内精品久久久久久久影视麻豆| 性做久久久久久久久老女人| 久久笫一福利免费导航 | 四虎影视久久久免费| 久久亚洲AV成人无码软件| 大伊人青草狠狠久久| 久久伊人中文无码| 97久久精品无码一区二区| 色欲综合久久躁天天躁| 97久久综合精品久久久综合| 日本加勒比久久精品| 99精品久久精品| 77777亚洲午夜久久多人| 久久久久香蕉视频| 18岁日韩内射颜射午夜久久成人| 久久精品青青草原伊人| 久久精品免费大片国产大片| 精品国际久久久久999波多野| 亚洲国产小视频精品久久久三级 | 久久精品国产亚洲av麻豆色欲| 午夜福利91久久福利| 精品久久久久久无码人妻热| 97久久精品无码一区二区天美| 伊人久久大香线焦AV综合影院| 四虎影视久久久免费| 久久精品二区| 久久国产精品偷99| 99热都是精品久久久久久| 四虎国产精品免费久久5151 | 国产精品99久久精品爆乳| 精品久久久久久无码专区不卡| 亚洲国产精品无码成人片久久| 伊人久久精品无码av一区| 7777久久久国产精品消防器材| 精品久久久无码21p发布| 伊人久久大香线蕉综合影院首页| 久久国产免费直播| 久久精品aⅴ无码中文字字幕重口| 久久99精品久久久久久久不卡 | 97久久国产综合精品女不卡|