最后一个点TLE了,问一下不开O2咋优化呀
查看原帖
最后一个点TLE了,问一下不开O2咋优化呀
584287
WaKiller楼主2022/3/20 22:16

代码如下

#include<bits/stdc++.h>
using namespace std;
#define int long long

int n, cnt=0;
vector<int> ans[4];

void dfs(int n,int row,int col,int ld,int rd,vector<int> s){
    if(row>=n) {
        if(cnt<3) ans[cnt]=s;
        cnt++;
        return;
    }
    int b=~(col|ld|rd)&((1<<n)-1);
    while(b>0){
        int pick=b&-b;
        s.push_back(log(pick)/log(2)+1);
        dfs(n,row+1,col|pick,(ld|pick)<<1,(rd|pick)>>1,s);
        s.pop_back();
        b&=b-1;
    } 
}

signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0),cout.tie(0);
    cin>>n;
    dfs(n,0,0,0,0,{});
    for(int i=0;i<3;i++){
        for(int j=0;j<n;j++){
            cout<<ans[i][j]<<" ";
        }
        cout<<endl;
    }
    cout<<cnt;

    return 0;
}
2022/3/20 22:16
加载中...