ローカルセットを求める


作成日:2022年1月29日午後6:18

インプリメンテーションコード

# 부분집합 구하기 (DFS)
import sys
sys.stdin = open("input.txt" ,"rt")

def subset(index):
    if index == n+1:
        for i in range(1, n+1):
            if ch[i] == 1:
                print(i, end=' ')
        print()
    else:
        ch[index] = 1
        subset(index+1)
        ch[index] = 0
        subset(index+1)

if __name__ == "__main__":
    n = int(input())
    ch = [0]*(n+1) # 0번째 인덱스는 사용 X
    subset(1)

説明:

  • DFSの概念は,下向きに探索する形態である.
  • 1からnまでの数に応じてそれぞれ出力するか出力しないかによって、ツリーが2方向に構成されている.
  • 出力するかどうか
  • はn+1サイズの配列(0番目のインデックスは使いやすいX)であり、この数がインデックス番号であり、値が0が出力x、1が出力oの構造であると仮定する.