zoukankan      html  css  js  c++  java
  • hdu4185 Oil Skimming(偶匹配)

    <span style="font-family: Arial; font-size: 14.3999996185303px; line-height: 26px;">//题意,在一个N*N的矩阵里寻找最多有多少个</span><span style="font-size: 14px; line-height: 26px; font-family: 'Courier New', Courier, monospace; white-space: pre;">“</span><span style="font-size: 14px; line-height: 26px; font-family: 'Courier New', Courier, monospace; white-space: pre;">##”(横着竖着都行)。

    </span>

    # include <stdio.h>
    # include <algorithm>
    # include <string.h>
    using namespace std;
    int n,cot;
    int map[660],vis[660],pp[660][660],u[660][660];
    int bfs(int x)
    {
    	for(int i=1;i<=cot;i++)
    	{
    		if(!vis[i]&&pp[x][i])
    		{
    			vis[i]=1;
    			if(!map[i]||bfs(map[i]))
    			{
    				map[i]=x;
    				return 1;
    			}
    		}
    	}
    	return 0;
    }
    void judge(int x,int y)
    {
    	if(x<n-1&&u[x+1][y])
    		pp[u[x][y]][u[x+1][y]]=pp[u[x+1][y]][u[x][y]]=1;//相连的“#”标记
        if(y<n-1&&u[x][y+1])
    		pp[u[x][y]][u[x][y+1]]=pp[u[x][y+1]][u[x][y]]=1;
    }
    int main()
    {
    	int t,cas,i,j;
    	char a[660][660];
    	while(~scanf("%d",&t))
    	{
    		cas=0;
    		while(t--)
    		{
    			scanf("%d",&n);
    			for(i=0;i<n;i++)
    				scanf("%s",a[i]);
                memset(u,0,sizeof(u));
    			cot=0;
    			for(i=0;i<n;i++)
    			{
    				for(j=0;j<n;j++)
    				{
    					if(a[i][j]=='#')
    						u[i][j]=++cot;//为“#”标记
    				}
    			}
    			memset(pp,0,sizeof(pp));
    			for(i=0;i<n;i++)
    			{
    				for(j=0;j<n;j++)
    				{
    					if(u[i][j])
    					{
    						judge(i,j);
    					}
    				}
    			}
    			int res=0;
    			memset(map,0,sizeof(map));
    			for(i=1;i<=cot;i++)//一共1到cot个油田
    			{
    				memset(vis,0,sizeof(vis));
    				if(bfs(i))
    					res++;
    			}
    			printf("Case %d: %d
    ",++cas,res/2);			
    		}
    	}
    	return 0;
    }

    版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 相关阅读:
    python--DAY7面向对象进阶
    python--socket实例
    Python---day5-各类模块的使用
    python--day4--迭代器、生成器
    Python--三元运算与lambda表达式
    python--函数式登录程序
    Python--变量作用域
    Python--函数
    Python----文件的IO操作
    swagger2文档的步骤
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4847354.html
Copyright © 2011-2022 走看看