题目描述
blablabla
样例
blablabla
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
const int mod=1e9+7;
const int N=16;
class Solution {
public:
long long f[1<<N][N];
int specialPerm(vector<int>& nums) {
memset(f,-1,sizeof(f));
int n=nums.size();
long long res=0;
for(int i=0;i<n;i++) f[1<<i][i]=1;
for(int i=1;i<1<<n;i++)
{
for(int j=0;j<n;j++)
{
if(f[i][j]!=-1||f[i][j]==0) continue;
f[i][j]=0;
if(i>>j&1)
{
for(int k=0;k<n;k++)
{
if(k==j) continue;
if((i>>k&1)&&(nums[j]%nums[k]==0||nums[k]%nums[j]==0))
f[i][j]=(f[i][j]+f[i-(1<<j)][k])%mod;
}
}
}
}
for(int i=0;i<n;i++) res=(res+f[(1<<n)-1][i])%mod;
return res;
}
};
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla