题目;思路: if(n == 10)!!!!!下次一定不要漏掉,我自闭了。
//#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 > 10)
return ;
int x = a[4] * 100 + a[5] * 10 + a[6];
int y = a[7] * 100 + a[8] * 10 + a[9];
if(n == 10)
if(a[1]*a[3]*y + a[2]*y + a[3]*x == 10 * a[3]*y) {
cnt++;
return ;
}
for(int i = 1; i <= 9; i++) {
if(!vis[i]) {
vis[i] = 1;
a[n] = i;
dfs(n + 1);
vis[i] = 0;
}
}
return ;
}
int main() {
dfs(1);
cout << cnt << endl;
return 0;
}