锘??xml version="1.0" encoding="utf-8" standalone="yes"?>极品裸体白嫩激情啪啪国产精品,久久婷婷国产麻豆91天堂,一区二区欧美在线http://www.shnenglu.com/luyulaile/category/11037.htmlI canzh-cnSun, 17 Jun 2012 01:43:35 GMTSun, 17 Jun 2012 01:43:35 GMT60Dijkstra(榪澃鏂壒鎷?綆楁硶http://www.shnenglu.com/luyulaile/archive/2012/06/16/179006.htmlluisluisFri, 15 Jun 2012 19:53:00 GMThttp://www.shnenglu.com/luyulaile/archive/2012/06/16/179006.htmlhttp://www.shnenglu.com/luyulaile/comments/179006.htmlhttp://www.shnenglu.com/luyulaile/archive/2012/06/16/179006.html#Feedback0http://www.shnenglu.com/luyulaile/comments/commentRss/179006.htmlhttp://www.shnenglu.com/luyulaile/services/trackbacks/179006.html銆Dijkstra(榪澃鏂壒鎷?綆楁硶鏄吀鍨嬬殑鍗曟簮鏈鐭礬寰勭畻娉曪紝鐢ㄤ簬璁$畻涓涓妭鐐瑰埌鍏朵粬鎵鏈夎妭鐐圭殑鏈鐭礬寰勩備富瑕佺壒鐐規槸浠ヨ搗濮嬬偣涓轟腑蹇冨悜澶栧眰灞傛墿灞曪紝鐩村埌鎵╁睍鍒扮粓鐐逛負姝€侱ijkstra綆楁硶鏄緢鏈変唬琛ㄦх殑鏈鐭礬寰勭畻娉曪紝鍦ㄥ緢澶氫笓涓氳紼嬩腑閮戒綔涓哄熀鏈唴瀹規湁璇︾粏鐨勪粙緇嶏紝濡傛暟鎹粨鏋勶紝鍥捐錛岃繍絳瑰絳夌瓑銆侱ijkstra涓鑸殑琛ㄨ堪閫氬父鏈変袱縐嶆柟寮忥紝涓縐嶇敤姘鎬箙鍜屼復鏃舵爣鍙鋒柟寮忥紝涓縐嶆槸鐢∣PEN, CLOSE琛ㄧ殑鏂瑰紡錛岃繖閲屽潎閲囩敤姘鎬箙鍜屼復鏃舵爣鍙風殑鏂瑰紡銆傛敞鎰忚綆楁硶瑕佹眰鍥句腑涓嶅瓨鍦ㄨ礋鏉冭竟銆?/span>

闂鎻忚堪

銆銆鍦ㄦ棤鍚戝浘 G=(V,E) 涓紝鍋囪姣忔潯杈?E[i] 鐨勯暱搴︿負 w[i]錛屾壘鍒扮敱欏剁偣 V0 鍒板叾浣欏悇鐐圭殑鏈鐭礬寰勩傦紙鍗曟簮鏈鐭礬寰?/a>錛?/span> 


榪澃鏂壒鎷?/a>(Dijkstra)綆楁硶鎬濇兂
銆銆
鎸夎礬寰勯暱搴﹂掑嬈″簭浜х敓鏈鐭礬寰勭畻娉曪細
銆銆鎶奦鍒嗘垚涓ょ粍錛?/span>
銆銆錛?錛塖錛氬凡姹傚嚭鏈鐭礬寰勭殑欏剁偣鐨勯泦鍚?/span>
銆銆錛?錛塚-S=T錛氬皻鏈‘瀹氭渶鐭礬寰勭殑欏剁偣闆嗗悎
銆銆灝員涓《鐐規寜鏈鐭礬寰勯掑鐨勬搴忓姞鍏ュ埌S涓紝
銆銆淇濊瘉錛氾紙1錛変粠婧愮偣V0鍒癝涓悇欏剁偣鐨勬渶鐭礬寰勯暱搴﹂兘涓嶅ぇ浜?/span>
銆銆浠嶸0鍒癟涓換浣曢《鐐圭殑鏈鐭礬寰勯暱搴?/span>
銆銆錛?錛夋瘡涓《鐐瑰搴斾竴涓窛紱誨?/span>
銆銆S涓《鐐癸細浠嶸0鍒版欏剁偣鐨勬渶鐭礬寰勯暱搴?/span>
銆銆T涓《鐐癸細浠嶸0鍒版欏剁偣鐨勫彧鍖呮嫭S涓《鐐逛綔涓棿
銆銆欏剁偣鐨勬渶鐭礬寰勯暱搴?/span>
銆銆渚濇嵁錛氬彲浠ヨ瘉鏄嶸0鍒癟涓《鐐筕k鐨勬渶鐭礬寰勶紝鎴栨槸浠嶸0鍒癡k鐨?/span>
銆銆鐩存帴璺緞鐨勬潈鍊鹼紱鎴栨槸浠嶸0緇廠涓《鐐瑰埌Vk鐨勮礬寰勬潈鍊間箣鍜?/span>
銆銆錛堝弽璇佹硶鍙瘉錛?/span>
銆銆姹傛渶鐭礬寰勬楠?/em>
銆銆綆楁硶姝ラ濡備笅錛?/span>
銆銆1. 鍒濅嬌鏃朵護 S={V0},T={鍏朵綑欏剁偣}錛孴涓《鐐瑰搴旂殑璺濈鍊?/span>
銆銆鑻ュ瓨鍦?lt;V0,Vi>錛宒(V0,Vi)涓?lt;V0,Vi>寮т笂鐨勬潈鍊?/span>
銆銆鑻ヤ笉瀛樺湪<V0,Vi>錛宒(V0,Vi)涓?#8733;
銆銆2. 浠嶵涓夊彇涓涓叾璺濈鍊間負鏈灝忕殑欏剁偣W涓斾笉鍦⊿涓紝鍔犲叆S
銆銆3. 瀵筎涓《鐐圭殑璺濈鍊艱繘琛屼慨鏀癸細鑻ュ姞榪沇浣滀腑闂撮《鐐癸紝浠嶸0鍒癡i鐨?/span>
銆銆璺濈鍊兼瘮涓嶅姞W鐨勮礬寰勮鐭紝鍒欎慨鏀規璺濈鍊?/span>
銆銆閲嶅涓婅堪姝ラ2銆?錛岀洿鍒癝涓寘鍚墍鏈夐《鐐癸紝鍗砈=T涓烘 

浠g爜錛?婧愬湴鍧錛?span style="color: #008000; font-size: 13px; background-color: #eeeeee; ">www.cnblogs.com/newwy
 

/*********************************
*   鏈鐭礬寰?--Dijkstra綆楁硶瀹炵幇 
*   銆銆銆HDU錛?544 
*   BLOG:www.cnblogs.com/newwy
*   AUTHOR:Wang Yong
*********************************
*/
#include <iostream>
#define MAX 100
#define INF 1000000000
using namespace std;
 int dijkstra (int mat[][MAX],int n, int s,int f)
 {
     int dis[MAX];
     int mark[MAX];//璁板綍琚変腑鐨勭粨鐐?nbsp;
     int i,j,k = 0;
     for(i = 0 ; i < n ; i++)//鍒濆鍖栨墍鏈夌粨鐐癸紝姣忎釜緇撶偣閮芥病鏈夎閫変腑 
         mark[i] = 0;
    for(i = 0 ; i < n ; i++)//灝嗘瘡涓粨鐐瑰埌start緇撶偣weight璁板綍涓哄綋鍓峝istance 
    {
        dis[i] = mat[s][i];
        //path[i] = s;
    }
    mark[s] = 1;//start緇撶偣琚変腑 
    
//path[s] = 0;
    dis[s] = 0;//灝唖tart緇撶偣鐨勭殑璺濈璁劇疆涓? 
    int min ;//璁劇疆鏈鐭殑璺濈銆?nbsp;
    for(i = 1 ; i < n; i++)
    {
        min = INF;
        for(j = 0 ; j < n;j++)
        {
            if(mark[j] == 0  && dis[j] < min)//鏈閫変腑鐨勭粨鐐逛腑錛岃窛紱繪渶鐭殑琚変腑 
            {
                min = dis[j] ;
                k = j;
            }
        }
        mark[k] = 1;//鏍囪涓鴻閫変腑 
        for(j = 0 ; j < n ; j++)
        {
            if( mark[j] == 0  && (dis[j] > (dis[k] + mat[k][j])))//淇敼鍓╀綑緇撶偣鐨勬渶鐭窛紱?nbsp;
            {
                dis[j] = dis[k] + mat[k][j];
            }
        }
    }
    return dis[f];    
 } 
 int mat[MAX][MAX];
int main()
{
    int n,m;
    while(scanf("%d %d",&n,&m))
    {
        int a,b,dis;
        if(n == 0 || m == 0)
            break;
        int i,j;
        for(i = 0 ; i < n;i++)
            for(j = 0 ; j < n; j++)
                mat[i][j] = INF;
        for(i = 0 ; i < m ;i++)
        {
            scanf("%d %d %d",&a,&b,&dis);
            --a,--b;
            if(dis < mat[a][b] || dis < mat[b][a])
            mat[a][b] = mat[b][a] = dis;
        }
        int ans = dijkstra(mat,n,0,n-1);
        printf("%d\n",ans);
    }
 
}

鍙敤 浼樺厛闃熷垪浼樺寲


鍏朵粬瑙i噴錛?br />
http://blog.csdn.net/jiahui524/article/details/6636913 

luis 2012-06-16 03:53 鍙戣〃璇勮
]]>
dijkstra綆楁硶 鏈灝忓爢浼樺寲 <涓嶇敤stl>杞笘http://www.shnenglu.com/luyulaile/archive/2009/08/09/92739.htmlluisluisSun, 09 Aug 2009 13:28:00 GMThttp://www.shnenglu.com/luyulaile/archive/2009/08/09/92739.htmlhttp://www.shnenglu.com/luyulaile/comments/92739.htmlhttp://www.shnenglu.com/luyulaile/archive/2009/08/09/92739.html#Feedback0http://www.shnenglu.com/luyulaile/comments/commentRss/92739.htmlhttp://www.shnenglu.com/luyulaile/services/trackbacks/92739.html------------
妯℃澘鏄疕DOJ 2544
鎴戝啓鐨勬槸璁板綍姣忎釜鐐瑰湪鍫嗕腑鐨勪綅緗甀ncreaseKey錛屼篃鍙互Relax鍚庣洿鎺ュ線閲屾彃錛岀敤涓猙ool鏁扮粍璁板綍涓涓?br>
-----
浼樺寲涔嬪鍦ㄤ簬鏃墮棿澶嶆潅搴︾敱n^2鍙樹負nlgn
-----
#include<cstdio>
#include<cstdlib>

int n,m;
int map[101][101],d[101];

class Heap
{
    public:
        int handle[101];
        void Build(int n)
        {
            for(int i=1;i<=n;i++) a[i]=handle[i]=i;
            size=n;
        }
        void Percup(int p)
        {
            int temp=a[p];
            for(;d[temp]<d[a[p>>1]];p>>=1)
            {
                a[p]=a[p>>1];
                handle[a[p]]=p;
            }
            a[p]=temp;
            handle[a[p]]=p;
        }
        int DeleteMin()
        {
            int val=a[1];
            a[1]=a[size--];
            Percdown(1);
            handle[val]=0;
            return val;
        }
        bool Empty() {return size==0;}
    private:
        int a[101],size;
        void Percdown(int p)
        {
            int temp=a[p],child;
            for(;(p<<1)<=size;p=child)
            {
                child=p<<1;
                if(child+1<=size && d[a[child+1]]<d[a[child]]) child++;
                if(d[temp]<d[a[child]]) break;
                a[p]=a[child];
                handle[a[p]]=p;
            }
            a[p]=temp;
            handle[a[p]]=p;
        }
}h;

void init()
{
    int i,j,c;
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=n;j++) map[i][j]=0x7fffffff;
        d[i]=0x7fffffff;
    }
    d[1]=0;
    while(m--)
    {
        scanf("%d%d%d",&i,&j,&c);
        map[i][j]=map[j][i]=c;
    }
}

void Relax(int num)
{
    for(int i=1;i<=n;i++)
        if(h.handle[i] && map[num][i]!=0x7fffffff && d[i]>d[num]+map[num][i])
        {
            d[i]=d[num]+map[num][i];
            h.Percup(h.handle[i]);
        }
}

void dijk()
{
    h.Build(n);
    while(!h.Empty()) Relax(h.DeleteMin());
}

int main()
{
    while(scanf("%d%d",&n,&m) && n+m)
    {
        init();
        dijk();
        printf("%d\n",d[n]);
    }
    system("pause");
    return 0;
}
---------------------
鍙︿竴涓増鏈?br>
#include <stdio.h>
const int SIZE= 30005, MAXX=2000000000;
int n,m,tail, dist[SIZE];
bool mark[SIZE];
struct Node
{
int id, val;
Node* next;
}node[SIZE];
struct Heap{
int id, val;
}heap[2*SIZE];
void insert(int a, int b, int val)
{
Node* p = new Node;
p->id = a;
p->val = val;
p->next = node[b].next;
node[b].next = p;
}
void heappush(int id, int val)
{
heap[++tail].id = id;
heap[tail].val = val;
int child, parent, temp;
child = tail;
while((parent = child/2)>=1)
{
if(heap[child].val < heap[parent].val) // child's val < parent's val ; swap ,filter
{
temp = heap[child].id;
heap[child].id = heap[parent].id;
heap[parent].id = temp;
temp = heap[child].val;
heap[child].val = heap[parent].val;
heap[parent].val = temp;
child = parent;
}
else
break;
}
}
int heappop()
{
int child, parent, temp,ret;
ret = heap[1].id;
heap[1].id = heap[tail].id; 
// swap the tail to the root
heap[1].val = heap[tail--].val;
parent = 1;
while((child=2*parent)<=tail)
{
if(child+1<=tail && heap[child+1].val < heap[child].val)
child++;
if(heap[child].val<heap[parent].val)
{
temp = heap[child].id;
heap[child].id = heap[parent].id;
heap[parent].id = temp;
temp = heap[child].val;
heap[child].val = heap[parent].val;
heap[parent].val = temp;
parent = child;
}
else
break;
}
return ret;
}
int dijkstra(int s, int t)
{
int i;
for(i=1; i<=n; i++)
{
dist[i] = MAXX;
mark[i] = false;
}
Node* p;
p = node[s].next;
while(p)
{
dist[p->id] = p->val;
heappush(p->id, p->val);
p = p->next;
}
mark[s] = true; dist[s] = 0;
for(i=1; i<n; i++)
{
int pop = heappop();
while(mark[pop])
pop = heappop();
if(pop ==t || dist[pop]==MAXX)	break;
mark[pop] = true;
p = node[pop].next;
while(p)
{
if(!mark[p->id]&&
(dist[p->id]==MAXX || dist[pop]+p->val< dist[p->id]))
{
dist[p->id] = dist[pop] + p->val;
heappush(p->id, dist[p->id]);
}
p = p->next;
}
}
return dist[t];
}
int main()
{
int i,a,b,c;
scanf("%d%d", &n, &m);
for(i=1; i<=m; i++)
{
scanf("%d%d%d", &a, &b, &c);
insert(a, b, c);
}
printf("%d\n", dijkstra(n,1));
return 0;
}


luis 2009-08-09 21:28 鍙戣〃璇勮
]]>
姹傛渶灝忔敮鎾戞暟 prim綆楁硶 瀹炵幇http://www.shnenglu.com/luyulaile/archive/2009/08/09/92730.htmlluisluisSun, 09 Aug 2009 11:52:00 GMThttp://www.shnenglu.com/luyulaile/archive/2009/08/09/92730.htmlhttp://www.shnenglu.com/luyulaile/comments/92730.htmlhttp://www.shnenglu.com/luyulaile/archive/2009/08/09/92730.html#Feedback0http://www.shnenglu.com/luyulaile/comments/commentRss/92730.htmlhttp://www.shnenglu.com/luyulaile/services/trackbacks/92730.html#define MAX 0xfffffff
#define MaxVertex 21
//prim姹傛渶灝忔敮鎸佹爲錛屽鐢ㄤ簬姹傝竟紼犲瘑緗戠殑鏈灝忔敮鎸佹爲 鏃墮棿澶嶆潅搴(n*n)n涓洪《鐐規暟;
#define  vertextype int
int n;
bool s[MaxVertex];//璇ョ偣鏄惁琚闂?
vertextype cost[MaxVertex];
vertextype dist[MaxVertex][MaxVertex];
void Init()
{
 int i,j,a,b,c;
  scanf("%d",&n);//鍏堣緭鍏ョ偣涓暟
    for(i=1;i<=n;i++)
     for(j=1;j<=n;j++)
      dist[i][j]=MAX;
    while(scanf("%d%d%d",&a,&b,&c),a||b||c)//0 0 0琛ㄧず杈硅緭鍏ョ粨鏉?
     dist[a][b]=dist[b][a]=c;
    s[1]=true;//璇ョ偣宸茬粡琚闂?br>    for(i=2;i<=n;i++)
    {
     cost[i]=dist[1][i];
     s[i]=false;//鍒濆鍖栦負false
    }
}
int main()
{
 freopen("s.txt","r",stdin);
 freopen("key.txt","w",stdout); 
int i,j,k,m,a,b,c,best,min;
    best=0;
 Init();
for(i=1;i<n;i++)//i涓嶈兘絳変簬n錛屽洜涓簄-1鏉¤竟
{
 min=MAX;
 j=1;
 for(k=2;k<=n;k++)
  if(cost[k]<min&&(!s[k]))//  (1)
  {
   min=cost[k];
   j=k;
  }
  s[j]=true;
  best+=min;
  for(k=2;k<=n;k++)
  {
   if(dist[j][k]<cost[k]&&(!s[k]))//鍙兘鍑虹幇宸茬粡璁塊棶榪囩殑鐐筩ost[k]淇濇寔鍘熷鹼紝浣嗚繖娌℃湁鍏崇郴錛屼互涓哄湪涓婇潰鐨勫鐞嗘楠?1)涓笉瀵硅繖浜涜竟澶勭悊
  //dist[j][j]<cost[k]鐨勬瘮杈冨垯鏄負浜嗛噸鍒ら泦鍚圴鍒癡-U闆嗗悎鐨勭偣鐨勮窛紱伙紝娉ㄦ剰鏄暣涓泦鍚圴鍒板悇涓湭綰沖叆V鐨勭偣鐨勮窛紱伙紒
   cost[k]=dist[j][k];
  }
}
 printf("%d\n",best);
 return 0;
}
瀛︿互鑷寸敤 joj 1170

luis 2009-08-09 19:52 鍙戣〃璇勮
]]>
dijkstra鐨勯偦鎺ヨ〃瀹炵幇http://www.shnenglu.com/luyulaile/archive/2009/08/09/92683.htmlluisluisSun, 09 Aug 2009 03:19:00 GMThttp://www.shnenglu.com/luyulaile/archive/2009/08/09/92683.htmlhttp://www.shnenglu.com/luyulaile/comments/92683.htmlhttp://www.shnenglu.com/luyulaile/archive/2009/08/09/92683.html#Feedback1http://www.shnenglu.com/luyulaile/comments/commentRss/92683.htmlhttp://www.shnenglu.com/luyulaile/services/trackbacks/92683.htmlusing namespace std;
//姹傚崟婧愭渶灝忚礬寰勶紝涓嶅Θ璁炬簮鐐逛負1錛岀畻娉曟濇兂鏄?
//浠庢湭璁塊棶鐨勯《鐐逛腑閫夋嫨dv鏈灝忕殑鐐癸紙d涓轟粠璇ョ偣鍒版簮鐐?鐨勮窛紱伙級浠rcs[v][v]=1
//鑰冭檻v鐨勬墍鏈夐偦鎺ラ《鐐箇錛屼笉鏂皾璇曡嫢dv+weight(v,w)<dw錛屽垯鏀瑰彉dw鍊?
//榪欓噷閫夋嫨dv鏈灝忕殑寰堝叧閿紝鍥犱負鏈灝忥紝鎵浠ヨ偗瀹氭槸鏈鐭礬寰勶紝鍏朵粬鐨刣浼氫笉鏂洿鏂般?
 #define  MaxVertx 100//鏈澶氳竟闀垮害
 #define MAX 1e+8
 typedef char vertextype;
 typedef float adjtype;
 typedef struct{
  int n;//欏剁偣涓暟
  vertextype vertex[MaxVertx];
  adjtype arcs[MaxVertx][MaxVertx];//閭繪帴鐭╅樀褰㈠紡
 }Graph;
 typedef struct{
  vertextype vertex;//欏剁偣淇℃伅
  adjtype length;//鏈灝忛暱搴?nbsp;
  int  prev;//鏈鐭礬寰勪笂鍓嶉┍緇撶偣緙栧彿
 }Path;
 Path dist[MaxVertx];
 Graph graph;
 void init(Graph *pgraph,Path dist[])
 {
  int i;
  dist[0].length=0;
  dist[0].prev=0;
  dist[0].vertex=pgraph->vertex[0];//絎竴涓《鐐圭殑鍚嶇О/緙栧彿
  pgraph->arcs[0][0]=1; /* 琛ㄧず欏剁偣v0鍦ㄩ泦鍚圲涓?*/
  
   for(i = 1; i < pgraph->n; i++)              /* 鍒濆鍖栭泦鍚圴-U涓《鐐圭殑璺濈鍊?*/
    {
    dist[i].length=pgraph->arcs[0][i];
    dist[i].vertex=pgraph->vertex[i];
    if(dist[i].length!=MAX)
         dist[i].prev=0;
    else
         dist[i].prev=-1;            
    }
 }
 void dijkstra(Graph graph,Path dist[])
 {
  int i,j,minvex;
  adjtype min;
  init(&graph,dist); /* 鍒濆鍖栵紝姝ゆ椂闆嗗悎U涓彧鏈夐《鐐箆0*/
  for(i=1;i<graph.n;i++)//姣忎釜dist[]閮借姹?涓嶄竴瀹氫細鎵цn嬈★紝鍙兘浼歜reak鍑烘潵
  {
   min=MAX;
   minvex=0;
   for(j=1;j<graph.n;j++)/*鍦╒U涓夊嚭璺濈鍊兼渶灝忛《鐐?/
   if(graph.arcs[j][j]==0&&dist[j].length<min)
   {
    min=dist[j].length;
    minvex=j;
   }
   if(minvex==0)break;/* 浠巚0娌℃湁璺緞鍙互閫氬線闆嗗悎VU涓殑欏剁偣 */
   graph.arcs[minvex][minvex]=1;//琛ㄧず宸茬粡璁塊棶榪囦簡錛屼笉灞炰簬VU闆嗗悎
   for(j=1;j<graph.n;j++)
   {
    if(graph.arcs[j][j]==1)continue;
    if(dist[j].length > dist[minvex].length + graph.arcs[minvex][j])//濡傛灉涓嶇浉閭伙紝鍒檃rcs[minvex][minvex]=+鏃犵┓
    {
                dist[j].length = dist[minvex].length + graph.arcs[minvex][j];
                dist[j].prev = minvex;
        }
   }
  }
 }
 void initgraph()//鍒濆鍖栫煩闃?
 {
 int i,j;
    graph.n=6;
    for (i = 0; i < graph.n; i++)
        for (j = 0; j < graph.n; j++)
            graph.arcs[i][j] = (i == j ? 0 : MAX);
    graph.arcs[0][1] = 50;
    graph.arcs[0][2] = 10;
    graph.arcs[1][2] = 15;
    graph.arcs[1][4] = 5;
    graph.arcs[2][0] = 20;
    graph.arcs[2][3] = 15;
    graph.arcs[3][1] = 20;
    graph.arcs[3][4] = 35;
    graph.arcs[4][3] = 30;
    graph.arcs[5][3] = 3;
    graph.arcs[0][4] = 45; 
 }
  int main()
  {
  //freopen("s.txt","r",stdin);
  //freopen("key.txt","w",stdout);
   int i;
    initgraph();
    dijkstra(graph, dist);
    for (i = 0; i < graph.n; i++)
        printf("(%.0f %d)", dist[i].length,dist[i].prev);
    getchar();
 return 0;
  }


luis 2009-08-09 11:19 鍙戣〃璇勮
]]>
joj 2035 Leaf Nodeshttp://www.shnenglu.com/luyulaile/archive/2009/07/14/90082.htmlluisluisTue, 14 Jul 2009 14:14:00 GMThttp://www.shnenglu.com/luyulaile/archive/2009/07/14/90082.htmlhttp://www.shnenglu.com/luyulaile/comments/90082.htmlhttp://www.shnenglu.com/luyulaile/archive/2009/07/14/90082.html#Feedback0http://www.shnenglu.com/luyulaile/comments/commentRss/90082.htmlhttp://www.shnenglu.com/luyulaile/services/trackbacks/90082.html
Status In/Out TIME Limit MEMORY Limit Submit Times Solved Users JUDGE TYPE
stdin/stdout 1s 10240K 222 102 Standard

Kate is learning about binary tree. She think she know everything you know about binary trees. Wait, you don't know binary tree? Find a book about data structures, and it will just take you about three minutes. Now here is a binary tree:

                                    3
/ \
/   \
2     4
/ \     \
/   \     \
0     1     6
/
/
5

Kate think she also know something that you may not notice. First, for some type of binary trees, only the leaf nodes have the meaning (leaf node is the node which has no sub trees, for the tree above, the leaf nodes are 0 1 5), an example is the Huffman Tree. Second, she guess that if you know the preorder traversal and the postorder traversal of a binary tree, you can ensure the leaf node of the tree, and their order.

For the tree above, the preorder travesal is 3 2 0 1 4 6 5 and the postorder travesal is 0 1 2 5 6 4 3, the leaf nodes in order(from left to right) are 0 1 5.

But now the problem is she just guess it, if you can find a way to print a tree's leaf nodes in order using its preorder traversal and postorder traversal, you can say "she is right!"

Input Specification

The input file will contain one or more test cases. In each test case there is a integer n (0<=n <= 10000), indicating the tree have n nodes, then followed two lists of integers, either contains n integers in the range of 0 and n-1 (both included), the first list is the preorder traversal, and the other is the postorder traversal.

Input is terminated by an interger -1;

Output Specification

For each test case, print the tree's leaf nodes in order, each in a line.

Sample Input

7
3 2 0 1 4 6 5
0 1 2 5 6 4 3
-1

Sample Output

0
1
5
鏍規嵁涓涓噸瑕佺粨璁猴紝鏃犺鏄厛鏍硅繕鏄悗鏍歸亶鍘嗭紝宸﹀瓙鏍戠殑緇撶偣鎬繪槸鍑虹幇鍦ㄥ彸瀛愭爲緇撶偣鐨勫墠闈?br>
                                 G  
                                /   \  
                              F        B  
                            /        /   \  
                          K         C      H  
                        /   \             /        
                      D       E         J  
                        \  
                          A  
                        /  
                      I  
   
  涓嶈鍏堟牴鍚庢牴錛屽乏瀛愭爲鐨勭粨鐐規繪槸鍑虹幇鍦ㄥ彸瀛愭爲緇撶偣鐨勫墠闈€?nbsp; 
  G涓烘牴鏍戯紝鍏堟牴嬈″簭鏃禛鍚庤窡F錛屽悗鏍規搴忔椂F鍓嶆湁DIAEKF錛屾晠DIAEKF涓篏鐨勫乏瀛愭爲鐨勭粨鐐癸紝
  CJHB涓篏鐨勫彸瀛愭爲鐨勭粨鐐廣備笖宸﹀彸瀛愭爲鐨勫厛鏍瑰簭涓猴細FKDIAE錛孊CHJ銆?br>  閫掑綊澶勭悊涓ゅ瓙鏍戝嵆鍙悶瀹?br>
void  find(int preb,int pree,int postb,int poste) 
   {
   int i=s(pre,post[poste-1]);
  int j=s(post,pre[preb+1]);
//娣誨姞澶勭悊鐨勪唬鐮?br> //鍒ゆ柇鏄惁鏈夊乏/鍙蟲敮

    find(preb+1,i-1,postb,j);
  find(i,pree,j+1,poste-1);
   }
浣嗘槸涓婇潰鐨勬濊礬鏄?strong>閿欒鐨勶紒錛侊紒錛侊紒錛侊紒錛侊紒錛侊紒錛侊紒錛?/span>
鍙煡閬撳厛搴忓拰鍚庡簭涓嶈兘鑳芥帹鍑烘爲鏉? 
   
  鍙湁涓簭鍜屽厛搴忔垨鑰呬腑搴忓拰鍚庡簭鎵嶅彲浠? 
   
  涓嶇劧鍙煡閬撴牴鑺傜偣,浣嗘槸鍝簺鏄乏瀛愭爲鍝簺鏄彸瀛愭爲灝變笉鐭ラ亾浜?br>姣斿鍏堝簭鏃?234  
  鍚庡簭鏄?321鐨勪簩鍙夋爲鏈?縐嶆瘮濡傦細  
      1                     1              
      \                   /  
        2               2  
    /                 /  
  3                 3  
    \             /  
      4         4

姝g‘鎬濊礬錛氬厛閬嶅巻鍚庢牴嬈″簭錛岀涓涓竴瀹氫負鍙跺瓙錛岃涓哄綋鍓嶇粨鐐癸紝鐒跺悗渚濇媯嫻嬶紝濡傛灉璇ョ偣鍦ㄥ厛鏍瑰簭鍒椾腑浣嶄簬褰撳墠鑺傜偣鐨勫悗闈紝鍒欎負鍙跺瓙鑺傜偣錛屽悓鏃舵洿鏂板綋鍓嶇粨鐐廣?/div>

luis 2009-07-14 22:14 鍙戣〃璇勮
]]> 青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
              欧美成人精品一区二区| 鲁大师影院一区二区三区| 欧美日韩伦理在线免费| 亚洲欧美视频在线观看视频| 亚洲精品一区二区三区婷婷月| 欧美激情免费在线| 亚洲精品国产精品国产自| 久久免费国产精品| 久久久欧美精品| 欧美www在线| 亚洲激情成人| 亚洲性感美女99在线| 亚洲欧美日韩国产中文| 欧美一进一出视频| 久久久久久综合| 欧美**人妖| 欧美日韩第一区| 国产日韩欧美精品| 亚洲电影下载| 中文久久精品| 久久精品国产99| 美女脱光内衣内裤视频久久网站| 久久影院亚洲| 亚洲精品久久| 久久爱www久久做| 久久久噜噜噜久久人人看| 久久在线观看视频| 欧美成人精品一区二区| 亚洲精品123区| 亚洲一区免费| 老司机午夜精品| 亚洲精品久久久一区二区三区| 亚洲国产成人精品女人久久久 | 亚洲经典在线| 亚洲欧洲一区二区在线观看| 亚洲精品久久久久久久久久久久 | 中文欧美日韩| 欧美一区二区视频在线观看2020| 久久精品免费看| 欧美激情第二页| 欧美特黄一级| 一本久道久久综合婷婷鲸鱼| 欧美一区二区精品在线| 久久午夜激情| 欧美性色综合| 亚洲国产精品黑人久久久| 亚洲麻豆一区| 久久久久高清| 一区二区三区免费观看| 久久婷婷色综合| 久久精品国产亚洲精品| 久久精品国产一区二区三| 久久综合网hezyo| 欧美激情一区三区| 精品88久久久久88久久久| 亚洲一二三级电影| 久久综合色播五月| 亚洲一区二区三区视频| 美女999久久久精品视频| 国产精品美女一区二区| 在线看日韩av| 久久精品国产久精国产一老狼| 亚洲第一久久影院| 久久精品91久久香蕉加勒比| 国产精品vvv| 亚洲精品中文字幕有码专区| 久久久久久久久久久一区| 夜夜嗨网站十八久久| 欧美1级日本1级| 国产精品国产三级国产aⅴ无密码| 在线观看视频亚洲| 久久一区二区三区四区五区| 先锋影音一区二区三区| 国产精品国产馆在线真实露脸| 91久久国产自产拍夜夜嗨| 欧美一区二区三区四区视频| 亚洲精品一区二区网址| 欧美激情国产日韩| 亚洲国产小视频| 亚洲日本一区二区| 欧美另类一区| 欧美亚洲一区二区在线| 久久精品国产精品亚洲精品| 99视频精品全国免费| 国产精品国产一区二区| 欧美日韩一区成人| 亚洲国产美女| 欧美韩日高清| 女人色偷偷aa久久天堂| 亚洲国产欧美一区| 亚洲国产专区校园欧美| 理论片一区二区在线| 欧美一区二区三区在线观看| 国产婷婷精品| 亚洲午夜伦理| 亚洲一区网站| 国产日韩在线视频| 久久精品视频导航| 久久久久国产精品一区三寸| 国产美女精品视频免费观看| 久久久久久久999| 久久国产精品99精品国产| 精品福利电影| 亚洲大胆人体在线| 欧美日韩免费一区二区三区| 亚洲女女做受ⅹxx高潮| 亚洲一区二区三区免费观看 | 影音先锋国产精品| 久久久久成人精品| 卡通动漫国产精品| 日韩天堂在线视频| 亚洲欧美一区二区三区久久| 影音先锋亚洲电影| 亚洲一区精品视频| 久久综合色播五月| 欧美成人午夜激情在线| 亚洲一区二区三区在线视频| 久久av二区| 一区二区三区高清在线| 欧美在线黄色| 欧美激情一区在线| 亚洲欧美日韩国产一区二区三区| 香港久久久电影| 亚洲激情专区| 亚洲欧美日韩国产精品| 亚洲人被黑人高潮完整版| 亚洲一区二区在线观看视频| 亚洲国产欧美日韩精品| 亚洲主播在线| 亚洲精品影院在线观看| 欧美一区二区三区男人的天堂| 亚洲经典一区| 午夜日韩激情| 亚洲一区激情| 性欧美8khd高清极品| 在线中文字幕日韩| 久久成人精品电影| 亚洲一区日本| 欧美日本视频在线| 毛片av中文字幕一区二区| 国产精品久久久久久久午夜| 亚洲电影在线| 日韩一本二本av| 国产一区白浆| 欧美激情久久久| 国语自产精品视频在线看一大j8| 99国产精品99久久久久久粉嫩| 国产午夜精品全部视频在线播放| 久久婷婷久久| 国产女精品视频网站免费| 日韩视频在线播放| 亚洲欧洲一区二区天堂久久| 久久精品99久久香蕉国产色戒| 久久中文字幕一区二区三区| 国产一区二区精品久久91| 久久狠狠亚洲综合| 久久久久高清| 亚洲精品免费一二三区| 欧美va亚洲va香蕉在线| 欧美高清视频| 91久久国产综合久久| 欧美午夜电影网| 亚洲一区二区网站| 久久免费高清| 亚洲国内精品在线| 欧美日韩天堂| 国产精品99久久久久久人| 久久精品成人欧美大片古装| 国产日韩精品久久久| 久久久一区二区三区| 欧美国产国产综合| 亚洲精选成人| 欧美日韩在线亚洲一区蜜芽| 日韩一区二区免费高清| 在线播放亚洲一区| 久久久久一区二区三区| 欧美国产三级| 9i看片成人免费高清| 欧美精品久久天天躁| 久久亚洲私人国产精品va| 欧美三级网页| 亚洲欧美日韩天堂| 久久蜜臀精品av| 亚洲国产99精品国自产| 欧美1区视频| 一区二区精品国产| 欧美中文字幕在线观看| 精品福利av| 久久精品系列| 亚洲综合视频一区| 六十路精品视频| 一区二区欧美在线| 国产人妖伪娘一区91| 欧美成人精品1314www| 欧美高清hd18日本| 先锋影音网一区二区| 亚洲第一页在线| 欧美视频一区在线观看| 午夜电影亚洲| 亚洲日本aⅴ片在线观看香蕉|