TLE求助!!!悬赏关注!
查看原帖
TLE求助!!!悬赏关注!
974049
jzl_1210楼主2023/10/29 13:08
#include <iostream>
#include <cstdlib>
using namespace std;
int s[10005];
int a[10005];
int vis[10005];
int n, m, zzjg, sum, d;
bool flagg = false;
void dfs(int k){
	if(k > n){
		sum++;
		if(sum == d){
			for(int i = 1;i < k;i++){
				cout << s[i] << " ";
			}
			exit(0);
		}
		if(flagg) return;
		bool flag = true;
		for(int i = 1;i < k;i++){
			if(a[i] != s[i]){
				flag = false;
				break;
			}
		}
        if(!flag){
        	return;
		}
		flagg = true;
		d = sum + m;
		return;
	}
	for(int i = 1;i <= n;i++){
		if(vis[i] == 0){
            vis[i] = 1;
            s[k] = i;
            dfs(k + 1);
            vis[i] = 0;
        }
	}
}

int main(){
	cin >> n >> m;
	for(int i = 1;i <= n;i++){
		cin >> a[i];
	}
	dfs(1);
	return 0;
}

只A了1,3点只A了1,3点

大佬求助大佬求助

2023/10/29 13:08
加载中...