繰り返しシーケンスを求める
3799 ワード
作成日:2022年2月3日午後10:51
メートルの大きさのリスト(res)を発表した.(たとえば、mが2の場合、2つのセルのリストが生成され、各セルに重複シーケンスとして1つの数値が含まれる) .再帰関数を迂回し、DFS関数のパラメータindexは、前に作成したサイズmのリストのインデックスに相当します. 各インデックスのビット数はnになるため、for文を使用してresのスペースに1からnのビット数を入れ、再帰的に呼び出す.(n個のresが最初のセルにn個含まれている場合、数が生成され、DFSが呼び出されてn個のセルにn個の数を含むn個のresの数が生成される) 入力パラメータ(index)がmの場合、基本となり、再帰を停止しresリストを出力し、cntを1増加する. サマリ
繰り返しシーケンスの場合、indexは数を含むresリストの観点から1を増やし、各セルにn個の数値を作成した場合、数値を作成し、次のインデックスに移動します.
インプリメンテーションコード
# 중복순열 구하기
import sys
#sys.stdin = open("input.txt", "rt")
def DFS(index):
global cnt
if index == m:
for x in res:
print(x, end=' ')
print()
cnt += 1
return
else:
for i in range(1,n+1):
res[index] = i
DFS(index+1)
if __name__ == "__main__":
n, m = map(int, input().split())
res = [0] * m
cnt = 0
DFS(0)
print(cnt)
繰り返しシーケンスの場合、indexは数を含むresリストの観点から1を増やし、各セルにn個の数値を作成した場合、数値を作成し、次のインデックスに移動します.
Reference
この問題について(繰り返しシーケンスを求める), 我々は、より多くの情報をここで見つけました https://velog.io/@lsj8706/중복순열-구하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol