• <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>

            我希望你是我獨家記憶

            一段永遠封存的記憶,隨風而去
            posts - 263, comments - 31, trackbacks - 0, articles - 3
               :: 首頁 :: 新隨筆 ::  :: 聚合  :: 管理

            P1716

            Posted on 2008-09-07 13:30 Hero 閱讀(110) 評論(0)  編輯 收藏 引用 所屬分類: 代碼如詩--ACM
            //1716 Accepted 880K 0MS C++ 2474B PKU

            #include 
            <stdio.h>
            #include 
            <string.h>
            #include 
            <stdlib.h>

            const int INF = 100000000 ;
            const int size = 11000 ;

            struct NODE 
            {
                
            int en ;
                
            int len ;
                
            int next ;
            };

            struct NODE nhead[size*100] ;
            int chead ;

            int dist[size+100] ;
            int visit[size+100] ;
            int que[size*20] ;  
            int head, tail ;

            int inmax ;
            int inn ;

            void input()
            {
                
            int sn, en ; int len = 2 ; inmax = -1 ; chead = size ;

                
            forint i=0; i<size; i++ ) nhead[i].next = -1 ;

                
            forint i=1; i<=inn; i++ )
                {
                    scanf( 
            "%d %d"&sn, &en ) ; sn++ ; en++ ; en++ ;
                    
            if( inmax < en )    inmax = en ;

                    nhead[sn].len
            ++ ; nhead[chead].next = nhead[sn].next ; nhead[sn].next = chead ;
                    nhead[chead].en 
            = en ; nhead[chead].len = -2 ; chead++ ;
                }

                
            forint i=1; i<=inmax; i++ )
                {
                    sn 
            = i ; en = i-1 ;
                    nhead[sn].len
            ++ ; nhead[chead].next = nhead[sn].next ; nhead[sn].next = chead ;
                    nhead[chead].en 
            = en ; nhead[chead].len = 1 ; chead++ ;

                    sn 
            = i-1; en = i ;
                    nhead[sn].len
            ++ ; nhead[chead].next = nhead[sn].next ; nhead[sn].next = chead ;
                    nhead[chead].en 
            = en ; nhead[chead].len = 0 ; chead++ ;
                }

                
            forint i=1; i<=inmax; i++ )
                {
                    nhead[
            0].len++ ; nhead[chead].next = nhead[0].next; nhead[0].next = chead ;
                    nhead[chead].en 
            = i ; nhead[chead].len = 0 ; chead++ ;
                }
            /*
                for( int i=0; i<=inmax; i++ )
                {
                    printf( "head[%d]==%d", i, i ) ;
                    for( int p=nhead[i].next; p!=-1; p=nhead[p].next )
                        printf( " %4d ", nhead[p].en ) ;
                    printf( "\n" ) ;
                }
            */
            }

            void SPFA( int sn, int n )
            {
                
            for(int i=0; i<=n; i++
                {
                    dist[i] 
            = INF ; visit[i] = 0 ;
                }
                tail 
            = 0 ; que[++tail] = sn ; dist[sn] = 0 ; visit[sn] = 1 ;

                
            int cursn = 100 ;

                
            while( tail > 0 )
                {
                    cursn 
            = que[tail--] ; visit[cursn] = 0 ;
                    
            forint p=nhead[cursn].next ; p!=-1; p=nhead[p].next )
                    {
                        
            if( dist[nhead[p].en] > dist[cursn] + nhead[p].len )
                        {
                            dist[nhead[p].en] 
            = dist[cursn] + nhead[p].len ;
                            
            if0 == visit[nhead[p].en] )
                            {
                                visit[nhead[p].en] 
            = 1 ; que[++tail] = nhead[p].en ;
                            }
                        }
                    }
                }
            }


            void process()
            {
                SPFA( 
            0, inmax ) ;

                
            //for( int i=0; i<=inmax; i++ ) printf( "dist[%d]===%d\n", i, dist[i] ) ;

                printf( 
            "%d\n"0-dist[inmax] ) ;
            }

            int main()
            {
                
            //freopen( "in.txt", "r", stdin ) ;

                
            while( scanf( "%d"&inn ) != EOF )
                {
                    input() ;

                    process() ;

                    
            //output() ;
                }

                
            return 0 ;
            }
            久久婷婷五月综合色奶水99啪| 伊人丁香狠狠色综合久久| 99久久综合国产精品免费| 亚洲伊人久久大香线蕉综合图片| 久久人人爽爽爽人久久久| 久久99精品久久久久久水蜜桃 | 国产麻豆精品久久一二三| 久久国产影院| 亚洲AV日韩AV天堂久久| 精品国产一区二区三区久久| 日日狠狠久久偷偷色综合96蜜桃| 久久夜色精品国产噜噜亚洲a| 日本人妻丰满熟妇久久久久久| 久久九九久精品国产| 麻豆AV一区二区三区久久| 亚洲国产天堂久久久久久| 狠狠色噜噜狠狠狠狠狠色综合久久| 怡红院日本一道日本久久| 久久九九久精品国产免费直播| 999久久久免费国产精品播放| 狠狠色丁香久久婷婷综合| 亚洲v国产v天堂a无码久久| 一本久久久久久久| 久久r热这里有精品视频| 久久精品国产亚洲精品2020| 一极黄色视频久久网站| 久久精品人人做人人爽电影| 久久精品国产第一区二区三区| 久久亚洲AV无码精品色午夜 | 久久亚洲国产最新网站| 精品久久久久久99人妻| 久久香蕉综合色一综合色88| 久久亚洲国产欧洲精品一| 国产精品久久久久无码av| 国产精品美女久久久m| 国产精品一区二区久久国产| 久久99亚洲网美利坚合众国| 97久久婷婷五月综合色d啪蜜芽| 国内精品久久久久影院老司| 香蕉久久夜色精品国产尤物| 老男人久久青草av高清|