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

            發(fā)現(xiàn)二分圖還是不太會(huì)做
            這個(gè)題是先判斷是不是二分圖,然后求最大匹配
            題意

            有n個(gè)學(xué)生,有m對(duì)人是認(rèn)識(shí)的,每一對(duì)認(rèn)識(shí)的人能分到一間房,問能否把n個(gè)學(xué)生分成兩

            部分,每部分內(nèi)的學(xué)生互不認(rèn)識(shí),而兩部分之間的學(xué)生認(rèn)識(shí)。如果可以分成兩部分,就

            算出房間最多需要多少間,否則就輸出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) 評(píng)論(0)  編輯 收藏 引用


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


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

            導(dǎo)航

            統(tǒng)計(jì)

            常用鏈接

            留言簿

            文章檔案(85)

            搜索

            最新評(píng)論

            • 1.?re: poj1426
            • 我嚓,,輝哥,,居然搜到你的題解了
            • --season
            • 2.?re: poj3083
            • @王私江
              (8+i)&3 相當(dāng)于是 取余3的意思 因?yàn)?3 的 二進(jìn)制是 000011 和(8+i)
            • --游客
            • 3.?re: poj3414[未登錄]
            • @王私江
              0ms
            • --jh818012
            • 4.?re: poj3414
            • 200+行,跑了多少ms呢?我的130+行哦,你菜啦,哈哈。
            • --王私江
            • 5.?re: poj1426
            • 評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
            • --王私江
            99久久婷婷国产综合亚洲| 久久精品国产亚洲av麻豆蜜芽 | 久久精品国产网红主播| 久久精品aⅴ无码中文字字幕不卡| 久久青青草原精品国产| 久久精品人人做人人爽电影| 日本久久久久久中文字幕| 2021国内久久精品| 精品人妻久久久久久888| 久久99久久成人免费播放| 国产AⅤ精品一区二区三区久久| 欧美国产精品久久高清| 成人综合伊人五月婷久久| 亚洲人成无码网站久久99热国产| 99久久精品国产一区二区| 91精品国产综合久久香蕉| 久久精品国产精品亚洲精品| 国产精品永久久久久久久久久| 亚洲愉拍99热成人精品热久久| 精品久久久久久国产三级| 无码国内精品久久人妻| 久久精品国产99久久香蕉| 国产精品久久久久9999| 亚洲AV日韩精品久久久久久 | 伊人精品久久久久7777| 久久婷婷国产麻豆91天堂| 精品无码久久久久久午夜| 中文字幕日本人妻久久久免费 | 狠狠色丁香婷婷久久综合五月| 色综合久久精品中文字幕首页| 日产精品99久久久久久| 亚洲国产另类久久久精品黑人 | 国产精品美女久久福利网站| 精品久久久久中文字| 久久99国产精品久久99| 久久精品国产亚洲AV无码麻豆 | 国产成人精品久久二区二区| 久久久无码精品亚洲日韩按摩| 中文无码久久精品| 久久精品日日躁夜夜躁欧美 | A狠狠久久蜜臀婷色中文网|