• <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 閱讀(92) 評論(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
            • 評論內容較長,點擊標題查看
            • --王私江
            色成年激情久久综合| 国产精品免费福利久久| 日本WV一本一道久久香蕉| 久久人妻AV中文字幕| 人妻久久久一区二区三区| 亚洲国产精品久久久久婷婷老年| 伊人久久免费视频| 亚洲成色WWW久久网站| 精品久久久久久久久久久久久久久| 一本色道久久综合| 国内精品久久久久影院网站| 久久综合九色综合网站| 亚洲精品97久久中文字幕无码| 99999久久久久久亚洲| 久久天天躁狠狠躁夜夜不卡| 国产成人精品久久一区二区三区av | 久久免费的精品国产V∧| 青青青国产精品国产精品久久久久| 国产精品久久久久蜜芽| 久久精品成人一区二区三区| www.久久热| 久久久久久国产精品免费无码| 欧美精品九九99久久在观看| 久久久久久国产精品无码下载 | 777久久精品一区二区三区无码| 精品国产99久久久久久麻豆| 久久这里的只有是精品23| 久久久久无码中| 久久久久国产精品嫩草影院| 精品久久久久国产免费| 久久精品国产欧美日韩| 国产精品狼人久久久久影院 | 久久亚洲AV成人无码| 久久成人小视频| 久久人人爽人人爽人人片AV麻烦 | 国产三级观看久久| 国产精品女同一区二区久久| 国产精品久久久久…| 久久综合丁香激情久久| 品成人欧美大片久久国产欧美| 91精品国产色综久久|