熟悉set的运用

熟悉set的运用

熟悉set的运用

重要的事要说三遍,会set就根本不难

#include<iostream>
#include<algorithm>
#include<set>

using namespace std;

int map[10][10];
int dx[4]={0,1,0,-1};
int dy[4]={1,0,-1,0};

set<int>st;

void dfs(int x,int y,int num,int deep)
{
	if(deep==6)
	{
		st.insert(num);
		return;
	}
	for(int i=0;i<4;i++)
	{
		int nx=x+dx[i];
		int ny=y+dy[i];
		if(0<=nx&&nx<5&&0<=ny&&ny<5)
		{
			deep++;
			dfs(nx,ny,num*10+map[nx][ny],deep);
			deep--;
		}
	}
}

int main()
{
	for(int i=0;i<5;i++)
		for(int j=0;j<5;j++)
			cin>>map[i][j];
	for(int i=0;i<5;i++)
		for(int j=0;j<5;j++)
			dfs(i,j,map[i][j],1);
	cout<<st.size()<<endl;
	return 0;
}

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐