简单的dfs,耗时1小时,这几天在学雅思,快两个月没敲代码了,有点手生,一些算法有点生疏,stl标准模板库用不熟了,所以要经常练习。
#include<stdio.h>
#include<algorithm>
using namespace std;
int d[50][50][50],a,b,c,d1[5000000],n=0;
int dfs(int a1,int b1,int c1)
{
if(a!=a1)
{
if(c1-(a-a1)>=0)
{
if(d[a][b1][c1-(a-a1)]==0)
{
d[a][b1][c1-(a-a1)]=1;
dfs(a,b1,c1-(a-a1));
}
}
else
{
if(d[c1+a1][b1][0]==0)
{
if(c1+a1==0)
{
d1[n++]=0;
}
d[c1+a1][b1][0]=1;
dfs(c1+a1,b1,0);
}
}
}
if(b!=b1)
{
if(c1-(b-b1)>=0)
{
if(d[a1][b][c1-(b-b1)]==0)
{