青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 7,comments - 3,trackbacks - 0

1099. Work Scheduling

Time Limit: 0.5 second
Memory Limit: 16 MB
There is certain amount of night guards that are available to protect the local junkyard from possible junk robberies. These guards need to scheduled in pairs, so that each pair guards at different night. The junkyard CEO ordered you to write a program which given the guards characteristics determines the maximum amount of scheduled guards (the rest will be fired). Please note that each guard can be scheduled with only one of his colleagues and no guard can work alone.

Input

The first line of the input contains one number N ≤ 222 which is the amount of night guards. Unlimited number of lines consisting of unordered pairs (ij) follow, each such pair means that guard #i and guard #j can work together, because it is possible to find uniforms that suit both of them (The junkyard uses different parts of uniforms for different guards i.e. helmets, pants, jackets. It is impossible to put small helmet on a guard with a big head or big shoes on guard with small feet). The input ends with Eof.

Output

You should output one possible optimal assignment. On the first line of the output write the even number C, the amount of scheduled guards. Then output C/2 lines, each containing 2 integers (ij) that denote that i and j will work together.

Sample

inputoutput
3
1 2
2 3
1 3
2
1 2
Problem Author: Jivko Ganev



模板題.....一般圖匹配主要看模板,剩下的就是自己YY建圖了.....

模板:
#include <cstdio>
#include 
<cstring>
#include 
<algorithm>
#include 
<iostream>
#define MAXN 256
using namespace std;

struct Graph
{
    
bool mat[MAXN + 1][MAXN + 1];
    
int n;

    
bool inque[MAXN + 1];
    
int que[MAXN], head, tail;

    
int match[MAXN + 1], father[MAXN + 1], base[MAXN + 1];

    
void init(int _n)
    {
        n 
= _n;
        
for (int i = 1; i <= n; ++i)
        {
            match[i] 
= 0;
            
for (int j = 1; j <= n; ++j)
                mat[i][j] 
= false;
        }
    }

    
int pop()
    {
        
return que[head++];
    }

    
void push(int x)
    {
        que[tail
++= x;
        inque[x] 
= true;
    }

    
void add_edge(int a, int b)
    {
        mat[a][b] 
= mat[b][a] = true;
    }

    
int inpath[MAXN + 1];
    
static int pcnt;

    
int find_ancestor(int u, int v)
    {
        
++pcnt;
        
while (u)
        {
            u 
= base[u];
            inpath[u] 
= pcnt;
            u 
= father[match[u]];
        }

        
while (true)
        {
            v 
= base[v];
            
if (inpath[v] == pcnt)
                
return v;
            v 
= father[match[v]];
        }
    }

    
int inblossom[MAXN + 1];
    
static int bcnt;

    
void reset(int u, int anc)
    {
        
while (u != anc)
        {
            
int v = match[u];
            inblossom[
base[v]] = bcnt;
            inblossom[
base[u]] = bcnt;
            v 
= father[v];
            
if (base[v] != anc) father[v] = match[u];
            u 
= v;
        }
    }

    
void contract(int u, int v)
    {
        
int anc = find_ancestor(u, v);
        
++bcnt;
        reset(u, anc);
        reset(v, anc);
        
if (base[u] != anc) father[u] = v;
        
if (base[v] != anc) father[v] = u;
        
for (int i = 1; i <= n; ++i)
            
if (inblossom[base[i]] == bcnt)
            {
                
base[i] = anc;
                
if (!inque[i]) push(i);
            }
    }

    
int find_augment(int start)
    {
        
for (int i = 1; i <= n; ++i)
        {
            father[i] 
= 0;
            inque[i] 
= false;
            
base[i] = i;
        }
        head 
= 0, tail = 0, push(start);
        
while (head < tail)
        {
            
int u = pop();
            
for (int v = 1; v <= n; ++v)
                
if (mat[u][v] && base[v] != base[u] && match[v] != u)
                {
                    
if (v == start || (match[v] && father[match[v]]))
                        contract(u, v);
                    
else
                    {
                        
if (father[v] == 0)
                        {
                            
if (match[v])
                            {
                                push(match[v]);
                                father[v] 
= u;
                            }
                            
else
                            {
                                father[v] 
= u;
                                
return v;
                            }
                        }
                    }
                }
        }
        
return 0;
    }

    
void augment(int finish)
    {
        
int u = finish, v, w;
        
while (u)
        {
            v 
= father[u];
            w 
= match[v];
            match[u] 
= v;
            match[v] 
= u;
            u 
= w;
        }
    }

    
int graph_max_match()
    {
        
int ans = 0;
        
for (int i = 1; i <= n; ++i)
            
if (match[i] == 0)
            {
                
int finish = find_augment(i);
                
if (finish)
                {
                    augment(finish);
                    ans 
+= 2;
                }
            }
        
return ans;
    }
} g;

int Graph :: bcnt = 0, Graph :: pcnt = 0;

int main()
{
    
int n;
    scanf(
"%d"&n);
    g.init(n);
    
int a, b;
    
while (scanf("%d%d"&a, &b) != EOF)
        g.add_edge(a, b);
    printf(
"%d\n", g.graph_max_match());
    
for (int i = 1; i <= n; ++i)
        
if (g.match[i])
        {
            printf(
"%d %d\n", i, g.match[i]);
            g.match[g.match[i]] 
= 0;
        }
    
return 0;
}

posted on 2011-10-15 22:16 LLawliet 閱讀(305) 評論(0)  編輯 收藏 引用 所屬分類: 圖論
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美一区二区在线免费播放| 99香蕉国产精品偷在线观看| 午夜一级久久| 亚洲欧美视频一区二区三区| 国产日韩精品综合网站| 久久久久久亚洲精品杨幂换脸| 久久成人国产精品| 亚洲国产日韩综合一区| 日韩视频不卡中文| 国产精品日韩欧美一区二区三区 | 国产亚洲精品bv在线观看| 久久成人18免费网站| 久久精品国产综合| 亚洲免费黄色| 亚洲欧美日韩一区| 亚洲成人在线网站| 99国产精品一区| 国内精品亚洲| 亚洲美女黄色| 国内精品美女av在线播放| 欧美国产三区| 国产欧美精品日韩| 欧美不卡视频| 国产精品亚洲综合色区韩国| 欧美国产视频在线| 国产精品一区二区三区四区| 欧美成人免费在线观看| 国产精品理论片| 欧美成人综合一区| 国产精品亚洲综合| 亚洲精品国产精品国产自| 国产精品三级视频| 亚洲国产欧美一区二区三区丁香婷| 国产精品www| 亚洲国产精品成人va在线观看| 欧美午夜精品理论片a级按摩| 久久这里有精品视频| 欧美午夜激情小视频| 欧美福利小视频| 国产性天天综合网| 一区二区三区产品免费精品久久75 | 亚洲大片在线| 国产性色一区二区| 亚洲视频综合在线| 99精品视频免费全部在线| 久久久午夜电影| 欧美制服丝袜第一页| 欧美另类一区二区三区| 欧美a级一区| 在线免费高清一区二区三区| 香蕉成人啪国产精品视频综合网| 一区二区毛片| 欧美日韩免费网站| 亚洲日本激情| 野花国产精品入口| 欧美精品色综合| 亚洲国产精品久久| 亚洲精品乱码| 欧美黄在线观看| 亚洲激情婷婷| 99国产精品99久久久久久粉嫩| 久久综合激情| 欧美成黄导航| 亚洲三级电影在线观看| 女女同性女同一区二区三区91| 免费在线观看成人av| 在线观看视频一区二区| 久久天天综合| 欧美国产欧美亚洲国产日韩mv天天看完整| 国产综合欧美| 久久这里有精品视频| 欧美高潮视频| 99精品视频免费全部在线| 欧美日韩精品免费观看视一区二区 | 亚洲视频欧美视频| 国产精品剧情在线亚洲| 亚洲欧美日韩一区二区| 久久综合伊人77777麻豆| 亚洲高清视频一区| 欧美高清一区二区| 在线综合+亚洲+欧美中文字幕| 亚洲欧美国产不卡| 狠狠久久婷婷| 欧美激情一区二区| 亚洲专区一区| 欧美高潮视频| 亚洲一区二区在线播放| 国产亚洲福利一区| 久久手机精品视频| 一本久道久久久| 久久久国产一区二区三区| 亚洲黄色影片| 国产精品免费aⅴ片在线观看| 欧美一级大片在线免费观看| 欧美黄色小视频| 亚洲综合色视频| 伊人久久久大香线蕉综合直播| 欧美国产欧美亚州国产日韩mv天天看完整 | 日韩亚洲精品电影| 国产欧美日韩亚州综合| 麻豆成人在线观看| 亚洲免费视频在线观看| 欧美黄色免费| 久久高清国产| 亚洲婷婷综合久久一本伊一区| 国产亚洲一级高清| 欧美日韩一区二区免费在线观看| 欧美中文字幕精品| 夜夜夜久久久| 亚洲黄色三级| 老牛国产精品一区的观看方式| 亚洲视频在线视频| 在线欧美不卡| 国产日韩欧美电影在线观看| 欧美精品日韩| 久久综合中文| 久久九九久精品国产免费直播| 日韩视频免费看| 亚洲国产精品一区二区三区| 久久精品视频在线看| 亚洲一区二区在| 一本一本久久a久久精品综合麻豆 一本一本久久a久久精品牛牛影视 | 亚洲欧洲精品一区二区三区 | 一本色道久久综合狠狠躁篇的优点| 国产自产女人91一区在线观看| 欧美午夜视频网站| 欧美精品播放| 欧美国产视频日韩| 噜噜噜噜噜久久久久久91 | 久久国产日韩| 欧美一区二区三区男人的天堂| 宅男精品导航| 亚洲视频1区2区| 亚洲视频狠狠| 亚洲午夜一二三区视频| 一区二区久久久久久| 一二三区精品福利视频| 日韩亚洲不卡在线| 日韩午夜电影| 一区二区三区四区五区视频| 亚洲精品美女在线观看| 亚洲国产欧美日韩| 亚洲人成小说网站色在线| 亚洲电影激情视频网站| 亚洲国产精品成人久久综合一区| 你懂的视频欧美| 欧美国产日韩xxxxx| 亚洲国产一成人久久精品| 亚洲成人资源网| 亚洲激情另类| 日韩特黄影片| 亚洲综合欧美日韩| 欧美一区二区成人6969| 久久精品国产亚洲一区二区三区| 欧美伊人久久久久久久久影院| 久久久国产成人精品| 男女激情视频一区| 欧美日韩一区在线视频| 国产精品久久久久久一区二区三区| 国产精品久久久久久久久免费樱桃 | 榴莲视频成人在线观看| 欧美精品成人一区二区在线观看 | 国产精品一二三四区| 国内精品久久久久久| 亚洲国产三级| 亚洲女ⅴideoshd黑人| 久久精品视频在线播放| 亚洲国产精品123| 中文欧美日韩| 久久久噜噜噜久久中文字幕色伊伊| 蜜臀av一级做a爰片久久| 欧美日韩情趣电影| 黄色小说综合网站| 一区二区三区四区国产精品| 欧美一区二视频在线免费观看| 免费不卡在线视频| 夜夜夜精品看看| 老色鬼久久亚洲一区二区| 欧美日本乱大交xxxxx| 国产精品专区一| 一本色道久久综合狠狠躁篇的优点| 午夜在线电影亚洲一区| 亚洲成在人线av| 亚洲欧美日韩在线| 欧美激情视频在线免费观看 欧美视频免费一 | 免费观看在线综合色| 国产精品性做久久久久久| 最新成人在线| 久久人91精品久久久久久不卡 | 久久琪琪电影院| 中日韩高清电影网| 免费观看久久久4p| 国产片一区二区| 亚洲一区中文| 亚洲精品国产精品国自产在线 | 亚洲欧美日韩中文视频| 欧美日韩国产一区二区三区| 娇妻被交换粗又大又硬视频欧美| 亚洲少妇自拍| 91久久久在线|