zoukankan      html  css  js  c++  java
  • 城堡the castle

    题目链接

    爆搜

    #include<bits/stdc++.h>
    using namespace std;int nn,m;
    int tot=0,sum[5000],//极端情况下会有50*50个房间 
    a[1000][1000],w[1000][1000],n[1000][1000],e[1000][1000],s[1000][1000],f[1000][1000];
    void dfs(int x,int y)
    {
    	if(y<=0||x<=0||x>nn||y>m) return;//不解释了注意一下QAQ 
    	sum[tot]++;
    	f[x][y]=tot;
    	if(!s[x][y]&&!f[x+1][y]) dfs(x+1,y);
    	if(!e[x][y]&&!f[x][y+1]) dfs(x,y+1);
    	if(!n[x][y]&&!f[x-1][y]) dfs(x-1,y);
    	if(!w[x][y]&&!f[x][y-1]) dfs(x,y-1);
    }
    int main()
    {
    	
    	cin>>m>>nn;
    	for(int i=1;i<=nn;i++)
    	for(int j=1;j<=m;j++)
    	{
    		cin>>a[i][j];
    		if(a[i][j]>=8) s[i][j]=1;
    		a[i][j]%=8;
    		if(a[i][j]>=4) e[i][j]=1;
    		a[i][j]%=4;
    		if(a[i][j]>=2) n[i][j]=1;
    		a[i][j]%=2;
    		if(a[i][j]==1) w[i][j]=1;
    	}
    	int maxn=0,ansi,ansj;
    	char anss;
    	for(int i=1;i<=nn;i++)
    	for(int j=1;j<=m;j++)
    	{
    		if(!f[i][j]) 
    		{
    			tot++;
    			dfs(i,j);
    			maxn=max(maxn,sum[tot]);
    		}
    	}
    	cout<<tot<<"
    "<<maxn<<"
    ";
    	for(int j=1;j<=m;j++)
    	for(int i=nn;i>=1;i--)//对顺序有要求 
    	{
    		//不能推外墙 
    		if(j-1>=1&&w[i][j]&&f[i][j-1]!=f[i][j]&&maxn<sum[f[i][j-1]]+sum[f[i][j]]) maxn=sum[f[i][j-1]]+sum[f[i][j]],ansi=i,ansj=j,anss='W';
    		if(i+1<=nn&&s[i][j]&&f[i+1][j]!=f[i][j]&&maxn<sum[f[i+1][j]]+sum[f[i][j]]) maxn=sum[f[i+1][j]]+sum[f[i][j]],ansi=i,ansj=j,anss='S';
    		if(i-1>=1&&n[i][j]&&f[i-1][j]!=f[i][j]&&maxn<sum[f[i-1][j]]+sum[f[i][j]]) maxn=sum[f[i-1][j]]+sum[f[i][j]],ansi=i,ansj=j,anss='N';
    		if(j+1<=m&&e[i][j]&&f[i][j+1]!=f[i][j]&&maxn<sum[f[i][j+1]]+sum[f[i][j]]) maxn=sum[f[i][j+1]]+sum[f[i][j]],ansi=i,ansj=j,anss='E';
    		//注意题目中对四个方向的优先级有要求 
    	}
    	cout<<maxn<<"
    "<<ansi<<" "<<ansj<<" "<<anss;
    	return 0;
    }
    
  • 相关阅读:
    【硬件】交换机与路由器概述
    【网络】IP地址,子网掩码,网段表示法,默认网关,DNS服务器详解
    【网络】网桥
    【归档】Mysql大表归档
    【锁】Innodb锁
    【磁盘】顺序IO比随机IO快
    【硬盘】RAID卡
    【基础】占用空间大小(数据页、线程)
    【SQL】ON DUPLICATE KEY UPDATE
    【基础】Hint控制语句执行
  • 原文地址:https://www.cnblogs.com/qwq-/p/13625631.html
Copyright © 2011-2022 走看看