问题遇到的现象和发生背景
一个剪辑的模板由n个片段组成,我创建了n行素材,每行素材用a1到An,B1到Bn,C1到Cn命名,比如a1,2,3,4,5,如图所示
我想让每一个片段的画面都不同,第一行a行中,就只能出现B,C,D,E这几种,第二行B行依次类推,比如(A1.E2.D3.C4.B5)
我想要达到的结果
求n为9以内每一行不出现重复的规律,或者公式,以达到不重复混剪的功能,手动实在想不到,悬赏请求大家帮助
一个剪辑的模板由n个片段组成,我创建了n行素材,每行素材用a1到An,B1到Bn,C1到Cn命名,比如a1,2,3,4,5,如图所示
求n为9以内每一行不出现重复的规律,或者公式,以达到不重复混剪的功能,手动实在想不到,悬赏请求大家帮助
有点没搞懂,是这个意思吗?
#include<bits/stdc++.h>
using namespace std;
bool apr[101];
int nums[101]; // 动态元素存储
void print(int now,int deep,int M){
if(apr[now]) return; // 该元素出现过,跳出循环
apr[now] = true; // 该元素没出现过,标记出现
nums[deep] = now; // 该节点元素变为 now
for(int z=1;z<=M;z++) print(z,deep+1,M);
if(deep == M) {
for(int z=1;z<=deep;z++) printf("%d ",nums[z]);
putchar('\n');
}
apr[now] = false; // 该节点换元素了,标记该元素未出现
}
int main()
{
int N; // 素材总个数
cin >> N;
int M; // 每行素材数
cin >> M;
for(int z=1;z<=N;z++){
print(z,1,M); // 该组合第一个素材
}
return 0;
}