题目如上:
思路;按题意模拟即可,有多种情况,答案一定是四位的。
通过观察,羊对应的数字一定是1。
代码;
//#define N 100010
using namespace std;
const ll maxn = 1e6 + 5;
const ll minn = 1e9 + 5;
const ll mod = 1000000007;
//ll a[maxn], b[maxn];
//bool vis[maxn];
int ans[maxn];
vector<int>v[maxn];
bool row[maxn], col[maxn];
//bool vis[maxn][maxn][2];
bool flag = 0;
int sum[maxn][10];
int cnt = 0;
int vis[maxn];
int a[maxn];
void dfs(int n)
{
if(n>9||flag)
return ;
if(n==9)
if(((a[1]*1000+a[2]*100+a[3]*10+a[4])+(a[5]*1000+a[6]*100+a[7]*10+a[2])==a[5]*10000+a[6]*1000+a[3]*100+a[2]*10+a[8])&&a[5]==1)
{
cout<<a[5]*1000+a[6]*100+a[7]*10+a[2]<<endl;
//flag=1;
return ;
}
for(int i=0;i<=9;i++)
{
if(!vis[i])
{
vis[i]=1;
a[n]=i;
dfs(n+1);
vis[i]=0;
}
}
}
int main()
{
dfs(1);
return 0;
}