zoukankan      html  css  js  c++  java
  • poj 2226(最小点覆盖集)

    嘛。。稍微有一点变形,相当于每隔一段草,一行或一列就成新的了,用rnum,cnum记录一下就好了。

    # include <cstdio>
    # include <cstring>
    # include <algorithm>
    # include <iostream>
    using namespace std;
    char map[100][100];
    int mp[500][500],f[500],flag[500],r,c,sum,rnum,cnum,maxn,col[100][100];
    int find(int i)
    {
        int j;
        for (j=1;j<=cnum;++j)
        {
            if (mp[i][j]&&!flag[j])
            {
                flag[j] = 1;
                if (!f[j]||find(f[j]))
                {
                    f[j] = i;
                    return 1;
                }
            }
        }
        return 0;
    }
    int main()
    {
        int i,j;
        char str[100];
        while (~scanf("%d%d",&r,&c))
        {
            sum = 0;rnum = 1;cnum = c;
            memset(mp,0,sizeof(mp));
            memset(f,0,sizeof(f));
            for (i=1;i<=r;++i)
            {
                scanf("%s",str+1);
                for (j=1;j<=c;++j)
                {
                    map[i][j] = str[j];
                    if (str[j]=='*')
                    {
                        if (map[i][j-1] == '.')
                            ++rnum;
                        if (i==1)
                            col[i][j] = j;
                        else if (map[i-1][j] == '.')
                            col[i][j] = (++cnum);
                        else
                            col[i][j] = col[i-1][j];
                        mp[rnum][col[i][j]] = 1;
                    }
                }
                rnum++;
            }
            for (i=1;i<=rnum;++i)
            {
                memset(flag,0,sizeof(flag));
                sum += find(i);
            }
            printf("%d\n",sum);
        }
        return 0;
    }
    View Code
  • 相关阅读:
    开篇词The Start以及[Vjudge][HDU2242]空调教室
    [故地重游][NOIP2019]格雷码
    关于非触
    致诸君
    三角形的概率
    [HDU5970] 最大公约数
    [51Nod1534] 棋子游戏
    [TJOI2018] 数学计算
    [CF938D] Buy a Ticket
    [HDU4143] A Simple Problem
  • 原文地址:https://www.cnblogs.com/1carus/p/3339878.html
Copyright © 2011-2022 走看看