• hdu 1281 棋盘游戏(关键匹配)


          第一次做到这种题目,虽然是中文题目,但是依旧不懂他的意思,直接上网搜了题解,然后自己想了下,豁然开朗,发现这种建图的方式真的很奇特,

    用x坐标匹配y坐标,这样x-y就是点(xi,yi)了,这是这道题建图的新颖之处。

    题意:中文题。。。。

    分析:循环删边,如果删除这条边后,他的最大匹配等于原最大匹配则说明该边不是重要边,也就是说该点不是题目要求的重要点,若删除该边(该点)

            匹配不等于原匹配,则说明该点是重要点

    View Code
    #include<stdio.h>
    #include<string.h>
    
    const int MAXN=110;
    int map[MAXN][MAXN];
    int pre[MAXN];
    int vis[MAXN];
    int n,m;
    int find(int cur)
    {
        int i;
        for(i=1;i<=m;i++)
        {
            if(map[cur][i]==1 && !vis[i])
            {
                vis[i]=1;
                if(pre[i]==-1 || find(pre[i]))
                {
                    pre[i]=cur;
                    return 1;
                }
            }
        }
        return 0;
    }
    int main()
    {
        int i,j,k,x,y;
        int cnt,ans,cas=1;
        while(scanf("%d%d%d",&n,&m,&k)!=EOF)
        {
            memset(map,0,sizeof(map));
            memset(pre,-1,sizeof(pre));
            for(i=0; i<k; i++)
            {
                scanf("%d%d",&x,&y);
                map[x][y]=1;
            }
            int sum=0;
            for(i=1; i<=n; i++)
            {
                memset(vis,0,sizeof(vis));
                sum+=find(i);
            }
            cnt=0;
            for(i=1; i<=n; i++)
            {
                for(j=1; j<=n; j++)
                {
                    ans=0;
                    if(map[i][j])//删边
                    {
                        memset(pre,-1,sizeof(pre));
                        map[i][j]=0;
                        for(k=1; k<=n; k++)
                        {
                            memset(vis,0,sizeof(vis));
                            ans+=find(k);
                        }
                        map[i][j]=1;
                        if(ans!=sum) cnt++;
                    }
                }
            }
            printf("Board %d have %d important blanks for %d chessmen.\n",cas++,cnt,sum);
        }
        return 0;
    }
  • 相关阅读:
    Mybatis JPA 插件简介(v2.1.0)
    linux-非root用户运行tomcat
    java版Web Socket,实现消息推送
    开源巨献:Google最热门60款开源项目
    java加密算法AES与RSA
    Jquery table元素操作-创建|数据填充|重置|隐藏行
    Mybatis JPA-集成方案+源码
    Mybatis JPA 插件简介
    eclipse maven构建
    初探JSP运行机制和与Servlet间的关系
  • 原文地址:https://www.cnblogs.com/zsboy/p/2876293.html
Copyright © 2020-2023  润新知