【非常非常巧妙的暴搜】CodeForce 6B——President's Office

来源:点击打开链接

这个题表面上看用DFS做(其实也能做),但其实可以用异常简洁的方式(异常到暴,用ASCII码):

#include <iostream>
using namespace std;
int n,m,b[256];
char map[150][150];
int main()
{
	char traget;
	int ans=0;
    cin>>n>>m>>traget;
    for(int i=1;i<=n;i++) 
		for(int j=1;j<=m;j++) 
			   cin>>map[i][j];
			   
    for(int i=1;i<=n;i++)  
	{
		for(int j=1;j<=m;j++)
		{
        	if(map[i][j]==traget)
            	b[map[i-1][j]]=b[map[i+1][j]]=b[map[i][j-1]]=b[map[i][j+1]]=1;
		}
	}
    for(int i='A';i<='Z';i++) 
			ans+=b[i];
    cout<<ans-b[traget]<<endl;
    
    return 0;
}


你可能感兴趣的:(【非常非常巧妙的暴搜】CodeForce 6B——President's Office)