AcWing 1209. 带分数
原题链接
简单
作者:
术
,
2021-03-26 20:24:53
,
所有人可见
,
阅读 288
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int n;
int cnt;
int visit[15];
int path[15];//这里使用数组,不用vector (会超时)
int num(int l,int r)
{
int res=0;
for(int i=l; i<=r; i++)
{
res*=10;
res+=path[i];
}
return res;
}
int pai(int u)
{
if(u==9)
{
int res=0;
for(int i=0; i<7; i++)
{
for(int j=i+1; j<8; j++)
{
// cout<<i<<j<<endl;
// cout<<num(0,i,path)<<endl;
int a=num(0,i);
int b=num(i+1,j);
int c=num(j+1,8);
if(n*c==a*c+b)
cnt++;
}
}
return 0;
}
for(int i=1; i<=9; i++)
{
if(visit[i])
continue;
path[u]=i;
visit[i]=1;
pai(u+1);
visit[i]=0;
}
}
int main()
{
cin>>n;
pai(0);
cout<<cnt;
return 0;
}