社区讨论

求助!!!

P1996约瑟夫问题参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@lu4sjzfi
此快照首次捕获于
2024/03/24 08:39
2 年前
此快照最后确认于
2024/03/24 10:19
2 年前
查看原帖
想用dfs做,做了几遍样例也没通过
CPP
#include <bits/stdc++.h>
using namespace std;
bool light[105]={false};
int ans[105] = {};
int an , y , v = 0 , num = 0 , a[105] = {};
void dfs(int d){
    int h = y,az=0;
    if(d == an - 1){
        for(int i = 0;i < an; ++ i){
            cout << a[i] << " ";
        }
        return ;
    }
    else{
        for(int i = 1; i <= an; ++i){
            if(light[i] == true) az++; 
        }
        if(num + y <= an) {
            light[num + y - az] = true;
            ans[num + y - az] = a[num + y - az]; 
        }
    dfs(d+1);
    }
}
int main() {
    
    cin >> an >> y;
    for(int i = 0; i < an; i ++){
        a[i] = i+1;
    }
    
    dfs(0);
    return 0;
}
谁能帮我看一下

回复

0 条回复,欢迎继续交流。

正在加载回复...