• <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 閱讀(118) 評論(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 ;
            }
            69SEX久久精品国产麻豆| 久久久久无码精品国产| 日韩久久无码免费毛片软件| 亚洲欧美日韩精品久久亚洲区| 日日噜噜夜夜狠狠久久丁香五月| 久久婷婷久久一区二区三区| 欧美无乱码久久久免费午夜一区二区三区中文字幕 | 女人高潮久久久叫人喷水| 伊人久久大香线焦AV综合影院| 久久99精品国产麻豆宅宅| 色狠狠久久综合网| 精品久久久久一区二区三区| 精品久久久无码人妻中文字幕| 品成人欧美大片久久国产欧美 | 久久99国产精品久久| 亚洲Av无码国产情品久久| 久久综合九色综合久99| 亚洲va国产va天堂va久久| 人妻少妇精品久久| 国产亚洲美女精品久久久| 国产精品一久久香蕉国产线看 | 国内精品伊人久久久久av一坑| 久久久久久精品成人免费图片| 久久精品亚洲男人的天堂| 久久精品国产免费一区| 久久久久99精品成人片试看| 国内精品久久国产| 久久人人爽人人爽人人片AV东京热| 国产成人无码精品久久久免费| 久久久久久久尹人综合网亚洲| 国产精品无码久久综合| 久久精品国产精品国产精品污| 久久精品国产99久久久| 国内精品久久久人妻中文字幕| 国产V综合V亚洲欧美久久| 精品久久无码中文字幕| 国产精品久久自在自线观看| 热re99久久精品国产99热| 国产精品狼人久久久久影院| 久久久久久亚洲精品无码| 久久人人爽人人澡人人高潮AV |