zoukankan      html  css  js  c++  java
  • poj2226Muddy Fields

    天哪终于A了泥泞地,刚开始模板return错了后来数组又类型开错了。。。

    #include<cstdio>
    #include<vector>
    #include<iostream>
    using namespace std;
    int t;
    char ch[155][155];
    int a[155][155],b[155][155];//不要顺手
    int link[30005];
    int vis[30005];
    vector<int>e[30005];
    int find(int x)
    {
    	for(int i=0;i<e[x].size();i++)
    	{
    		int y=e[x][i];
    		if(vis[y]!=t)
    		{
    			vis[y]=t;
    			if(link[y]==0||find(link[y]))
    			{
    				link[y]=x;
    				return 1;
    			}
    		}
    	} 
    	return 0;//here不要手误
    }
    int main()
    {
    	int r,c;
    	int cnt=1;
    	scanf("%d%d",&r,&c);
    	for(int i=1;i<=r;i++)
    	{
    		for(int j=1;j<=c;j++)
    		{
    			cin>>ch[i][j];
    		}
    	}
    	for(int i=1;i<=r;i++)
    	{
    		for(int j=1;j<=c;j++)
    		{
    			if(ch[i][j]=='.')
    			{
    				if(ch[i][j-1]=='*')cnt++;
    				a[i][j]=0;
    			}
    			else
    			if(ch[i][j]=='*')
    			{
    				a[i][j]=cnt;
    			}
    		}
    		if(ch[i][c]=='*')cnt++;
    	}
    	int maxn=cnt;
    	cnt=1;
    	for(int i=1;i<=c;i++)
    	{
    		for(int j=1;j<=r;j++)
    		{
    			if(ch[j][i]=='.')
    			{
    				if(ch[j-1][i]=='*')cnt++;
    				b[j][i]=0;
    			}
    			else
    			if(ch[j][i]=='*')
    			{
    				b[j][i]=cnt;
    			}
    		}
    		if(ch[r][i]=='*')cnt++;
    	}
    	for(int i=1;i<=r;i++)
    	{
    		for(int j=1;j<=c;j++)
    		{
    			if(a[i][j]==0)continue;
    			e[a[i][j]].push_back(b[i][j]);
    		}
    	}
    	int ans=0;
    	for(int i=1;i<=maxn;i++)
    	{
    		t++;
    		if(find(i))
    		{
    			ans++;
    		}
    	}
    	printf("%d
    ",ans);
    	return 0;
    }
    
  • 相关阅读:
    从sql查询结果集中查询
    tsql中with用法
    tsql 2005 ROW_NUMBER
    基于对象的C#
    逍遥游
    Creating Custom Solutions for Document Collaboration
    Word template
    Jquery :nthchild 选择用法
    .net 转换任意类型不报错
    Dom 中同级元素 选择第几个的另类方法
  • 原文地址:https://www.cnblogs.com/ShineEternal/p/11318007.html
Copyright © 2011-2022 走看看