这题不可以用搜索吗???
查看原帖
这题不可以用搜索吗???
185348
Zhe8468楼主2020/8/9 12:25

样例过了 上传上去全部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;
}

2020/8/9 12:25
加载中...