• <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
               :: 首頁 :: 新隨筆 ::  :: 聚合  :: 管理

            ZJU--1140--二部圖

            Posted on 2008-08-01 19:39 Hero 閱讀(178) 評論(0)  編輯 收藏 引用 所屬分類: 代碼如詩--ACM
            /* Accepted 1140 C++ 00:01.10 500K */
            //還是二部圖

            #include 
            <stdio.h>
            #include 
            <stdlib.h>
            #include 
            <string.h>
            #include 
            <ctype.h>
            #define llong unsigned long long 
            #define unint unsigned int
            #define printline  printf( "\n" ) 

            const int INF = 1000000 ;
            const int size = 310 ;

            int testnum, ct ;
            int inp, inn ;
            bool link[size][size] ;

            int Binmatch( int inn, int inm )
            {
                
            int matchnum = 0 ; int dn_node ;
                
            int queue[size*10] ; int head=0, tail = 0 ;//定義隊列
                int upmatch[size], dnmatch[size] ; int prev[size] ;
                memset( upmatch, 
            -1sizeof(upmatch) ) ;
                memset( dnmatch, 
            -1sizeof(dnmatch) ) ;

                
            forint i=1; i<=inn; i++ ) {
                    
            forint j=1; j<=inm; j++ )    prev[j] = -2 ;
                    head 
            = tail = 0 ;

                    
            forint j=1; j<=inm; j++ )    if( link[i][j] )
                    { prev[j] 
            = -1 ; queue[tail++= j ; }

                    
            while( head < tail ) {
                        dn_node 
            = queue[head] ;
                        
            if-1 == dnmatch[dn_node] )    break ;
                        head
            ++ ;
                        
            forint j=1; j<=inm; j++ ) if-2==prev[j]&&link[dnmatch[dn_node]][j] )
                        { prev[j] 
            = dn_node ; queue[tail++= j ; }
                    }

                    
            if( head == tail )    continue ;
                    
            while( prev[dn_node] > -1 ) {
                        upmatch[dnmatch[prev[dn_node]]] 
            = dn_node ;
                        dnmatch[dn_node] 
            = dnmatch[prev[dn_node]] ;
                        dn_node 
            = prev[dn_node] ;
                    }

                    dnmatch[dn_node] 
            = i ; upmatch[i] = dn_node ;
                    matchnum
            ++ ;
                }

                
            return matchnum ;
            }

            int main()
            {
                
            //freopen( "frac1.in", "r", stdin ) ;
                
            //freopen( "frac1.out","w",stdout ) ;

                
            int sn, en, numlink ;
                
            while( scanf( "%d",&testnum ) != EOF )
                {
                    
            for( ct=1; ct<=testnum; ct++ ) 
                    {
                        memset( link, 
            falsesizeof(link) ) ;
                        scanf( 
            "%d %d",&inp, &inn ) ;
                        
            forint sn=1; sn<=inp; sn++ ) {
                            scanf( 
            "%d",&numlink ) ;
                            
            while( numlink -- ) {
                                scanf( 
            "%d",&en ) ;    link[sn][en] = true ;
                            }
                        }
            //data input

                        
            int matchnum = Binmatch( inp, inn ) ;

                        
            if( matchnum == inp )    printf( "YES\n" ) ;
                        
            else                    printf( "NO\n" )  ;
                    }
                }
            //while

                
            return 0 ;
            }
            久久成人国产精品| 久久久亚洲欧洲日产国码aⅴ| 久久伊人精品青青草原高清| 99精品久久久久久久婷婷| 日本亚洲色大成网站WWW久久| 四虎国产精品成人免费久久| 97热久久免费频精品99| 亚洲国产精品无码久久久久久曰 | 久久99精品久久久久久动态图| 久久精品成人免费看| 人妻系列无码专区久久五月天| 亚洲AV无一区二区三区久久| 狠狠色综合网站久久久久久久| 狠狠色丁香久久婷婷综合蜜芽五月| 精品国产福利久久久| 亚洲午夜久久久影院| 欧美与黑人午夜性猛交久久久| 国内精品久久久久久久97牛牛| 亚洲国产成人久久综合野外| 777久久精品一区二区三区无码| 婷婷久久久亚洲欧洲日产国码AV | 国产精品久久久久久久| 大香伊人久久精品一区二区| 久久久久亚洲精品天堂久久久久久| 久久Av无码精品人妻系列| 99久久这里只精品国产免费| 久久精品亚洲男人的天堂| 蜜桃麻豆www久久| 久久99精品国产99久久6男男| 久久精品国产亚洲av水果派| 亚洲精品乱码久久久久66| 久久人人爽人人爽人人爽| 无码精品久久一区二区三区 | avtt天堂网久久精品| 午夜精品久久久久久久久| 日韩人妻无码一区二区三区久久| 久久99九九国产免费看小说| 久久99这里只有精品国产| 亚洲国产日韩欧美久久| 久久人人爽人人爽人人片AV东京热 | 久久久精品久久久久特色影视|