欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

AcWing 92. 递归实现指数型枚举 (递归)

程序员文章站 2024-01-25 22:11:22
...

这个系列是蓝桥杯的训练,为了蓝桥杯,同时也是日常的算法训练。
第一题是递归,有点类似递归的全排列的做法,复习基本的递归模板。
Problem
AcWing 92. 递归实现指数型枚举 (递归)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;

public class Main {
    static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    static PrintWriter pw = new PrintWriter(System.out);
    static int N = 15, n;
    static int st[] = new int[N];
	//-1不选 0未决定 1选
    public static void main(String[] args) throws IOException {
        n = Integer.parseInt(br.readLine());
        dfs(0);
        pw.flush();
        pw.close();
        br.close();
    }

    public static void dfs(int u) {
        if (u == n) {
            for (int i = 0; i < n; i++)
                if (st[i] == 1)
                    pw.print(i + 1 + " ");
            pw.println();
            return;
        }

        st[u] = -1;
        dfs(u + 1);
        st[u] = 0;

        st[u] = 1;
        dfs(u + 1);
        st[u] = 0;
    }
}

相关标签: 基础算法