#include <stdio.h>int L, n, cnt = 0;int S[100] = {0};int dfs(int cur){ if(cnt++ == n){ for(int i = 0; i < cur; i++){ PRintf("%c", 'A' + S[i]); } printf("/n"); return 0; } for(int i = 0; i < L; i++){ S[cur] = i; int ok = 1; for(int j = 1; j * 2 <= cur + 1; j++){ //判断是否有两个重复的子串 int eq = 1; for(int k = 0; k < j; k++){ if(S[cur - k] != S[cur - k - j]){ eq = 0; break; } } if(eq){ ok = 0; break; } } if(ok) if(!dfs(cur + 1)) return 0; } return 1;}int main(){ scanf("%d%d", &n, &L); int ok = dfs(1); return 0;}
新闻热点
疑难解答