样例过了 上传上去全部TLE 请大佬指正我的搜索哪里出问题了 还是说要用枚举好一点??
#include <bits/stdc++.h>
#define MOD 1000000007
using namespace std;
int keys[100100],n,b[100100],ans[100100],tot=0;
void dfs(int x,int last=0){
for(int i=last+1;i<=n;i++){
if(!b[i]){
b[i] = 1;
ans[x] = keys[i];
if(x==4){
if(ans[1]==ans[2]||ans[1]==ans[3]||ans[1]==ans[4]
||ans[2]==ans[3]||ans[2]==ans[4]||ans[3]==ans[4])
{
tot++;
}
}else dfs(x+1,i);
b[i] = 0;
}
}
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++){
cin>>keys[i];
}
dfs(1);
cout<<tot%MOD<<endl;
return 0;
}