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

            我希望你是我獨家記憶

            一段永遠封存的記憶,隨風(fēng)而去
            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 ;
            }
            久久精品亚洲福利| 亚洲乱码中文字幕久久孕妇黑人| 伊人久久综合精品无码AV专区| 精品久久久久国产免费| 99久久国产综合精品麻豆| 97久久综合精品久久久综合| 久久香蕉国产线看观看精品yw| 久久综合亚洲色HEZYO社区| 2021国产精品久久精品| 国产69精品久久久久观看软件| 日日狠狠久久偷偷色综合免费| 欧美国产精品久久高清| 无码任你躁久久久久久久| 精品久久一区二区三区| 秋霞久久国产精品电影院| 国产精品美女久久久久av爽| 久久se精品一区精品二区国产| 午夜视频久久久久一区 | 日韩久久久久中文字幕人妻 | 久久综合久久综合亚洲| 久久无码专区国产精品发布| 老色鬼久久亚洲AV综合| 91久久精品电影| 国产精品久久久久久久人人看| 久久久久久久久久久久中文字幕| 国产精品一久久香蕉国产线看观看| 伊人热人久久中文字幕| 国产成人综合久久精品红| 久久精品国产亚洲麻豆| 久久综合视频网| 一本伊大人香蕉久久网手机| 久久嫩草影院免费看夜色| 性色欲网站人妻丰满中文久久不卡| 国产高潮国产高潮久久久| 久久久久久毛片免费看| 91精品国产91久久综合| 久久综合久久鬼色| 91精品国产综合久久香蕉| 色综合久久无码五十路人妻 | 欧美与黑人午夜性猛交久久久| 久久久久亚洲AV无码麻豆|