87分TLE求助,
查看原帖
87分TLE求助,
530500
Andy2035楼主2022/7/25 11:15

最后一个TLE,求助如何优化

#include<bits/stdc++.h>
using namespace std;
const int N = 15;
int m[N] = {0};
int n;
int s = 0;
void print(){
    if(s>3)return;
    for(int i = 0;i<n;i++)cout<<m[i]+1<<" ";
    puts("");
}
bool judge(int h,int x){
    bool flag = true;
    for(int i = 0;flag&&i<h;i++){
        if(m[i]==x)flag = false;
        if(abs(m[i]-x)==abs(i-h))flag = false;
    }
    return flag;
}
int dfs(int h){
    if(h==n){
        s++;print();
    }
    else{
        for(int i = 0;i<n;i++){
            if(judge(h,i)){
                m[h] = i;
                dfs(h+1);
            }
        }
    }
}
int main(){
    cin>>n;
    dfs(0);
    cout<<s;
    return 0;
}

最后一个TLE了,

还有一个问题

为什么我开O2优化以后全部MLE了???

2022/7/25 11:15
加载中...