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

            hrbeuTLt4

            The Accomodation of Students

            TimeLimit: 1 Second   MemoryLimit: 32 Megabyte

            Totalsubmit: 26   Accepted: 9  

            Description

            There are a group of students. Some of them may know each other, while others don't. For example, A and B know each other, B and C know each other. But this may not imply that A and C know each other.

            Now you are given all pairs of students who know each other. Your task is to divide the students into two groups so that any two students in the same group don't know each other.If this goal can be achieved, then arrange them into double rooms. Remember, only paris appearing in the previous given set can live in the same room, which means only known students can live in the same room.

            Calculate the maximum number of pairs that can be arranged into these double rooms.

            Input

            For each data set:
            The first line gives two integers, n and m(1<n<=200), indicating there are n students and m pairs of students who know each other. The next m lines give such pairs.

            Proceed to the end of file.

            Output

            If these students cannot be divided into two groups, print "No". Otherwise, print the maximum number of pairs that can be arranged in those rooms.

            Sample Input

            4 4
            1 2
            1 3
            1 4
            2 3
            6 5
            1 2
            1 3
            1 4
            2 5
            3 6

            Sample Output

            No
            3

            Source

            2008 Asia Harbin Regional Contest Online

            最近一直沒寫blog

            發現二分圖還是不太會做
            這個題是先判斷是不是二分圖,然后求最大匹配
            題意

            有n個學生,有m對人是認識的,每一對認識的人能分到一間房,問能否把n個學生分成兩

            部分,每部分內的學生互不認識,而兩部分之間的學生認識。如果可以分成兩部分,就

            算出房間最多需要多少間,否則就輸出No。

            #include<stdio.h>
            #include
            <string.h>
            #include
            <math.h>
            #define maxn 205
            int n,m;
            int g[maxn][maxn];
            int color[maxn];
            int cx[maxn],cy[maxn];
            int mk[maxn];
            int ans;
            bool flag;
            int path(int u)
            {
                
            int v;
                
            for(v=1; v<=n; v++)
                
            {
                    
            if(g[u][v]&&!mk[v])
                    
            {
                        mk[v]
            =1;
                        
            if(cy[v]==-1||path(cy[v]))
                        
            {
                            cx[u]
            =v;
                            cy[v]
            =u;
                            
            return 1;
                        }

                    }

                }

                
            return 0;
            }

            int match()
            {
                
            int res,i;
                res
            =0;
                memset(cx,
            -1,sizeof(cx));
                memset(cy,
            -1,sizeof(cy));
                
            for(i=1; i<=n; i++)
                    
            if(cx[i]==-1)
                    
            {
                        memset(mk,
            0,sizeof(mk));
                        res
            +=path(i);
                    }

                
            return res;
            }

            void dfs(int u,int col)
            {
                
            int i;
                color[u]
            =col;
                
            for(i=1;i<n;i++)
                    
            if((g[u][i]||g[i][u])&&color[i]==-1&&flag)
                
            {
                    dfs(i,
            1-col);
                }

                
            else if((g[u][i]||g[i][u])&&color[i]==col)
                
            {
                    flag
            =false;
                    
            return;
                }

            }

            int main()
            {
                
            int i,j;
                
            int p1,p2;
                
            while(scanf("%d%d",&n,&m)!=EOF)
                
            {
                    memset(g,
            0,sizeof(g));
                    
            for(i=1; i<=m; i++)
                    
            {
                        scanf(
            "%d%d",&p1,&p2);
                        g[p1][p2]
            =1;
                    }

                    ans
            =0;
                    flag
            =true;
                    memset(color,
            -1,sizeof(color));
                    dfs(
            1,0);
                    
            if (!flag) printf("No\n");
                    
            else 
                    
            {
                        ans
            =match();
                        printf(
            "%d\n",ans);
                    }

                }

                
            return 0;
            }


            //二分圖判斷+最大匹配



             

            posted on 2012-04-24 15:18 jh818012 閱讀(91) 評論(0)  編輯 收藏 引用

            <2025年7月>
            293012345
            6789101112
            13141516171819
            20212223242526
            272829303112
            3456789

            導航

            統計

            常用鏈接

            留言簿

            文章檔案(85)

            搜索

            最新評論

            • 1.?re: poj1426
            • 我嚓,,輝哥,,居然搜到你的題解了
            • --season
            • 2.?re: poj3083
            • @王私江
              (8+i)&3 相當于是 取余3的意思 因為 3 的 二進制是 000011 和(8+i)
            • --游客
            • 3.?re: poj3414[未登錄]
            • @王私江
              0ms
            • --jh818012
            • 4.?re: poj3414
            • 200+行,跑了多少ms呢?我的130+行哦,你菜啦,哈哈。
            • --王私江
            • 5.?re: poj1426
            • 評論內容較長,點擊標題查看
            • --王私江
            国产91色综合久久免费分享| 少妇人妻综合久久中文字幕 | 久久无码精品一区二区三区| 97r久久精品国产99国产精| 麻豆av久久av盛宴av| 亚洲精品无码久久久| 777午夜精品久久av蜜臀| 人妻无码中文久久久久专区| 国产精品久久久久久久久鸭| 久久精品毛片免费观看| 久久夜色精品国产www| 久久有码中文字幕| 久久人人添人人爽添人人片牛牛| 精品久久久久久久久午夜福利| 国产福利电影一区二区三区久久老子无码午夜伦不 | 国产午夜精品理论片久久影视| 热99re久久国超精品首页| 久久本道久久综合伊人| 亚洲欧美成人综合久久久| 99久久国产热无码精品免费久久久久| 久久久久久国产精品无码下载| 少妇内射兰兰久久| 国产亚洲欧美精品久久久| 久久综合久久综合久久| 亚洲精品99久久久久中文字幕| 久久久久久久久久久| 精品久久香蕉国产线看观看亚洲| 国产女人aaa级久久久级| 久久婷婷国产剧情内射白浆| 久久精品国产亚洲AV嫖农村妇女| 久久午夜电影网| 2021国产精品午夜久久| 久久水蜜桃亚洲av无码精品麻豆 | 国内精品久久久久久久久电影网 | 欧美久久久久久精选9999| 伊人热热久久原色播放www| 少妇精品久久久一区二区三区| 亚洲国产精品婷婷久久| 亚洲欧美日韩久久精品第一区| 国产国产成人久久精品| 亚洲精品国产字幕久久不卡|