锘??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美午夜一区二区福利视频,亚洲国产日韩欧美在线动漫,91久久久一线二线三线品牌http://m.shnenglu.com/MiYu/category/14589.html ______________鐧界櫧銇眿zh-cnSun, 15 Aug 2010 16:54:24 GMTSun, 15 Aug 2010 16:54:24 GMT60HDOJ 1548 HDU 1548 A strange lift ACM 1548 IN HDU http://m.shnenglu.com/MiYu/archive/2010/08/15/123506.htmlMiYuMiYuSun, 15 Aug 2010 08:19:00 GMThttp://m.shnenglu.com/MiYu/archive/2010/08/15/123506.htmlhttp://m.shnenglu.com/MiYu/comments/123506.htmlhttp://m.shnenglu.com/MiYu/archive/2010/08/15/123506.html#Feedback0http://m.shnenglu.com/MiYu/comments/commentRss/123506.htmlhttp://m.shnenglu.com/MiYu/services/trackbacks/123506.htmlMiYu鍘熷垱, 杞笘璇鋒敞鏄?: 杞澆鑷?______________鐧界櫧銇眿

棰樼洰鍦板潃:
         http://acm.hdu.edu.cn/showproblem.php?pid=1548
棰樼洰鎻忚堪:
A strange lift
Time Limit: 
2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 
2641    Accepted Submission(s): 944


Problem Description
There 
is a strange lift.The lift can stop can at every floor as you want, and there is a number Ki(0 <= Ki <= N) on every floor.The lift have just two buttons: up and down.When you at floor i,if you press the button "UP" , you will go up Ki floor,i.e,you will go to the i+Ki th floor,as the same, if you press the button "DOWN" , you will go down Ki floor,i.e,you will go to the i-Ki th floor. Of course, the lift can't go up high than N,and can't go down lower than 1. For example, there is a buliding with 5 floors, and k1 = 3, k2 = 3,k3 = 1,k4 = 2, k5 = 5.Begining from the 1 st floor,you can press the button "UP", and you'll go up to the 4 th floor,and if you press the button "DOWN", the lift can'do it, because it can't go down to the -2 th floor,as you know ,the -2 th floor isn't exist.
Here comes the problem: when you 
is on floor A,and you want to go to floor B,how many times at least he havt to press the button "UP" or "DOWN"?

 

Input
The input consists of several test cases.,Each test 
case contains two lines.
The first line contains three integers N ,A,B( 
1 <= N,A,B <= 200) which describe above,The second line consist N integers k1,k2,.kn.
A single 
0 indicate the end of the input.
 

Output
For each 
case of the input output a interger, the least times you have to press the button when you on floor A,and you want to go to floor B.If you can't reach floor B,printf "-1".
 

Sample Input
5 1 5
3 3 1 2 5
0
 

Sample Output
3

棰樼洰鍒嗘瀽:
        榪欓鍙堟槸涓涓爣鍑嗙殑  Dijkstra 綆楁硶鐨勯鐩?( 鏈鐭礬 ).  瑕佽闅懼害鍚?  瀵規(guī)垜鑰岃█鍚? 灝辨槸 鍥劇殑鐢熸垚.
鍒氬紑濮嬪仛鐨勬椂鍊欒嚜宸辨兂澶嶆潅浜? 浠ヤ負浠庝笉鍚岀殑妤煎眰寮濮? 灝辨湁涓嶅悓鐨勮蛋娉? 鎵浠ュ紑濮嬬殑鏃跺欏啓寰幆娌″啓瀵?
灝卞啓鎴愪簡閫掑綊.   緇撴灉寰堟澂鍏風殑 STACK_OVERFLOW........   鍦?AMB 紲炵墰鐨勬寚鐐瑰彂鐜? 鍘熸潵鏄嚜宸辨兂澶嶆潅浜?
鍙渶瑕佽綆楀嚭姣忎竴涓ゼ灞傜殑 涓婃ゼ 鍜?涓嬫ゼ灝卞彲浠ヤ簡, 褰撶劧, 瑕佹敞鎰忔槸鍚﹁秺鐣?  鍥劇敓鎴愬悗, 褰撶劧灝辨槸 DIJKSTRA浜?

闂叉潵鏃犱簨, 鍙堝鍒朵竴閬?:
            Dijkstra綆楁硶鐨勫熀鏈濊礬鏄細

         鍋囪姣忎釜鐐歸兘鏈変竴瀵規(guī)爣鍙?(dj, pj)錛屽叾涓璬j鏄粠璧鋒簮鐐箂鍒扮偣j鐨勬渶鐭礬寰勭殑闀垮害 (浠庨《鐐瑰埌鍏舵湰韜殑鏈鐭礬寰勬槸闆惰礬(娌℃湁寮х殑璺?錛屽叾闀垮害絳変簬闆?錛?br>
pj鍒欐槸浠巗鍒癹鐨勬渶鐭礬寰勪腑j鐐圭殑鍓嶄竴鐐廣傛眰瑙d粠璧鋒簮鐐箂鍒扮偣j鐨勬渶鐭礬寰勭畻娉曠殑鍩烘湰榪囩▼濡備笅錛?br>
銆銆1) 鍒濆鍖栥傝搗婧愮偣璁劇疆涓猴細鈶?ds=0, ps涓虹┖;鈶?鎵鏈夊叾浠栫偣: di=∞, pi=?;鈶?鏍囪璧鋒簮鐐箂錛岃k=s,鍏朵粬鎵鏈夌偣璁句負鏈爣璁扮殑銆?br>
銆銆2) 媯楠屼粠鎵鏈夊凡鏍囪鐨勭偣k鍒板叾鐩存帴榪炴帴鐨勬湭鏍囪鐨勭偣j鐨勮窛紱伙紝騫惰緗細


dj=min錛籨j, dk+lkj錛?br>


寮忎腑錛宭kj鏄粠鐐筴鍒癹鐨勭洿鎺ヨ繛鎺ヨ窛紱匯?br>
銆銆3) 閫夊彇涓嬩竴涓偣銆備粠鎵鏈夋湭鏍囪鐨勭粨鐐逛腑錛岄夊彇dj 涓渶灝忕殑涓涓猧錛?br>


di=min錛籨j, 鎵鏈夋湭鏍囪鐨勭偣j錛?br>


鐐筰灝辮閫変負鏈鐭礬寰勪腑鐨勪竴鐐癸紝騫惰涓哄凡鏍囪鐨勩?br>
銆銆4) 鎵懼埌鐐筰鐨勫墠涓鐐廣備粠宸叉爣璁扮殑鐐逛腑鎵懼埌鐩存帴榪炴帴鍒扮偣i鐨勭偣j*錛屼綔涓哄墠涓鐐?璁劇疆錛歩=j*

銆銆5) 鏍囪鐐筰銆傚鏋滄墍鏈夌偣宸叉爣璁幫紝鍒欑畻娉曞畬鍏ㄦ帹鍑猴紝鍚﹀垯錛岃k=i錛岃漿鍒?) 鍐嶇戶緇?/p>



浠g爜濡備笅:
#include <iostream>
using namespace std;
const int MAX = 200;
const int INF = 0x7FFFFFF;
int N,A,B;
int g[MAX+1][MAX+1];
int hash[MAX+1];
int path[MAX+1];
int K[MAX+1];
int Dijkstra ( int beg , int end )
{
    path[beg] 
= 0;
    hash[beg] 
= false;
    
while ( beg != end )
    {
            
int m = INF, temp;
            
for ( int i = 1; i <= N; ++ i )
            {
                  
if ( g[beg][i] != INF )
                       path[i] 
= min ( path[i], path[beg] + g[beg][i] );
                  
if ( m > path[i] && hash[i] )
                  {
                       m 
= path[i];
                       temp 
= i; 
                  }           
            }
            beg 
= temp;
            
if ( m == INF )
                 
break;
            hash[beg] 
= false;
    }
    
if ( path[end] == INF )
         
return -1;
    
return path[end]; 
}

int main ()
{
    
while ( scanf ( "%d%d%d"&N, &A, &B ) , N )
    {
            
for ( int i = 0; i <= MAX; ++ i )
            {
                  hash[i] 
= true;
                  path[i] 
= INF;
                  
for ( int j = 0; j <= MAX; ++ j )
                  {
                        g[i][j] 
= INF;
                  } 
            }
            
for ( int i = 1; i <= N; ++ i )
            {
                  scanf ( 
"%d",&K[i] );
            } 
            
for ( int i = 1; i <= N; ++ i )
            {
                  
if ( i + K[i] <= N )
                       g[ i ][ i 
+ K[i] ] = 1
                  
if ( i - K[i] >= 1 )
                       g[ i ][ i 
- K[i] ] = 1
            }
            cout 
<< Dijkstra ( A, B ) << endl;
    }
    
return 0
}


SO 浠g爜:
#include <iostream>
using namespace std;
const int MAX = 200;
const int INF = 0x7FFFFFF;
bool UP = true;
bool DOWN = false;
int N,A,B;
int g[MAX+1][MAX+1];
int hash[MAX+1];
int path[MAX+1];
int K[MAX+1];

int Dijkstra ( int beg , int end )
{
    path[beg] 
= 0;
    hash[beg] 
= false;
    
while ( beg != end )
    {
            
int m = INF, temp;
            
for ( int i = 1; i <= N; ++ i )
            {
                  
if ( g[beg][i] != INF )
                       path[i] 
= min ( path[i], path[beg] + g[beg][i] );
                  
if ( m > path[i] && hash[i] )
                  {
                       m 
= path[i];
                       temp 
= i; 
                  }           
            }
            beg 
= temp;
            
if ( m == INF )
                 
break;
            hash[beg] 
= false;
    }
    
if ( path[end] == INF )
         
return -1;
    
return path[end]; 
}

bool setGraph ( int n, bool flag )
{
     
if ( flag ) 
     {
          
if ( n + K[n] <= N )
          {
               g[ n ][ n 
+ K[n] ] = 1;
               setGraph ( n 
+ K[n], UP );
               setGraph ( n 
+ K[n], DOWN );
          }  
     }
     
else
     {
          
if ( n - K[n] >= 1 )
          {
               g[ n  ][ n 
- K[n] ] = 1;
               setGraph ( n 
- K[n], UP );
               setGraph ( n 
- K[n], DOWN ); 
          } 
     }
     
return true;
}
int main ()
{
    
while ( scanf ( "%d%d%d"&N, &A, &B ) , N )
    {
            
for ( int i = 0; i <= MAX; ++ i )
            {
                  hash[i] 
= true;
                  path[i] 
= INF;
                  
for ( int j = 0; j <= MAX; ++ j )
                  {
                        g[i][j] 
= INF;
                  } 
            }
            
for ( int i = 1; i <= N; ++ i )
            {
                  scanf ( 
"%d",&K[i] );
            } 
            
for ( int i = 1; i <= N; ++ i )
            {
                  setGraph ( i, UP );
                  setGraph ( i, DOWN ); 
            }
            cout 
<< Dijkstra ( A, B ) << endl;
    }
    
return 0
}


MiYu 2010-08-15 16:19 鍙戣〃璇勮
]]>
HDOJ 1874 HDU 1874 鐣呴氬伐紼嬬畫 ACM 1874 IN HDU http://m.shnenglu.com/MiYu/archive/2010/08/15/123490.htmlMiYuMiYuSun, 15 Aug 2010 05:15:00 GMThttp://m.shnenglu.com/MiYu/archive/2010/08/15/123490.htmlhttp://m.shnenglu.com/MiYu/comments/123490.htmlhttp://m.shnenglu.com/MiYu/archive/2010/08/15/123490.html#Feedback0http://m.shnenglu.com/MiYu/comments/commentRss/123490.htmlhttp://m.shnenglu.com/MiYu/services/trackbacks/123490.htmlMiYu鍘熷垱, 杞笘璇鋒敞鏄?: 杞澆鑷?______________鐧界櫧銇眿

棰樼洰鍦板潃:
         http://acm.hdu.edu.cn/showproblem.php?pid=1874
棰樼洰鎻忚堪:
鐣呴氬伐紼嬬畫
Time Limit: 
3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 
5528    Accepted Submission(s): 1686


Problem Description
鏌愮渷鑷粠瀹炶浜嗗緢澶氬勾鐨勭晠閫氬伐紼嬭鍒掑悗錛岀粓浜庝慨寤轟簡寰堝璺備笉榪囪礬澶氫簡涔熶笉濂斤紝姣忔瑕佷粠涓涓煄闀囧埌鍙︿竴涓煄闀囨椂錛岄兘鏈夎澶氱閬撹礬鏂規(guī)鍙互閫夋嫨錛岃屾煇浜涙柟妗堣姣斿彟涓浜涙柟妗堣璧扮殑璺濈瑕佺煭寰堝銆傝繖璁╄浜哄緢鍥版壈銆?br>
鐜板湪錛屽凡鐭ヨ搗鐐瑰拰緇堢偣錛岃浣犺綆楀嚭瑕佷粠璧風偣鍒扮粓鐐癸紝鏈鐭渶瑕佽璧板灝戣窛紱匯?br> 

Input
鏈鐩寘鍚緇勬暟鎹紝璇峰鐞嗗埌鏂囦歡緇撴潫銆?br>姣忕粍鏁版嵁絎竴琛屽寘鍚袱涓鏁存暟N鍜孧(
0<N<200,0<M<1000)錛屽垎鍒唬琛ㄧ幇鏈夊煄闀囩殑鏁扮洰鍜屽凡淇緩鐨勯亾璺殑鏁扮洰銆傚煄闀囧垎鍒互0锝濶-1緙栧彿銆?br>鎺ヤ笅鏉ユ槸M琛岄亾璺俊鎭傛瘡涓琛屾湁涓変釜鏁存暟A,B,X(0<A,B<N,A!=B,0<X<10000),琛ㄧず鍩庨晣A鍜屽煄闀嘊涔嬮棿鏈変竴鏉¢暱搴︿負X鐨勫弻鍚戦亾璺?br>鍐嶆帴涓嬩竴琛屾湁涓や釜鏁存暟S,T(0<=S,T<N)錛屽垎鍒唬琛ㄨ搗鐐瑰拰緇堢偣銆?br> 

Output
瀵逛簬姣忕粍鏁版嵁錛岃鍦ㄤ竴琛岄噷杈撳嚭鏈鐭渶瑕佽璧扮殑璺濈銆傚鏋滀笉瀛樺湪浠嶴鍒癟鐨勮礬綰匡紝灝辮緭鍑?/span>-1.

 

Sample Input
3 3
0 1 1
0 2 3
1 2 1
0 2
3 1
0 1 1
1 2
 

Sample Output
2
-1

棰樼洰鍒嗘瀽:
鏈鐭礬鐨勫叆闂ㄩ鐩?

Dijkstra綆楁硶鐨勫熀鏈濊礬鏄細

         鍋囪姣忎釜鐐歸兘鏈変竴瀵規(guī)爣鍙?(dj, pj)錛屽叾涓璬j鏄粠璧鋒簮鐐箂鍒扮偣j鐨勬渶鐭礬寰勭殑闀垮害 (浠庨《鐐瑰埌鍏舵湰韜殑鏈鐭礬寰勬槸闆惰礬(娌℃湁寮х殑璺?錛屽叾闀垮害絳変簬闆?錛?br>
pj鍒欐槸浠巗鍒癹鐨勬渶鐭礬寰勪腑j鐐圭殑鍓嶄竴鐐廣傛眰瑙d粠璧鋒簮鐐箂鍒扮偣j鐨勬渶鐭礬寰勭畻娉曠殑鍩烘湰榪囩▼濡備笅錛?br>
銆銆1) 鍒濆鍖栥傝搗婧愮偣璁劇疆涓猴細鈶?ds=0, ps涓虹┖;鈶?鎵鏈夊叾浠栫偣: di=∞, pi=?;鈶?鏍囪璧鋒簮鐐箂錛岃k=s,鍏朵粬鎵鏈夌偣璁句負鏈爣璁扮殑銆?br>
銆銆2) 媯楠屼粠鎵鏈夊凡鏍囪鐨勭偣k鍒板叾鐩存帴榪炴帴鐨勬湭鏍囪鐨勭偣j鐨勮窛紱伙紝騫惰緗細


dj=min錛籨j, dk+lkj錛?br>


寮忎腑錛宭kj鏄粠鐐筴鍒癹鐨勭洿鎺ヨ繛鎺ヨ窛紱匯?br>
銆銆3) 閫夊彇涓嬩竴涓偣銆備粠鎵鏈夋湭鏍囪鐨勭粨鐐逛腑錛岄夊彇dj 涓渶灝忕殑涓涓猧錛?br>


di=min錛籨j, 鎵鏈夋湭鏍囪鐨勭偣j錛?br>


鐐筰灝辮閫変負鏈鐭礬寰勪腑鐨勪竴鐐癸紝騫惰涓哄凡鏍囪鐨勩?br>
銆銆4) 鎵懼埌鐐筰鐨勫墠涓鐐廣備粠宸叉爣璁扮殑鐐逛腑鎵懼埌鐩存帴榪炴帴鍒扮偣i鐨勭偣j*錛屼綔涓哄墠涓鐐?璁劇疆錛歩=j*

銆銆5) 鏍囪鐐筰銆傚鏋滄墍鏈夌偣宸叉爣璁幫紝鍒欑畻娉曞畬鍏ㄦ帹鍑猴紝鍚﹀垯錛岃k=i錛岃漿鍒?) 鍐嶇戶緇?/p>


浠g爜濡備笅:
#include <iostream>
using namespace std;
const int MAX = 201;
const int INF = 0x7FFFFFF;
int graph[MAX][MAX];    
bool hash[MAX];
int path[MAX];
int N,M;
int Dijkstra ( int beg , int end )
{
    path[beg] 
= 0;
    hash[beg] 
= false;
    
while ( beg != end )
    {
            
int m = INF, temp;
            
for ( int i = 0; i != N; ++ i )
            {
                  
if ( graph[beg][i] != INF )
                       path[i] 
= min ( path[i], path[beg] + graph[beg][i] );
                  
if ( m > path[i] && hash[i] )
                  {
                       m 
= path[i];
                       temp 
= i; 
                  }           
            }
            beg 
= temp;
            
if ( m == INF )
                 
break;
            hash[beg] 
= false;
    }
    
if ( path[end] == INF )
         
return -1;
    
return path[end]; 
}
int main ()
{
    
while ( scanf ( "%d%d"&N, &M ) != EOF )
    {
            
for ( int i = 0; i != MAX; ++ i )
            {
                  hash[i] 
= true;
                  path[i] 
= INF;
                  
for ( int j = 0; j != MAX; ++ j )
                  {
                        graph[i][j] 
= INF;        
                  }
            } 
            
for ( int i = 0; i != M; ++ i )
            {
                  
int c1,c2,cost;
                  scanf ( 
"%d%d%d",&c1, &c2, &cost );
                  
if ( cost < graph[c1][c2] )
                       graph[c1][c2] 
= graph[c2][c1] = cost;      
            }
            
int beg,end;
            scanf ( 
"%d%d",&beg, &end );
            cout 
<< Dijkstra ( beg,end ) << endl;
    }
    
return 0
}


MiYu 2010-08-15 13:15 鍙戣〃璇勮
]]>
HDOJ 2066 HDU 2066 涓涓漢鐨勬梾琛?ACM 2066 IN HDU http://m.shnenglu.com/MiYu/archive/2010/08/15/123487.htmlMiYuMiYuSun, 15 Aug 2010 03:31:00 GMThttp://m.shnenglu.com/MiYu/archive/2010/08/15/123487.htmlhttp://m.shnenglu.com/MiYu/comments/123487.htmlhttp://m.shnenglu.com/MiYu/archive/2010/08/15/123487.html#Feedback0http://m.shnenglu.com/MiYu/comments/commentRss/123487.htmlhttp://m.shnenglu.com/MiYu/services/trackbacks/123487.htmlMiYu鍘熷垱, 杞笘璇鋒敞鏄?: 杞澆鑷?______________鐧界櫧銇眿

棰樼洰鍦板潃:
         http://acm.hdu.edu.cn/showproblem.php?pid=2066
棰樼洰鎻忚堪:
涓涓漢鐨勬梾琛?br>Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 
4077    Accepted Submission(s): 1348


Problem Description
铏界劧鑽夊効鏄釜璺棿錛堝氨鏄湪鏉數寰呬簡涓騫村錛屽眳鐒惰繕浼氬湪鏍″洯閲岃糠璺殑浜猴紝姹?/span>~),浣嗘槸鑽夊効浠嶇劧寰堝枩嬈㈡梾琛岋紝鍥犱負鍦ㄦ梾閫斾腑 浼氶亣瑙佸緢澶氫漢錛堢櫧椹帇瀛愶紝^0^錛夛紝寰堝浜嬶紝榪樿兘涓板瘜鑷繁鐨勯槄鍘嗭紝榪樺彲浠ョ湅緹庝附鐨勯鏅?#8230;…鑽夊効鎯沖幓寰堝鍦版柟錛屽ス鎯寵鍘諱笢浜搧濉旂湅澶滄櫙錛屽幓濞佸凹鏂湅鐢靛獎錛屽幓闃蟲槑灞變笂鐪嬫搗鑺嬶紝鍘葷航綰︾函綺圭湅闆櫙錛屽幓宸撮粠鍠濆挅鍟″啓淇★紝鍘誨寳浜帰鏈涘瓱濮滃コ……鐪肩湅瀵掑亣灝卞揩鍒頒簡錛岃繖涔堜竴澶ф鏃墮棿錛屽彲涓嶈兘嫻垂鍟婏紝涓瀹氳緇欒嚜宸卞ソ濂界殑鏀句釜鍋囷紝鍙槸涔熶笉鑳借崚搴熶簡璁粌鍟婏紝鎵浠ヨ崏鍎垮喅瀹氬湪瑕佸湪鏈鐭殑鏃墮棿鍘諱竴涓嚜宸辨兂鍘葷殑鍦版柟錛佸洜涓鴻崏鍎跨殑瀹跺湪涓涓皬闀囦笂錛屾病鏈夌伀杞︾粡榪囷紝鎵浠ュス鍙兘鍘婚偦榪戠殑鍩庡競鍧愮伀杞︼紙濂藉彲鎬滃晩~錛夈?br> 

Input
杈撳叆鏁版嵁鏈夊緇勶紝姣忕粍鐨勭涓琛屾槸涓変釜鏁存暟T錛孲鍜孌錛岃〃紺烘湁T鏉¤礬錛屽拰鑽夊効瀹剁浉閭葷殑鍩庡競鐨勬湁S涓紝鑽夊効鎯沖幓鐨勫湴鏂規(guī)湁D涓紱
鎺ョ潃鏈塗琛岋紝姣忚鏈変笁涓暣鏁癮錛宐錛宼ime,琛ㄧずa,b鍩庡競涔嬮棿鐨勮濺紼嬫槸time灝忔椂錛?
1=<(a,b)<=1000;a,b 涔嬮棿鍙兘鏈夊鏉¤礬)
鎺ョ潃鐨勭T
+1琛屾湁S涓暟錛岃〃紺哄拰鑽夊効瀹剁浉榪炵殑鍩庡競錛?br>鎺ョ潃鐨勭T+2琛屾湁D涓暟錛岃〃紺鴻崏鍎挎兂鍘誨湴鏂廣?br> 

Output
杈撳嚭鑽夊効鑳藉幓鏌愪釜鍠滄鐨勫煄甯傜殑鏈鐭椂闂淬?br> 

Sample Input
6 2 3
1 3 5
1 4 7
2 8 12
3 8 4
4 9 12
9 10 2
1 2
8 9 10
 

Sample Output
9

棰樼洰鍒嗘瀽:
        鍒氬紑濮嬪仛鐨勬椂鍊欎篃娌″仛鍒嗘瀽, 鐩存帴灝辨槸鏋氫婦姣忎釜璧風偣鍒版瘡涓粓鐐圭殑 鏈鐭窛紱? 鐒跺悗鍙栨渶鐭殑璺?  寰堟樉鐒? TLE.................
榪樻槸鑷繁娌℃湁鎶奃IJKSTRA 綆楁硶鐞嗚В濂?... 鍐嶆鐪嬩簡涓閬嶇畻娉曠殑鎻忚堪鍜屾暟鎹粨鏋勪功涓婄殑 sample鍚?鍙戠幇, 鍏跺疄綆楁硶鎵ц榪囩▼涓?br>宸茬粡鎶婅搗鐐瑰埌鍏朵粬鐐圭殑鏈鐭窛紱誨叏閮ㄧ畻鍑烘潵浜? 鎵浠ュ彧闇瑕?鏋氫婦姣忎釜璧風偣灝卞彲浠ヤ簡, 鍏村涔嬩笅, 椹笂淇敼浜嗕唬鐮? Submit! ......
寰?鏉叿, 榪樻槸tle ...... 涓嶆槑鐧戒負浠涔?....鐪嬬綉涓婂叾浠栦漢鍐欑殑 瑙i鎶ュ憡 , 鍘熸潵寰堝浜轟篃鏄繖鍋氱殑, 鏋氫婦璧峰鐐? 浣嗘槸浠栦滑鐨勫嵈鍙互AC.
铏界劧鏃墮棿涓鑸槸 100MS宸﹀彸. 榪欓噷鎴戜竴鐩村緢綰犵粨, 涓嶆槑鐧藉悓鏍風殑綆楁硶涓轟粈涔堟垜鐨勪細TLE.    
         鍦?AMB 澶х墰鐨勬彁紺轟笅, 涓嶉渶瑕佸叏閮ㄦ灇涓? 鍙鎶婃墍鏈夎搗鐐圭殑璺濈閮借緗垚0灝卞彲浠ヤ簡,  浣嗘槸涓嶇煡閬撲負浠涔? 榪樻槸涓鐩碩LE.

鏈鍚庣殑鍔炴硶鏄?   璁劇疆涓涓搗鐐規(guī)寚鍚戞墍鏈夎搗鐐? 涔嬮棿鐨勮窛紱昏緗負 1, 鍚屾牱 璁劇疆涓涓粓鐐規(guī)寚鍚戞墍鏈夌粓鐐? 璺濈鍚屾牱璁劇疆涓?, 鏈鍚?br>浣跨敤 DIJKSTRA 綆楁硶 姹傚嚭璧風偣鍒扮粓鐐圭殑鏈鐭窛紱?- 2 灝辮浜? 

浠g爜濡備笅:
#include <iostream>
using namespace std;
const int INF = 0x7FFFFFFF;
int T,S,D,L;
const int MAXN=1005;    //鐐逛釜鏁?/span>
int graph[MAXN][MAXN];
int s[MAXN];
int d[MAXN];
int Dijkstra ( int beg, int end )
{
    
bool hash[MAXN];
    
int path[MAXN];
    
for ( int i = 0; i <= L; ++ i )
    {
          hash[i] 
= true;
          path[i] 
= INF; 
    } 
    hash[beg] 
= false;
    path[beg] 
= 0;
    
while ( beg != end )
    {
           
for ( int i = 0; i <= L; ++ i )
           {
                 
if ( graph[beg][i] != 0 )
                 {
                      
if ( path[i] > path[beg] + graph[beg][i] ) 
                           path[i] 
= path[beg] + graph[beg][i];
                 } 
           } 
           
int min = INF;
           
for ( int i = 0; i <= L; ++ i )
           {
                 
if ( min > path[i] && hash[i] )
                 {
                      min 
= path[i];
                      beg 
= i; 
                 } 
           }
           hash[beg] 
= false;
    }   
    
return path[end];
}

int main ()

    
while ( scanf ( "%d%d%d",&T,&S,&D ) != EOF )
    {
          memset ( graph , 
0 , sizeof ( graph ) );
          L 
= 0;
          
for ( int i = 1; i <= T; ++ i )
          {
                
int r,c,cost;
                scanf ( 
"%d%d%d",&r,&c,&cost );
                
if ( graph[r][c] == 0 )
                     graph[r][c] 
= graph[c][r] = cost ;
                
else
                {
                     
if ( cost < graph[r][c] ) 
                          graph[r][c] 
= graph[c][r] = cost ;
                }
                
if ( L < max ( r,c ) )
                     L 
= max ( r,c );
          } 
          
for ( int i = 0; i != S; ++ i )
          {
               scanf ( 
"%d",&s[i] );
               graph[
0][ s[i] ] = 1
               graph[ s[i] ][
0= 1;     
          }
          L 
++;
          
for ( int i = 0; i != D; ++ i )
          {
               scanf ( 
"%d",&d[i] );
               graph[ d[i] ][ L ] 
= 1;
               graph[ L ][ d[i] ] 
= 1;
          }
          
          cout 
<< Dijkstra ( 0,L ) - 2 << endl;  
    }
    
return 0



欏轟究 0rz 涓嬪ぇ鐗?浠g爜:
#include <iostream>
#define MAX 1005
#define INF 0x7FFF
#define CMP(A,B) (A.d < B.d)
using namespace std;
int d[MAX][MAX];
class HNode {
      
public:
              
int v;
              
int d;
};
class Heap {
public:
        HNode h[MAX 
* 2];
        
int n, p, c;
        Heap() {
                n 
= 0;
        }
        
void inline ins(HNode e) {
                
for (p = ++n; p > 1 && CMP(e,h[p>>1]); h[p] = h[p>>1], p >>= 1)
                        ;
                h[p] 
= e;
        }
        
int inline pop(HNode &e) {
                
if (!n)
                        
return 0;
                
for (e = h[p = 1], c = 2; c < n
                                
&& CMP(h[c += (CMP(h[c + 1],h[c]) && c < n - 1)], h[n]);
                                h[p] 
= h[c], p = c, c <<= 1)
                        ;
                h[p] 
= h[n--];
                
return 1;
        }
};
int Dijkstra(int A, int B, int N) {
        
int dist[MAX];
        
int mask[MAX];
        
int Tmp;
        Heap h;
        HNode e, ne;

        
for (int i = 0; i < N; i++) {
                dist[i] 
= INF;
                mask[i] 
= 0;
        }
        dist[e.v 
= A] = (e.d = 0);
        h.ins(e);
        
while (h.pop(e)) {
                
if (!mask[e.v]) {
                        mask[e.v] 
= 1;
                        
for (int i = 0; i < N; i++) {
                                
if (!mask[i] && (Tmp = e.d + d[e.v][i])
                                                
< dist[i]) {
                                        dist[ne.v 
= i] = (ne.d = Tmp);
                                        h.ins(ne);
                                }
                        }
                }
        }
        
return dist[B];
}
int main() {
        
int T, S, D, M;
        
int st, en, tm;
        
while (scanf("%d %d %d"&T, &S, &D)!=EOF) {
                M 
= 0;
                
for (int i = 0; i < MAX; i++)
                        
for (int j = 0; j < MAX; j++)
                                d[i][j] 
= INF;
                
for (int i = 0; i < T; i++) {
                        scanf(
"%d %d %d"&st, &en, &tm);
                        
if (tm < d[st][en]) {
                                d[st][en] 
= d[en][st] = tm;
                        }

                        M 
= st> M ? st : M;
                        M 
= en> M ? en : M;
                }
                M 
= M + 1;
                
for (int i = 0; i < S; i++) {
                        scanf(
"%d"&st);
                        d[
0][st] = 1;
                        d[st][
0= 1;
                }

                
for (int i = 0; i < D; i++) {
                        scanf(
"%d"&en);
                        d[M][en] 
= 1;
                        d[en][M] 
= 1;
                }
                cout
<<Dijkstra(0, M, M+1)-2<<endl;
        }
        
return 0;
}



MiYu 2010-08-15 11:31 鍙戣〃璇勮
]]>
HDOJ 2544 HDU 2544 鏈鐭礬 ACM 2544 IN HDU http://m.shnenglu.com/MiYu/archive/2010/08/14/123447.htmlMiYuMiYuSat, 14 Aug 2010 10:28:00 GMThttp://m.shnenglu.com/MiYu/archive/2010/08/14/123447.htmlhttp://m.shnenglu.com/MiYu/comments/123447.htmlhttp://m.shnenglu.com/MiYu/archive/2010/08/14/123447.html#Feedback0http://m.shnenglu.com/MiYu/comments/commentRss/123447.htmlhttp://m.shnenglu.com/MiYu/services/trackbacks/123447.htmlMiYu鍘熷垱, 杞笘璇鋒敞鏄?: 杞澆鑷?______________鐧界櫧銇眿

棰樼洰鍦板潃:
         http://acm.hdu.edu.cn/showproblem.php?pid=2544
棰樼洰鎻忚堪:
鏈鐭礬
Time Limit: 
5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 
3844    Accepted Submission(s): 1628


Problem Description
鍦ㄦ瘡騫寸殑鏍¤禌閲岋紝鎵鏈夎繘鍏ュ喅璧涚殑鍚屽閮戒細鑾峰緱涓浠跺緢婕備寒鐨則
-shirt銆備絾鏄瘡褰撴垜浠殑宸ヤ綔浜哄憳鎶婁笂鐧句歡鐨勮。鏈嶄粠鍟嗗簵榪愬洖鍒拌禌鍦虹殑鏃跺欙紝鍗存槸闈炲父绱殑錛佹墍浠ョ幇鍦ㄤ粬浠兂瑕佸鎵炬渶鐭殑浠庡晢搴楀埌璧涘満鐨勮礬綰匡紝浣犲彲浠ュ府鍔╀粬浠悧錛?br>

 

Input
杈撳叆鍖呮嫭澶氱粍鏁版嵁銆傛瘡緇勬暟鎹涓琛屾槸涓や釜鏁存暟N銆丮錛圢
<=100錛孧<=10000錛夛紝N琛ㄧず鎴愰兘鐨勫ぇ琛椾笂鏈夊嚑涓礬鍙o紝鏍囧彿涓?鐨勮礬鍙f槸鍟嗗簵鎵鍦ㄥ湴錛屾爣鍙蜂負N鐨勮礬鍙f槸璧涘満鎵鍦ㄥ湴錛孧鍒欒〃紺哄湪鎴愰兘鏈夊嚑鏉¤礬銆侼=M=0琛ㄧず杈撳叆緇撴潫銆傛帴涓嬫潵M琛岋紝姣忚鍖呮嫭3涓暣鏁癆錛孊錛孋錛?/span>1<=A,B<=N,1<=C<=1000錛?琛ㄧず鍦ㄨ礬鍙涓庤礬鍙涔嬮棿鏈変竴鏉¤礬錛屾垜浠殑宸ヤ綔浜哄憳闇瑕丆鍒嗛挓鐨勬椂闂磋蛋榪囪繖鏉¤礬銆?br>杈撳叆淇濊瘉鑷沖皯瀛樺湪1鏉″晢搴楀埌璧涘満鐨勮礬綰褲?br>
 

Output
瀵逛簬姣忕粍杈撳叆錛岃緭鍑轟竴琛岋紝琛ㄧず宸ヤ綔浜哄憳浠庡晢搴楄蛋鍒拌禌鍦虹殑鏈鐭椂闂?br> 

Sample Input
2 1
1 2 3
3 3
1 2 5
2 3 5
3 1 2
0 0
 

Sample Output
3
2

棰樼洰鍒嗘瀽:
鏈鐭礬鐨勫叆闂ㄩ鐩? 鎴戜篃鏄垰鍒氭帴瑙? 寮濮嬩竴鐩存病鐪嬫槑鐧藉埌搴曟庝箞鍥炰簨, 鐫′簡涓瑙夐啋鏉? 鎶婃暟鎹粨鏋勪功緲誨嚭鏉ュ涔犱簡涓嬈?Dijkstra  緇堜簬鏄庣櫧浜?

Dijkstra綆楁硶鐨勫熀鏈濊礬鏄細
         鍋囪姣忎釜鐐歸兘鏈変竴瀵規(guī)爣鍙?(dj, pj)錛屽叾涓璬j鏄粠璧鋒簮鐐箂鍒扮偣j鐨勬渶鐭礬寰勭殑闀垮害 (浠庨《鐐瑰埌鍏舵湰韜殑鏈鐭礬寰勬槸闆惰礬(娌℃湁寮х殑璺?錛屽叾闀垮害絳変簬闆?錛?br>
pj鍒欐槸浠巗鍒癹鐨勬渶鐭礬寰勪腑j鐐圭殑鍓嶄竴鐐廣傛眰瑙d粠璧鋒簮鐐箂鍒扮偣j鐨勬渶鐭礬寰勭畻娉曠殑鍩烘湰榪囩▼濡備笅錛?br>
銆銆1) 鍒濆鍖栥傝搗婧愮偣璁劇疆涓猴細鈶?ds=0, ps涓虹┖;鈶?鎵鏈夊叾浠栫偣: di=∞, pi=?;鈶?鏍囪璧鋒簮鐐箂錛岃k=s,鍏朵粬鎵鏈夌偣璁句負鏈爣璁扮殑銆?br>
銆銆2) 媯楠屼粠鎵鏈夊凡鏍囪鐨勭偣k鍒板叾鐩存帴榪炴帴鐨勬湭鏍囪鐨勭偣j鐨勮窛紱伙紝騫惰緗細


dj=min錛籨j, dk+lkj錛?br>


寮忎腑錛宭kj鏄粠鐐筴鍒癹鐨勭洿鎺ヨ繛鎺ヨ窛紱匯?br>
銆銆3) 閫夊彇涓嬩竴涓偣銆備粠鎵鏈夋湭鏍囪鐨勭粨鐐逛腑錛岄夊彇dj 涓渶灝忕殑涓涓猧錛?br>


di=min錛籨j, 鎵鏈夋湭鏍囪鐨勭偣j錛?br>


鐐筰灝辮閫変負鏈鐭礬寰勪腑鐨勪竴鐐癸紝騫惰涓哄凡鏍囪鐨勩?br>
銆銆4) 鎵懼埌鐐筰鐨勫墠涓鐐廣備粠宸叉爣璁扮殑鐐逛腑鎵懼埌鐩存帴榪炴帴鍒扮偣i鐨勭偣j*錛屼綔涓哄墠涓鐐?璁劇疆錛歩=j*

銆銆5) 鏍囪鐐筰銆傚鏋滄墍鏈夌偣宸叉爣璁幫紝鍒欑畻娉曞畬鍏ㄦ帹鍑猴紝鍚﹀垯錛岃k=i錛岃漿鍒?) 鍐嶇戶緇?/p>


浠g爜濡備笅:
#include <iostream>
using namespace std;
const int INF = 0x7FFFFFFF;
const int MAX = 105;
int graph[MAX][MAX];
int N,M;
int Dijkstra ( int beg, int end )
{
    
bool hash[N+1];
    
int path[N+1];
    
for ( int i = 0; i <= N; ++ i )
    {
          hash[i] 
= true;
          path[i] 
= INF; 
    } 
    hash[beg] 
= false;
    path[beg] 
= 0;
    
while ( beg != end )
    {
           
for ( int i = 1; i <= N; ++ i )
           {
                 
if ( graph[beg][i] )
                 {
                      
if ( path[i] > path[beg] + graph[beg][i] ) 
                           path[i] 
= path[beg] + graph[beg][i];
                 } 
           } 
           
int min = INF;
           
for ( int i = 1; i <= N; ++ i )
           {
                 
if ( min > path[i] && hash[i] )
                 {
                      min 
= path[i];
                      beg 
= i; 
                 } 
           }
           hash[beg] 
= false;
    }
    
return path[end];
}

int main ()

    
while ( scanf ( "%d%d",&N,&M ) , N + M )
    {
          memset ( graph , 
0 , sizeof ( graph ) );
          
for ( int i = 1; i <= M; ++ i )
          {
                
int r,c,cost;
                scanf ( 
"%d%d%d",&r,&c,&cost );
                
if ( graph[r][c] == 0 )
                     graph[r][c] 
= graph[c][r] = cost ;
                
else
                {
                     
if ( cost < graph[r][c] ) 
                          graph[r][c] 
= graph[c][r] = cost ;
                }
          } 
          cout 
<< Dijkstra ( 1,N ) << endl;;
    }
    
return 0



MiYu 2010-08-14 18:28 鍙戣〃璇勮
]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            经典三级久久| 亚洲精品一品区二品区三品区| 欧美精品一区二区视频| 性欧美激情精品| 欧美一级一区| 久久久国产一区二区| 亚洲欧美自拍偷拍| 久久亚洲综合网| 久久久人成影片一区二区三区观看 | 久久精品国产在热久久| 欧美一区二区三区四区夜夜大片 | 欧美午夜精品| 欧美日韩在线一区二区| 国产精品毛片大码女人| 国产日韩精品久久| 亚洲破处大片| 久久精品国产精品亚洲| 久久夜色精品国产| 亚洲精品裸体| 亚洲在线视频网站| 欧美成人在线免费视频| 国产精品永久免费观看| 亚洲人成欧美中文字幕| 亚洲欧美一区二区三区极速播放| 久久精品色图| 欧美日韩综合久久| 亚洲国产毛片完整版| 久久av一区二区三区| 最新国产拍偷乱拍精品| 久久久天天操| 国语自产在线不卡| 久久精品视频在线| 亚洲欧美色婷婷| 国产精品亚洲一区| 久久国产日韩| 欧美在线不卡| 激情久久久久久久| 久久综合色综合88| 久久久久女教师免费一区| 国产最新精品精品你懂的| 久久夜色精品国产欧美乱极品| 亚洲欧美日韩综合| 激情成人av| 亚洲国产裸拍裸体视频在线观看乱了中文| 久久av资源网站| 亚洲国产第一| 亚洲人精品午夜在线观看| 欧美日韩福利视频| 亚洲专区在线视频| 欧美一区二视频| 亚洲精品乱码久久久久| 一区二区日韩免费看| 国产精品久久久久一区| 久久久国产精品一区二区中文| 久久国产精品毛片| 亚洲免费观看在线视频| 午夜精品福利一区二区蜜股av| 亚洲国产精品福利| 亚洲婷婷免费| 老司机精品视频网站| 亚洲深夜福利网站| 麻豆成人av| 久久99在线观看| 欧美日韩精品免费观看| 午夜精品美女久久久久av福利| 你懂的成人av| 欧美尤物一区| 欧美三日本三级三级在线播放| 欧美在线播放一区| 国产精品v亚洲精品v日韩精品| 久久久久久久久岛国免费| 蜜乳av另类精品一区二区| 久久久久久久综合狠狠综合| 欧美精品亚洲精品| 亚洲国产91色在线| 在线观看国产精品淫| 欧美专区日韩视频| 久久久久久97三级| 韩国美女久久| 美女诱惑一区| 91久久亚洲| 一本一本久久a久久精品综合麻豆 一本一本久久a久久精品牛牛影视 | 久久久在线视频| 欧美在线国产| 国产一区二区视频在线观看| 制服诱惑一区二区| 亚洲一区二区三区777| 欧美日韩免费网站| 一区二区三区黄色| 亚洲国产裸拍裸体视频在线观看乱了中文| 一区二区三欧美| 国产视频久久| 午夜在线观看欧美| 亚洲福利视频网站| 一区二区三区四区国产精品| 国产精品系列在线| 老司机午夜精品视频在线观看| 欧美国产日本韩| 先锋影院在线亚洲| 日韩午夜在线| 一区二区三区在线视频观看| 欧美www视频在线观看| 9色porny自拍视频一区二区| 久久亚洲国产精品日日av夜夜| 亚洲精品免费一二三区| 国产精品网站在线观看| 欧美激情精品久久久| 翔田千里一区二区| 一本久道久久久| 91久久精品国产91久久| 老司机精品导航| 久久一区二区精品| 久久久久久久久蜜桃| 欧美一区二区黄色| 篠田优中文在线播放第一区| 亚洲美女黄色| 亚洲毛片av| 9色国产精品| 亚洲综合色婷婷| 欧美一级欧美一级在线播放| 亚洲视频在线观看一区| 在线亚洲观看| 欧美自拍丝袜亚洲| 久久精品国产一区二区电影 | 亚洲国产精品久久久久秋霞影院 | 欧美xxxx在线观看| 欧美激情第六页| 欧美日韩国产成人在线91| 欧美日韩免费观看一区=区三区| 午夜精品久久久99热福利| 亚洲婷婷免费| 乱码第一页成人| 欧美日韩国产免费| 国产欧美日韩综合精品二区| 亚洲精品乱码久久久久久蜜桃91| 久久久久久综合| 欧美精品在线观看播放| 国产老女人精品毛片久久| 亚洲国产精品久久久久| 亚洲欧美日韩区| 亚洲国产日日夜夜| 久久国产精品久久久久久久久久 | 一区二区三区在线高清| 亚洲美女在线国产| 男女av一区三区二区色多| 亚洲在线中文字幕| 国产精品成人在线| 99国产精品久久久久老师 | 一二美女精品欧洲| 亚洲国产精品久久久久秋霞不卡| 亚洲午夜国产成人av电影男同| 欧美国产精品日韩| 亚洲国产成人久久| 久久在精品线影院精品国产| 亚洲免费中文| 136国产福利精品导航网址应用| 欧美在线一二三| 久久久久久久久久码影片| 国产精品一区二区三区久久久| 免费看黄裸体一级大秀欧美| 国产欧美精品一区aⅴ影院| 亚洲欧美一级二级三级| 日韩一区二区免费高清| 国产精品自在欧美一区| 久久中文字幕导航| 欧美精品日韩综合在线| 亚洲一区自拍| 久久综合九色综合欧美就去吻| 亚洲欧洲日韩女同| 亚洲欧美日韩区| 一区二区三区四区五区精品| 午夜精品美女久久久久av福利| 亚洲电影av| 欧美一级淫片播放口| 日韩视频在线观看国产| 亚洲永久视频| 一区二区电影免费在线观看| 夜夜夜精品看看| 亚洲电影成人| 欧美亚洲一区在线| 午夜精品一区二区三区在线播放| 蜜臀av一级做a爰片久久| 久久不射2019中文字幕| 欧美日本一区| 欧美国产高清| 91久久久久| 你懂的视频一区二区| 久久综合图片| 在线看成人片| 欧美在线日韩| 久久精品中文字幕免费mv| 国产精品网站一区| 欧美亚洲视频在线看网址| 亚洲欧美日韩中文在线制服| 欧美三级欧美一级| 999亚洲国产精| 久久国产欧美日韩精品| 国产亚洲欧美一区二区三区| 久久久噜噜噜久噜久久 | 亚洲视频999|