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

            我希望你是我獨家記憶

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

            P1716

            Posted on 2008-09-07 13:30 Hero 閱讀(112) 評論(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 ;
            }
            内射无码专区久久亚洲| 国产成人精品久久二区二区| 999久久久免费国产精品播放| 2021精品国产综合久久| 一本久久久久久久| 亚洲天堂久久久| 久久伊人精品一区二区三区 | 人妻精品久久无码区| 亚洲国产精品久久久久网站| 久久国产综合精品五月天| 亚洲精品无码久久千人斩| 国内精品久久久久影院网站| 久久久久久精品无码人妻| 国产成人香蕉久久久久| 久久久久99精品成人片欧美 | 久久夜色精品国产网站| 久久国产精品偷99| 久久99国产精品二区不卡| 日本欧美国产精品第一页久久| 久久亚洲日韩精品一区二区三区| 久久亚洲天堂| 国产精品丝袜久久久久久不卡| 久久精品aⅴ无码中文字字幕重口| 欧美午夜A∨大片久久| 99国产精品久久久久久久成人热| 免费精品久久天干天干| 亚洲国产日韩欧美综合久久| 激情久久久久久久久久| 久久最新精品国产| 久久w5ww成w人免费| 久久精品亚洲一区二区三区浴池 | 久久国产视屏| 大香网伊人久久综合网2020| 国产成人精品久久免费动漫| 亚洲人成精品久久久久| 午夜精品久久久久久99热| 久久久久免费精品国产| 伊人久久大香线蕉亚洲五月天 | 国产亚洲婷婷香蕉久久精品| 国产精品对白刺激久久久| 91精品国产乱码久久久久久|